Estados, Criação e Término de Processos

Classificado em Computação

Escrito em em português com um tamanho de 3,78 KB

Estados dos Processos

1. Em execução: Realmente usando a CPU naquele momento.

2. Pronto: Executável, temporariamente parada para dar lugar a outro processo.

3. Bloqueado: Incapaz de executar enquanto não ocorre um evento externo.

Casos de Transição de Estado

Caso 1: O sistema operacional descobre que um processo não pode prosseguir.

Casos 2 e 3: Causados pelo escalonador, sem que o sistema saiba:

  • Caso 2: O escalonador decide que o processo já teve tempo suficiente de CPU e aloca o tempo de CPU para outro processo.
  • Caso 3: Ocorre quando todos os processos já obtiveram o tempo de CPU de maneira justa, e é hora de voltar para o 1º processo.

Caso 4: Evento externo (como chegada de uma entrada). Se nenhum processo estiver executando neste momento, o processo passa para o estado “pronto” e, por sua vez, para “em execução”.

Criação de Processos

Início do sistema: Quando o SO é carregado, inicializam-se vários processos, alguns em primeiro plano e outros em segundo plano (processos usados por vários usuários).

Execução de uma chamada de sistema de criação de processo por um processo em execução. Esse processo é interessante quando a tarefa a ser executada puder ser dividida em vários processos menores, em ambientes multiprocessadores, permitindo que essas tarefas sejam executadas em CPUs diferentes.

Requisição de um usuário para criar novo processo: Em sistemas interativos, o usuário pode solicitar o início de um novo processo, digitando um comando ou clicando duas vezes sobre ele.

Início de tarefa em lote: Um novo processo (filho) é criado através de uma chamada de sistema de um processo já existente (Pai).

Término de Processos

  • Saída normal (Voluntária): Processo termina porque acabou seu trabalho.
  • Saída por Erro (Voluntária): Usuário digita um comando errado.
  • Erro fatal (Involuntário): Erro causado pelo processo (“erro de programa”).
  • Cancelamento por outro Processo: Um processo “que tem permissão” solicita, através de uma chamada de sistema, a finalização de outro processo.

Comunicação entre Processos

Como um processo passa informação para o outro e como garantir que os dois processos não entrem em conflito. É necessária uma sequência adequada quando existirem dependências (se A produz dados e B imprime, B deve esperar até que A produza os dados para imprimir).

Condição de Corrida

Uma condição de corrida é uma falha num sistema ou processo em que o resultado do processo é inesperadamente dependente da sequência ou sincronia de outros eventos. Apesar de ser conhecido em português por 'condição de corrida', uma tradução melhor seria 'condição de concorrência', pois o problema está relacionado justamente ao gerenciamento da concorrência entre processos teoricamente simultâneos. O fenômeno pode ocorrer em sistemas eletrônicos, especialmente em circuitos lógicos, e em programas de computador, especialmente no uso de multitarefa ou computação distribuída.

Como Evitar

Quando o processo estiver em uma região crítica, nenhum outro processo poderá entrar nessa região.

Diferença entre Processo e Thread

  • Threads compartilham o espaço de memória (threads pertencentes a um mesmo processo).
  • Os processos têm espaços de memória independentes e quase sempre não têm acesso ao espaço de outros processos.

Entradas relacionadas: