Quais são os principais estados em que um processo pode se encontrar?

Quais são os principais estados em que um processo pode se encontrar?

Um processo pode ser considerado como um programa em execução, também um conjunto de informações necessárias para a concorrência de programas no sistema operacional. Além disso, também pode ser entendido como o ambiente onde um programa é executado.

Essas definições você irá encontrar no Arquitetura de Sistemas Operacionais, livro dos mestres Francis Machado e Luiz Maia.

Frisando Tanenbaum e Austin:

(..) um processo pode ser pensado como um programa em execução juntamente com toda informação do seu estado (memória, registradores, contador de programa, status de E/S, etc

Quando ocorre uma troca de um processo por outro temos a chamada mudança de contexto, e cada processo possui três partes:

  1. Contexto de hardware
  2. Contexto de software
  3. Espaço de endereçamento

Contexto de hardware

Essa parte do processo é a que armazena o conteúdo dos registradores gerais da CPU e dos registradores específicos. O contexto de hardware de um processo em execução fica armazenado nos registradores do processador.

Contexto de software

Aqui temos as especificidades dos recursos disponíveis para serem alocados em um processo, como limite de arquivos abertos ao mesmo tempo, tamanho do buffer para operações de E/S e prioridade de execução de processos.

O contexto possui três tipos de informação sobre o processo: identificação, quotas e privilégios.

Identificação

Cada processo do sistema operacional possui um número identificador, chamado de PID (process identification), juntamente com a identificação do usuário que o criou, o UID (user identificação).

Quotas

Aqui temos a informação dos limites de recurso que o processo pode alocar.

Privilégios

Os privilégios definem quais ações um processo pode tomar com relação a ele mesmo, a outros processo e ao sistema operacional. Pense, por exemplo, num processo iniciado pelo root no linux, que tem privilégios de administrador.

Espaço de endereçamento

Esta parte do processo refere-se a àrea da memória que pertence ao processo, que ele possui para armazenar instruções e dados para sua execução.

Estados de um processo

Um processo pode ter basicamente três estados: em execução, pronto ou em espera.

Execução (running)

Dizemos que um processo está em execução quando ele está sendo processado pela CPU.

Pronto (ready)

Estar em estado de pronto significa que o processo aguarda para ser executado. A ordem de execução dos processos em estado de pronto é determinada pelo mecanismo de escalonamento.

Espera (wait)

O processo encontra-se em estado de espera quando aguarda por algum evento externo ou algum recurso para prosseguir sua execução.

Para maiores informações sobre processos vale dar uma lida no livro Arquitetura de Sistemas Operacionais do Francis Machado e do Luiz Maia.


Fontes:
MACHADO, Francis Berenger; MAIA, Luiz Paulo. Arquitetura de Sistemas Operacionais: Incluindo Exercícios com o Simulador SOSIM e Questões do ENADE. Rio de Janeiro: LTC, 2013.

TANENBAUM, Andrew S; AUSTIN, Todd. Organização estruturada de computadores. Tradução Daniel Vieira; revisão técnica Wagner Luiz Zucchi. São Paulo: Pearson Prentice Hall, 2013.


Esse texto não tem intenção de esgotar o tema. Acrescente nos comentários, e também aponte erros quando os identificar.

O Contexto de hardware

O contexto de hardware armazena o conteúdo dos registradores gerais da UCP, além dos registradores de uso específicos ( CI ou PC, stack  pointer ). Quando um processo está em execução, o seu conteúdo de hardware está armazenado nos registradores do processador.

O Contexto de software

O Contexto de software armazena informações sobre limites e características dos recursos que podem ser alocados pelo processo, como o número máximo de arquivos abertos simultaneamente, prioridade de execução e tamanho do buffer para operações de E/S. Estas características são determinadas no momento da criação do processo e durante sua execução.

O Contexto de software é composto por três grupos de informações sobre o processo:

Identificação - Cada processo possui um identificador ( PID - process identification ) que é representado por um número. O processo é identificado pelo sistema operacional através do PID.  O processo também possui a identificação do usuário ou processo que o criou ( owner ). Cada usuário possui uma identificação no sistema ( UID - User identification ), atribuida ao processo no momento de sua criação.

Quotas - As quotas são o limite de cada recurso do sistema que um processo pode alocar. Caso uma quota seja o insuficiente o processo pode ser executado lentamente, ser interrompido ou até não ser executado. São exemplos de quotas:

  • Numero máximo de arquivos abertos
  • Tamanho máximo da memória principal e secundária que pode ser alocada
  • Número máximo de operações de E/S pendentes
  • Tamanho  máximo do buffer para operações de E/S
  • Número máximo de processos

Privilégios - Os privilégios ou direitos definem as ações que um processo pode fazer em relação a ele mesmo, aos demais processos e ao sistema operacional.


Espaço de Endereçamento

O espaço de endereçamento é a área de memória pertencente ao processo onde instruções e dados do programa são armazenados para execução. Cada processo possui seu próprio espaço de endereçamento que é protegido pelo sistema operacional para que não haja acesso pelos demais processos em execução.

Bloco de Controle de Processo

O processo é implementado pelo sistema operacional através de uma estrutura de dados chamada bloco de controle do processo ( PCB - Process Control Block ). O sistema operacional, através do PCB, mantém todas as informações sobre o contexto de hardware, contexto de software e espaço de endereçamento. Cada processo possui seu PCB que mantêm todas as suas informações.

OS PCBS de todos os processos são mantidos na memória principal em uma área exclusiva do sistema operacional. O tamanho desta área de memória é controlado por parâmetro no sistema operacional de acordo com o número máximo de processos que podem ser suportados pelo sistema operacional.

A figura abaixo mostra algumas das informações do BCP de um processo:

Quais são os principais estados em que um processo pode se encontrar?

Estados de um Processo

Em umsistema multi programado, os processos passam por vários estados durante a sua execução, em função de eventos gerados pelo sistema operacional ou pelo próprio processo.

Um processo ativo pode encontrar-se em um de três diferentes estados:

  • Execução ( Running ) - Quando o processo está em execução pela UCP.

  • Pronto ( Ready ) - Quando o processo aguarda para ser executado. O sistema operacional determina a ordem e o critério para que um processo em estado de pronto possa ter acesso ao processador. Este processo é chamado de escalonamento de processos.

  • Espera ( wait ) - Quando o processo aguarda um evento externo ou por algum recurso para prosseguir seu processamento. Por exemplo, o termino da gravação de um arquivo ou a espera de determinada hora para iniciar a execução de processo.


Mudanças de Estado de um Processo

Um processo muda de estado durante seu processamento em virtude de eventos gerados pelo sistema operacional ou pelo próprio processo. Existem quatro mudanças de estado que podem ocorrer a um processo:

  • Pronto -> Execução - Após ser criado o processo é colocado em uma lista de execução em estado de pronto onde fica aguardando sua vez de ser executado.

  • Execução -> Espera - Um estado em execução passa para o estado de espera por eventos externos ou por eventos gerados pelo próprio processo. Por exemplo, uma operação de entrada/saída.

  • Espera -> Pronto - Um processo em espera para para o estado de pronto quando o recurso solicitado é concedido ou quando a operação solicitada é concluída. Um estado em espera sempre terá que voltar ao estadp de pronto antes de prosseguir sua execução. Nenhum processo em espera passa diretamente para execução.

  • Execução -> Pronto - Um processo em execução passa para o estado de pronto por eventos gerados pelo sistema, como o término da fatia de tempo que o processo possui para sua execução.

Swapping de Processos

Um processo em estado pronto ou de espera pode nao estar na memória principal. Esta condição ocorre quando não há espaço suficiente na memória principal para todos os processos. Neste caso, o contexto do processo é saldo em memória secundária. Este mecanismo é chamado swapping e consiste em retirar processos da memória principal e os trazer de volta à memória principal de acordo com critérios de cada sistema operacional.

Criação e Eliminação de Processos

Processos são criados e eliminados o tempo todo pelo sistema operacional.

A criação de um processo ocorre quando o sistema operacional adiciona um novo PCB a sua estrutura e aloca um espaço de endereçamento na memória para uso. A partir da criação do PCB o sistema operacional já reconhece a existência do processo. A partir desse momento é possível gerenciar o processo e associar ao seu contexto um programa para ser executado.

A eliminação de um processo desaloca todos os recursos associados ao processo e remove o PCB criado para o processo.

Existem dois estados adicionais para representar a criação e eliminação de processos.

Criação ( new ) - Um processo é dito no estado e criação quando o sistema operacional já criou um novo PCB, porem ainda não pode coloca-lo na lista de processos do estado pronto. Alguns sistemas operacionais limitam o número de processos ativos em função de recursos disponíveis ou de desempenho. Por isso, os processos criados permanecem no estado de criação até que possam ser colocados no estado pronto quando ficam ativos e aguardando para serem executados.

Terminado ( exit ) - Um processo no estado de terminado não poderá mais ter nenhum programa executado no seu contexto nem ter nenhum recurso alocado. Porém o sistema operacional ainda mantém informações do processo em memória. O processo no estado terminado não é mais considerado ativo.

Um processo pode passar para o estado terminado por razões como:

  • término normal de execução;
  • eliminação por um outro processo;
  • eliminação forçada por ausência de recursos disponíveis no sistema.

A figura abaixo mostra um diagrama de estados de um processo:

Quais são os principais estados em que um processo pode se encontrar?

Processos CPU-Bound e I/O Bound

Os processos podem ser classificados de acordo com o uso do processador ou dos dispositivos de E/S.

Um processo é definido como CPU-Bound quando passa a maior parte do tempo no estado de execução, utilizando o processador, ou pronto. Este tipo de processo faz muito pouco uso de leitura e escrita em dispositivos de E/S.

Um processo é definido como I/O Bound quando passa a maior parte do tempo no estado de espera, pois realiza muitas operações de leitura e escrita. A maioria das aplicações comerciais constitui este tipo de processo que faz consultas e atualizações em um banco de dados, por exemplo, durante o uso pelos usuários.

Processos foreground e background

Os processos também podem ser classificados pela forma de comunicação com o usuário ou com outros processos. A comunicação dos processos é feita por canais de entrada e saída que podem estar associados a terminais, impressoras, arquivos ou a outros processos.

Um processo é dito Foreground quando permite a comunicação direta do usuario com o processo durante o seu processamento. Os canais de entrada e saida são geralmente o teclado e o terminal, respectivamente. Desta forma, existe interação entre o usuário e o processo durante a execução do processo.

Um processo é dito Background quando não permite a comunicação direta do usuário com o processo durante a sua execução. O processamento batch é geralmente associado a processos background.

Quais os principais estados de um processo?

3 tipos de estados:.
Execução (running) – O processo está sendo executado pela CPU..
Pronto (ready) – O processo está pronto e esperando para ser executado pela CPU..
Espera (wait) – O processo está esperando algum evento externo ou por algum recurso para poder prosseguir seu processamento..

Quais são os 5 estados de um processo?

Estados de Processos.
Ao executar, processo muda de “estados” New: processo está sendo criado..
Running: instruções do processo estão executando. Waiting: processo está esperando ocorrência de algum..
evento. Terminated: processo terminou a execução..

Quantos são os estados de um processo?

Um processo passa por diferentes estados desde sua criação até seu término. Enquanto ele é criado, seu estado é considerado "Novo"; em ação, muda para "Executando"; quando depende da ocorrência de algum evento, vira "Esperando"; quando não mais necessário, o processo é "Terminado".

Quais os estados de um processo quais as possíveis transições?

Em resumo: – 5 estados (criado, pronto, executando, bloqueado, encerrado) – Transições possíveis.