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
Sem comentários:
Enviar um comentário