LRM Prof. Mantovani ← Aulas da disciplina
Semana 3 · Aula 3 de 14

Processos

O conceito central do SO: o que é um processo, como o PCB o representa, quais estados ele assume, como ocorre a troca de contexto e como processos são criados e finalizados.

📚 Sistemas Operacionais📝 mini-quiz ao final
Objetivos da aula

O que você vai aprender

1

Definir processo e descrever o bloco de controle de processo (PCB).

2

Explicar os estados de um processo e suas transições.

3

Entender a troca de contexto e a criação/término de processos.

4

Reconhecer processos zumbi e órfãos.

1 · Motivação

O conceito que sustenta o SO

Se há um conceito sem o qual o SO não existe, é o de processo. Tudo o que "roda" no computador é um processo, e quase toda gerência do SO gira em torno deles.

Quando você abre o navegador, o editor e o player ao mesmo tempo, o SO mantém três (ou mais) processos vivos, cada um com seu estado, alternando-os na CPU tão rápido que parecem simultâneos. Entender como ele faz isso é o objetivo de hoje.

2 · Mapa

O que veremos nesta aula

Processo
e PCB
Estados e
transições
Troca de
contexto
Criação e
término
💡
Lembre da distinção que volta o tempo todo: programa é passivo (código no disco); processo é ativo (programa em execução).
3 · Conceito

O que é um processo

Processo. Um programa em execução, com seu próprio espaço de endereçamento, registradores, pilha e estado.
PCB (Process Control Block). Estrutura do SO que guarda todas as informações de um processo.
4 · Conceito

Programa não é processo

O mesmo programa pode dar origem a vários processos. Abrir duas janelas do mesmo editor cria dois processos que executam o mesmo código, mas têm dados e estados independentes.

🔑
Programa é passivo (código no disco); processo é ativo (em execução). Um mesmo programa pode gerar vários processos.
5 · Exemplo

O que vive no PCB

O PCB é a "carteira de identidade" do processo. Contém, entre outros:

CampoPara quê
PIDIdentificador único do processo
EstadoPronto, executando, bloqueado...
Contador de programaPróxima instrução a executar
RegistradoresContexto da CPU salvo
Prioridade / escalonamentoDecisões do escalonador
Memória e arquivos abertosRecursos do processo
6 · Interativo

Stepper: ciclo de vida de um processo

Passo 1
Novo: o SO cria o PCB e aloca recursos iniciais.
Passo 2
Pronto: o processo entra na fila esperando a CPU.
Passo 3
Executando: o escalonador o escolhe (dispatch) e ele usa a CPU.
Passo 4
Bloqueado: pede E/S e sai da CPU até o evento terminar; depois volta a Pronto.
Passo 5
Terminado: chama exit(); o SO libera recursos.
7 · Conceito

Os estados de um processo

Estado do processo. Indica em que situação o processo está no momento: novo, pronto, executando, bloqueado ou terminado.
NovoProntoExecutandoBloqueadoTerminado
8 · Conceito

As transições e seus gatilhos

TransiçãoO que acontece
Novo → ProntoAdmissão pelo SO
Pronto → ExecutandoO escalonador escolhe o processo (dispatch)
Executando → ProntoFim do quantum ou preempção
Executando → BloqueadoO processo pede E/S ou aguarda evento
Bloqueado → ProntoA E/S/evento termina
Executando → TerminadoO processo chama exit()
9 · Analogia

A fila do caixa

🛒 Analogia
Imagine um único caixa (a CPU). Clientes prontos esperam na fila (fila de prontos). Um é atendido (executando). Se ele precisa buscar um produto esquecido (E/S), sai do caixa (bloqueado) e, ao voltar com o produto, vai para o fim da fila (pronto) — não retoma o caixa na hora. Quando termina a compra, vai embora (terminado).
10 · Comparação

Bloqueado × Pronto

ProntoBloqueado
Pode rodar agora?Sim, só falta a CPUNão, espera um evento
Espera porO escalonador escolhê-loFim de E/S ou um evento
Vai para Executando?Direto, ao ser escolhidoNão; primeiro vira Pronto
⚠️
Um processo bloqueado não vai direto para executando: ele volta para a fila de prontos e só executa quando o escalonador o escolher de novo.
11 · Flow

A troca de contexto

Troca de contexto. Operação em que o SO salva o estado (registradores, PC) do processo que sai da CPU e restaura o do que entra.
Salva contexto
de P1 no PCB
Escalonador
escolhe P2
Restaura contexto
de P2 do PCB

A troca de contexto é overhead puro: enquanto ela ocorre, nenhum trabalho útil do usuário é feito.

12 · Aprofundamento

Criação de processos no Unix

No Unix/Linux, processos nascem de outros com fork() (cria uma cópia do pai) e exec() (substitui o programa em execução).

pid_t pid = fork(); // cria um processo filho if (pid == 0) // código do filho execlp("ls", "ls", NULL); else // código do pai wait(NULL);
13 · Interativo

Verifique: destino do bloqueado

Quando a E/S de um processo bloqueado termina, ele vai para qual estado?

Ele volta à fila de prontos; só executa de novo quando o escalonador o escolher.
14 · Caso prático

Zumbis e órfãos

Processo zumbi. Já terminou, mas o pai ainda não leu seu status (wait); seu PCB permanece até ser "colhido".
Processo órfão. Seu pai terminou antes dele; é adotado por um processo do sistema (init/systemd).

O término normal usa exit(); o pai aguarda com wait(). Se o pai nunca chamar wait, acumulam-se zumbis.

15 · Erros comuns

Armadilhas com processos

⚠️
Cuidado:
• Bloqueado → Executando não existe; passa por Pronto.
• fork() retorna duas vezes: 0 para o filho e o PID do filho para o pai.
• Um processo zumbi não consome CPU, mas ocupa uma entrada na tabela de processos.
16 · Dicas

Como visualizar processos

Dicas práticas:
• Use ps aux ou top para ver processos e estados reais.
• A coluna de estado (R, S, D, Z) mostra executando, dormindo, bloqueado e zumbi.
kill envia sinais — ligação com a Aula 6 (IPC).
17 · Interativo

Revele: por que bloqueado vai a pronto

Por que um processo desbloqueado vai para Pronto e não direto para Executando?
Porque a CPU pode estar ocupada com outro processo, e a decisão de quem executa cabe ao escalonador, não ao evento de E/S. Mandar o processo direto para Executando ignoraria essa decisão e poderia interromper injustamente quem já estava rodando. Indo para Pronto, ele entra na disputa de forma ordenada.
18 · Flashcards

Revisão relâmpago

Processovirar
Programa em execução, com espaço de endereçamento, registradores e estado próprios.
PCBvirar
Estrutura que guarda PID, estado, registradores e recursos do processo.
Troca de contextovirar
Salvar o contexto de um processo e restaurar o de outro ao trocar na CPU.
Zumbivirar
Processo terminado cujo status ainda não foi colhido pelo pai.
19 · Conexões

Para onde isto leva

  • Quem escolhe o próximo Pronto → Aula 5 (escalonamento).
  • Fluxos dentro de um processo → Aula 4 (threads).
  • Processos trocando dados → Aula 6 (IPC) e sinais.
  • Acesso concorrente a dados → Aula 7 (sincronização).
20 · Síntese

Fechando a aula

🔑
Em uma frase: um processo é um programa em execução descrito por um PCB; ele percorre os estados novo→pronto→executando→bloqueado→terminado, e a troca de contexto permite ao SO alternar entre processos preservando o estado de cada um.
Mão na massa · colaborativo

Atividade em grupo · Diagrama de estados ao vivo

Em trios, encenem os estados de um processo.

⏱️ 25 min👥 trios🧩 simulação física

Roteiro

  1. Atribuam papéis: CPU, fila de prontos e dispositivo de E/S.
  2. Façam um "processo" (um aluno) percorrer os estados respondendo a eventos (quantum esgotado, pedido de E/S, fim de E/S).
  3. Anotem cada transição e seu gatilho.
  4. Discutam: por que de bloqueado se vai para pronto e não para executando?
Escalonadordecide quem executa
Dispositivo de E/Slibera o bloqueado
Cronometristacontrola o quantum
📤 Entrega: Tabela de transições percorridas com seus gatilhos.
Teste seu conhecimento

Mini-quiz · Aula 3

20 questões sobre esta aula. Escolha e veja a explicação na hora.

0/20

📌 Resumo — leve isto para a prova

  • Processo é um programa em execução; o PCB guarda seu contexto (PID, estado, registradores, recursos).
  • Os estados básicos: novo, pronto, executando, bloqueado e terminado.
  • De bloqueado vai-se para pronto, nunca direto para executando.
  • A troca de contexto salva e restaura estados; é overhead.
  • No Unix, fork()/exec() criam e substituem processos; exit()/wait() encerram; há zumbis e órfãos.