SISTEMA OPERACIONAL
Prof. Ijar M. Fonseca
ESTADOS DE UM PROCESSO
(Adaptado de A. S. Tanenbaum e A. S. Woodhull; Sistemas Operacionais, projeto e implementação, 2a. Edição, Bookman, p. 49-51)
Embora cada processo seja uma entidade independente, com seu próprio contador de programa e estado interno, os processos freqüentemente precisam interagir entre si. Um processo pode gerar alguma saída que outro processo utiliza como entrada. Dependo, por exemplo, das velocidades relativas de dois processos – que dependem da complexidade relativa dos programas e de quanto tempo de CPU cada um tem – pode acontecer, embora um dos programas esteja pronto para executar, não haja nenhuma entrada disponível para ele. Deve ocorrer então um bloqueio, até que haja alguma entrada disponível para a continuação. Quando um processo bloqueia ele faz por não poder continuar devido a falta de uma entrada necessária para continuar se processando. Por outro lado pode ocorrer que um processo seja interrompido porque o sistema operacional (SO) decidiu dedicar a CPU a outro processo temporariamente. São duas condições completamente diferentes. No primeiro caso o processo não tem como continuar porque espera por uma entrada enquanto que no segundo caso o processo, embora esteja pronto para continuar, é suspenso em detrimento da execução de outro processo pela CPU. Aqui evidencia-se um problema técnico: falta de CPUs, impossibilitando que cada processo tivesse a seu próprio processador. A figura que se segue é um grafo de estados, mostrando os três estados em que um processo pode estar:
Fig. 1. Um processo pode estar em execução,. Em estado bloqueado ou pronto.
Na Fig. 1 temos:
1. Execuçào, com o processo utilizando a CPU
2. Pronto: Executável mas temporariamente parado para permitir a execução de outro processo
3. Bloqueado: Incapaz de executar até que receba a entrada necessária para continuar se processando.
Quatro transições são possíveis entre os