quinta-feira, 3 de abril de 2014

Gestor de Processos

Um processo pode executar-se no processador ou á espera de ter possibilidade de se executar. O ciclo de vida dos processos vai evoluir desde a sua criação por três estados fundamentais: o primeiro corresponde a deter o processador e portanto, estar em Execução; quando o processo não se pode executar por não ter acesso ao processador está no estado Executável. O terceiro estado, Bloqueado, corresponde a um situação diferente em que o processo mesmo que tivesse o processador não poderia avançar porque uma condição lógica o impedia (já anteriormente nos apareceram funções que esperam pela terminação de outro processo e situações em que um processo se bloqueia á espera de um acontecimento).



·         Em execução- Processo a usar o processador
·         Executável- Processo que pode prosseguir a sua execução e que tal necessita que lhe seja atribuído processador
·         Bloqueado- Processo que espera um acontecimento que enquanto não ocorrer o impede de continuar a executar-se.


As transições entre os três estados correspondem aos seguintes acontecimentos:
·         Executável-> Em execução- O processo foi seleccionado para execução pelo despacho porque é mais prioritário do que o processo corrente ou porque este ultimo deve abandonar o processador (terminou ou bloqueou-se)
·         Em execução-> Executável- Um outro processo na lista dos executáveis tem maior prioridade e o despacho efetua a comutação
·         Em execução-> Bloqueado- O processo tem de interromper a sua execução porque espera um acontecimento sem o qual não pode continuar a executar o respectivo programa.
·         Bloqueado-> Executável- O acontecimento que mantinha o processo bloqueado ocorreu e este passa novamente a poder executar-se. Passa para a lista de executáveis, podendo, se for o mais prioritário, passar de seguida a executar-se ou mais tarde quando for seleccionado pelo despacho.

Quatro objectivos diferentes relacionados com este tipo de gestão:
·         Optimizar a produtividade do sistema, executando o maior numero de programas possível num dado período de tempo (determinado throughput do sistema);
·         Procurar equilibrar a carga do sistema de forma a dar um serviço relativamente uniforme aos diversos clientes;
·         Dotar o sistema de grande reactividade as condições externas;
·         Minimizar o tempo médio para completar a execução de vários programas