Estado do processo - Process state

Em um sistema de computador multitarefa , os processos podem ocupar uma variedade de estados . Esses estados distintos podem não ser reconhecidos como tal pelo kernel do sistema operacional . No entanto, eles são uma abstração útil para a compreensão dos processos.

Os diversos estados do processo, apresentados em um diagrama de estados , com setas indicando possíveis transições entre estados - como pode ser visto alguns processos são armazenados na memória principal (amarelo), e alguns são armazenados na memória secundária (verde).

Estados do processo primário

Os seguintes estados de processo típicos são possíveis em sistemas de computador de todos os tipos. Na maioria desses estados, os processos são "armazenados" na memória principal .

Criado

Quando um processo é criado pela primeira vez, ele ocupa o estado " criado " ou " novo ". Neste estado, o processo aguarda admissão no estado “pronto”. A admissão será aprovado ou adiada por um longo prazo, ou admissão, programador . Normalmente, na maioria dos sistemas de computador desktop , essa admissão será aprovada automaticamente. No entanto, para sistemas operacionais em tempo real, essa admissão pode ser atrasada. Em um sistema de tempo real, admitir muitos processos para o estado "pronto" pode levar à supersaturação e sobrecontenção dos recursos do sistema, levando à incapacidade de cumprir os prazos dos processos.

Preparar

Um processo "pronto" ou "em espera" foi carregado na memória principal e está aguardando a execução em uma CPU (para ter o contexto comutado na CPU pelo despachante ou escalonador de curto prazo). Pode haver muitos processos "prontos" em qualquer ponto da execução do sistema - por exemplo, em um sistema de um processador, apenas um processo pode estar em execução a qualquer momento, e todos os outros processos "em execução simultânea" estarão aguardando execução.

Uma fila pronta ou fila de execução é usada na programação do computador . Os computadores modernos são capazes de executar muitos programas ou processos diferentes ao mesmo tempo. No entanto, a CPU só é capaz de lidar com um processo de cada vez. Os processos que estão prontos para a CPU são mantidos em uma fila para processos "prontos". Outros processos que aguardam a ocorrência de um evento, como carregamento de informações de um disco rígido ou conexão com a Internet, não estão na fila de espera.

Correndo

Um processo passa para o estado de execução quando é escolhido para execução. As instruções do processo são executadas por uma das CPUs (ou núcleos) do sistema. Há no máximo um processo em execução por CPU ou núcleo. Um processo pode ser executado em qualquer um dos dois modos, ou seja, modo kernel ou modo de usuário .

Modo kernel

  • Os processos no modo kernel podem acessar: kernel e endereços do usuário.
  • O modo kernel permite acesso irrestrito ao hardware, incluindo a execução de instruções privilegiadas .
  • Várias instruções (como instruções de E / S e instruções de parada) são privilegiadas e podem ser executadas apenas no modo kernel.
  • Uma chamada de sistema de um programa do usuário leva a uma mudança para o modo kernel.

Modo de usuário

  • Os processos no modo de usuário podem acessar suas próprias instruções e dados, mas não as instruções e dados do kernel (ou de outros processos).
  • Quando o sistema de computador está executando em nome de um aplicativo do usuário, o sistema está no modo de usuário. No entanto, quando um aplicativo de usuário solicita um serviço do sistema operacional (por meio de uma chamada de sistema ), o sistema deve fazer a transição do modo de usuário para o kernel para atender à solicitação.
  • O modo de usuário evita várias falhas catastróficas:
    • Há um espaço de endereço virtual isolado para cada processo no modo de usuário.
    • O modo de usuário garante a execução isolada de cada processo para que não afete outros processos como tal.
    • Nenhum acesso direto a qualquer dispositivo de hardware é permitido.

Bloqueado

Um processo passa para um estado bloqueado quando não pode continuar sem que ocorra uma mudança externa no estado ou evento. Por exemplo, um processo pode bloquear em uma chamada para um dispositivo de E / S, como uma impressora, se a impressora não estiver disponível. Os processos também costumam ser bloqueados quando exigem entrada do usuário ou exigem acesso a uma seção crítica que deve ser executada atomicamente. Essas seções críticas são protegidas usando um objeto de sincronização, como um semáforo ou mutex.

Rescindido

Um processo pode ser encerrado , seja do estado "em execução", completando sua execução ou explicitamente sendo eliminado. Em qualquer um desses casos, o processo passa para o estado "encerrado". O programa subjacente não está mais em execução, mas o processo permanece na tabela de processos como um processo zumbi até que seu processo pai chame a chamada do wait sistema para ler seu status de saída , momento em que o processo é removido da tabela de processos, terminando finalmente o processo vida. Se o pai falhar na chamada wait , isso continuará a consumir a entrada da tabela de processos (concretamente o identificador de processo ou PID) e causará um vazamento de recursos .

Estados de processo adicionais

Dois estados adicionais estão disponíveis para processos em sistemas que suportam memória virtual . Em ambos os estados, os processos são "armazenados" na memória secundária (normalmente um disco rígido ).

Trocado e esperando

(Também chamado de suspenso e em espera .) Em sistemas que suportam memória virtual, um processo pode ser trocado, ou seja, removido da memória principal e colocado em armazenamento externo pelo planejador. A partir daqui, o processo pode ser alternado de volta para o estado de espera.

Trocado e bloqueado

(Também chamado de suspenso e bloqueado .) Os processos bloqueados também podem ser trocados. Neste caso, o processo é trocado e bloqueado, e pode ser trocado de volta nas mesmas circunstâncias que um processo trocado e em espera (embora, neste caso, o processo vá para o estado bloqueado e ainda possa estar esperando para que um recurso fique disponível).

Veja também

Referências

  • Stallings, William (2005). Sistemas operacionais: internos e princípios de design (5ª ed.). Prentice Hall. ISBN   0-13-127837-1 .
Particularmente no capítulo 3, seção 3.2, "estados do processo", incluindo a figura 3.9 "transição do estado do processo com estados suspensos"