Cursos / Eletrônica / Sistemas Operacionais / Aula 09

arrow_back Aula 09 - Gerenciamento de Processos

Sugestão de Programas Úteis

Para visualizar a árvore de processos no Windows, existe o programa Process Explorer (Figura 4), que traz muito mais informações que o gerenciador de tarefas do Windows. Além de apresentar a estrutura de processos, indicando o parentesco entre eles, apresenta dados referentes a cada processo, como a quantidade de memória utilizada por cada um. Vale a pena conferir, ele é um software gratuito e está disponível no seguinte link para download: <http://www.baixaki.com.br/download/process-explorer.htm>.

Tela do Process Explorer

Nesta aula, vamos investigar como os processos (programas em execução) compartilham os recursos do nosso computador (processador, impressora, arquivos etc.) e veremos também quais os principais problemas que surgem quando processos compartilham recursos e algumas alternativas para solucioná-los.

Quando o sistema operacional é inicializado, ou seja, quando o computador é ligado, o primeiro processo a ser executado é o processo que representa o sistema operacional. Os demais processos são criados a partir dele através de chamadas de sistema. Por exemplo, nos sistemas operacionais Windows (NT, 2000 ou XP), o processo inicial se chama smss.exe e a chamada de sistema responsável por criar os demais processos se chama CreateProcess(). Já no Sistema Operacional Linux, o processo que representa o sistema operacional se chama init e a chamada de sistema responsável por criar os demais processos a partir dele se chama fork(). A Figura 5 mostra uma árvore de processos que está sendo executada em um computador com Sistema Operacional Linux.

Árvore de processos no Linux

Os vários processos criados competem entre si pela atenção do processador a cada instante, cabendo ao gerenciador de processos do sistema operacional estabelecer uma ordem entre eles.

Em diferentes momentos, um processo pode estar utilizando-se do processador, ou simplesmente aguardando algum evento (por exemplo, a digitação de uma informação solicitada). Se ocorrer uma situação em que um processo, mesmo tendo o processador disponível, esteja impossibilitado de prosseguir a execução, o sistema operacional deve bloqueá-lo para evitar desperdício no uso do processador, deixando os demais processos disputarem pelo uso do processador. Dessa forma, de uma maneira simplificada, podemos dizer que os processos podem estar em três estados, que seriam:

  1. executando: utilizando o processador;
  2. pronto: o processo está em condição de ser executado, porém, encontra-se aguardando a disponibilização de um processador;
  3. bloqueado: o processo está impossibilitado de usar o processador até que algum evento externo aconteça.

As possíveis transições entre os estados de um processo estão representadas na Figura 6.

Estados de um processo

A transição 1 indica o momento em que um processo se depara com uma situação em que não pode continuar a execução (normalmente devido à espera de uma entrada de dados). Essa situação é reconhecida pelo sistema operacional através de um mecanismo denominado sistema, cujo efeito é colocar o processo no estado bloqueado.

Na transição 4, o processo é desbloqueado por um evento externo (normalmente acontece quando o dado que estava sendo aguardado chega ao processo); basicamente, um processo que está monitorando as entradas de diversos outros processos fica responsável em desbloquear.

A transição 2 indica que o processo já passou tempo demais na CPU e deve dar lugar a outro processo, enquanto que a transição 3 indica que um processo pronto pode ser escolhido para retornar à CPU. As transições 2 e 3 dependem de um agendador de processos, que é um módulo do sistema operacional responsável por gerenciar o tempo de uso do processador. Esse agendador é normalmente citado nos livros de sistemas operacionais com o nome de escalonador.

Observe que enquanto os processos têm controle sobre as transições 1 e 4, o sistema operacional determina quando as transições 2 e 3 ocorrem e, assim, os processos não tomam nem conhecimento quando elas ocorrem.

Agora que você conhece os estados possíveis de um processo, veremos como realizar as transições entre esses estados e a importância de manter os dados relacionados aos processos salvos.

Versão 5.3 - Todos os Direitos reservados