segunda-feira, 21 de janeiro de 2019

SISTEMAS OPERACIONAIS – PARTE 2

                           Processos 




Um dos conceitos mais importantes dos sistemas operacionais, talvez até o mais importante, é o de “processo”. De uma forma simplificada, o processo representa um programa em execução.


Quando o usuário inicia um programa (por exemplo, um editor de textos), o sistema operacional cria um processo para conter todas as informações relativas a execução deste programa, como as variáveis alocadas, arquivos abertos e o próprio texto do programa a ser executado.

 Este processo é então colocado em execução na CPU para que possa executar as tarefas para as quais foi desenvolvido.



Uma característica importante desta forma de executar programas criando os processos é que estes são isolados uns dos outros e também são isolados do sistema operacional.

 O objetivo disso é evitar que o sistema fique instável devido a um erro na programação de um aplicativo, o que faria o processo criado para a execução deste aplicativo ter um comportamento irregular. Em termos concretos, este isolamento é implementado usando-se a proteção de memória e as chamadas de sistema.


A proteção de memória é um conjunto de técnicas que permite ao sistema operacional criar uma área de memória separada para cada processo de forma que ele não consiga ter acesso a uma área que não seja especificamente designada a ele.

Nos sistemas operacionais modernos, esta proteção é implementada usando o conceito de memória virtual, que será explicado posteriormente. Neste modelo de proteção de memória, cada processo executa como se estivesse sozinho no computador.

Eventualmente, é necessário que vários processos troquem dados entre si, como por exemplo um browser que precisa ler os dados de um servidor web, ou com o próprio sistema operacional. Para fazer isso, ele pede ajuda do sistema fazendo “Chamadas de sistema”, que poderão criar canais de comunicação.

As chamadas de sistema, já explicadas anteriormente, são a única forma que um processo tem para acessar arquivos, dispositivos externos, a rede e até a placa de vídeo. Desta forma o sistema operacional pode decidir, a cada chamada, que acessos conceder e que acessos negar a um processo.

Processos têm identificadores chamados “Process Ids” que são usados pelo sistema para identificá-los quando alguma operação precisa ser feita com ele (encerrar o processo, por exemplo). 

Eles também tem um “parent process ID”, que é o “Process ID” do processo que o originou, e um usuário dono do processo.

 O usuário dono do processo é usado pelo sistema operacional para determinar que recursos o processo poderá acessar durante sua execução quando forem feitas as chamadas de sistema.

Recursos de um processo

À medida que o processo vai sendo executado, ele vai utilizando recursos do computador, como memória, arquivos de disco, e portas de comunicação via rede (ou sockets).

 Como explicado anteriormente, o acesso a estes recursos se dá através de chamadas de sistema que vão sendo feitas durante a execução.

 Uma vez concedido o acesso a um determinado recurso, o processo ganha um identificador para o tal recurso, que é colocado numa tabela que pertence ao processo, mas que é de uso exclusivo do sistema operacional.

 No UNIX e LINUX estes recursos são chamados de descritores de arquivos, ou “File descriptors”, enquanto que no WINDOWS são chamados de identificadores, ou “Handles”.

Quando o processo é encerrado, seja de forma voluntária ou por ação do usuário ou do sistema, todos os recursos que haviam sido alocados para o processo são liberados para reuso posterior.

 Esta é outra vantagem importante da utilização do processo como uma abstração para os programas que estão em execução: uma vez que o programa termine, é possível facilmente restaurar o sistema ao estado anterior de forma segura, mesmo que o programador da aplicação não tenha se preocupado corretamente com isso.

Vendo os processos em execução no seu computador.

Nos sistemas Windows

O aplicativo “Gerenciador de tarefas” permite monitorar os processos em execução. Para iniciá-lo, basta clicar com o botão da direita na barra de tarefas e selecionar o gerenciador. A lista dos processos fica na guia detalhes.

 Para ver o identificador do processo e o número de identificadores de recursos alocados, selecione as colunas, já que normalmente elas ficam escondidas. Nesta mesma janela é possível encerrar um processo caso seja desejado.


Nos sistemas LINUX

O comando ‘ps’ dá a lista de processos, e o comando ‘top’ mostra numa tela continuamente atualizada a lista que vem ordenada pelo processo que mais está usando a CPU para o que menos está usando.

 Para ver os identificadores alocados, deve-se lista uma pasta especial chamada /proc/<proc_id>/fd, substituindo-se <proc_id> pelo identificador do processo que pode ser encontrado no comando ps ou top.


Para encerrar um processo, utiliza-se o comando ‘kill’.


Encerramento dos processos

Um processo pode ser encerrado por 4 motivos diferentes:
  • Quando um processo termina a execução e pede para ser encerrado: isso ocorre quando o usuário pede para o programa se encerrar, selecionando o item “Sair” que normalmente fica no menu arquivo, ou quando o programa sai porque a tarefa para a qual ele havia sido iniciado terminou. É a forma mais comum de encerramento de processos.
  • Quando um usuário pede ao sistema operacional para encerrá-lo: o sistema operacional tem total controle sobre que processos irão executar no computador e tem o poder de encerrar qualquer processo. Esta forma de encerramento ocorre quando o programa para de responder e o usuário, normalmente pelo gerenciador de tarefas, pede ao sistema para encerar o processo.
  • Quando um erro irrecuperável é gerado e o sistema o encerra pois não há como continuar a execução: programas de computador são sequências de instruções com comandos para CPU e esta sequência de instruções as vezes está inválida ou, apesar de válida, faz algo que não tem como ser obedecido pela CPU.
  •  Nestes casos, o programa gera o que é chamado de “exceção”, e o sistema então encerra porque não há como continuar. As exceções mais comuns são acessar um trecho inválido da memória e executar uma instrução inexistente ou proibida. Programas encerrados desta forma costumam mostrar uma janela onde o sistema diz “este programa realizou uma operação ilegal”, e normalmente tem um botão para enviar um relatório de erros para o desenvolvedor.
  • Quando um processo viola uma diretiva do sistema ou consome recursos em demasia e é encerrado para preservar o estado do sistema como um todo: os sistemas operacionais tentam preservar o estado geral do computador de forma que este nunca fique travado. Portanto, quando um determinado processo começa a consumir mais recursos do que ele teria direito, o sistema encerra o processo com o objetivo de preservar a integridade  do sistema.
                      FONTE : WINCO SISTEMAS

Nenhum comentário: