O que você vai aprender
Definir processo e descrever o conteúdo do PCB.
Explicar o diagrama de estados de um processo.
Avaliar o custo de uma troca de contexto na CPU.
Relacionar a troca de contexto à latência de tempo real.
Como um computador faz "várias coisas ao mesmo tempo"?
Seu celular toca música, baixa um arquivo e mostra notificações — aparentemente em paralelo, mesmo com poucos cores. O truque é dividir o trabalho em processos e alternar rapidamente entre eles.
Mas alternar não é grátis. Cada vez que a CPU larga um processo e pega outro, ela precisa salvar e restaurar estado — e o hardware paga um preço escondido. Entender esse custo é essencial para projetar sistemas eficientes e de tempo real.
Roteiro da aula
e PCB→Estados→Troca de
contexto→Custo no
hardware
Definiremos processo, abriremos o PCB, percorreremos os estados e mediremos o custo da troca de contexto — incluindo o esfriamento de cache e TLB.
Processo e PCB
PCB (Process Control Block). Estrutura do SO que guarda tudo sobre um processo: PID, estado, contador de programa, registradores, tabela de páginas, arquivos abertos.
Programa não é processo
Distinção fundamental: o programa é passivo — bytes em disco. O processo é ativo — uma instância em execução, com estado que muda a cada instrução.
Um mesmo programa pode originar vários processos: abrir o navegador duas vezes cria dois processos independentes, com PIDs diferentes, espaços de endereçamento separados e seus próprios PCBs. O PCB é o "RG" que o SO mantém de cada um para retomá-lo exatamente onde parou.
Conteúdo de um PCB
Ao retomar este processo, o SO recarrega o contador de programa e os registradores a partir do PCB — e a execução continua como se nada tivesse acontecido.
Passo a passo: salvando um processo
Troca de contexto
Por que a troca custa caro
O custo da troca de contexto tem duas parcelas:
- Custo direto: os ciclos gastos salvando e restaurando registradores e atualizando o ponteiro da tabela de páginas. É pequeno e previsível.
- Custo indireto: ao trocar de espaço de endereçamento, a TLB é invalidada e a cache perde localidade. Os próximos acessos do novo processo provocam faltas de TLB e de cache — o "esfriamento". Esse custo é maior e mais difícil de prever.
Trocando de mesa de trabalho
Estados de um processo
| Estado | Significado | Sai para… |
|---|---|---|
| Novo | Sendo criado | Pronto |
| Pronto | Apto a rodar, aguardando a CPU | Executando |
| Executando | Ocupando a CPU agora | Pronto, Bloqueado ou Terminado |
| Bloqueado | Esperando um evento (E/S, semáforo) | Pronto (quando o evento ocorre) |
| Terminado | Concluído | — |
O ciclo de vida do processo
Da execução, o processo pode ir a Bloqueado (esperando E/S) e voltar a Pronto quando o evento chega — nunca pula direto de Bloqueado para Executando.
ASID: evitando esfriar a TLB
CPUs modernas mitigam o custo da TLB com ASIDs (Address Space Identifiers): cada entrada da TLB é etiquetada com o identificador do processo. Assim, ao trocar de processo, a TLB não precisa ser totalmente invalidada — as entradas de cada processo coexistem.
No x86, o recurso correspondente é o PCID. Threads do mesmo processo compartilham o espaço de endereçamento e, portanto, não exigem invalidação da TLB — uma das razões de threads serem mais baratas que processos (Aula 4).
Verifique seu entendimento
Por que a troca de contexto é considerada "overhead puro"?
Troca de contexto em RTOS
Num RTOS embarcado (ex.: FreeRTOS num Cortex-M), a troca de contexto é implementada em assembly na rotina do PendSV: ela empilha os registradores da tarefa atual, escolhe a próxima e desempilha os dela. Como não há MMU complexa nem paginação, o custo é baixo e, crucialmente, previsível.
Essa previsibilidade é o que importa em tempo real: não basta a troca ser rápida em média; ela precisa ter pior caso limitado, pois entra na conta da latência da tarefa de alta prioridade.
Mal-entendidos frequentes
• Dizer "programa" quando quer dizer "processo" — programa é estático, processo é a execução.
• Imaginar que Bloqueado vai direto a Executando — sempre passa por Pronto.
• Ignorar o custo indireto da troca — o esfriamento de cache/TLB costuma pesar mais que o salvamento de registradores.
Escolhendo o quantum
Revele o cálculo
Com troca de 5 µs e quantum de 20 ms, qual o overhead? E com quantum de 1 ms?
Revisão relâmpago
Onde isto reaparece
O custo da troca de contexto é tema recorrente:
- Define o trade-off do quantum no escalonamento (Aula 5).
- Explica por que threads são mais baratas que processos (Aula 4).
- Liga-se à TLB e à memória virtual (Aulas 8–9).
Resumo da aula
Atividade em grupo · Calculando o overhead
Em trios, estimem o impacto das trocas de contexto na CPU.
Roteiro
- Suponham troca de contexto de 5 µs e quantum de 20 ms; calculem o overhead percentual.
- Refaçam com quantum de 1 ms; o que muda?
- Discutam o efeito do esfriamento da cache/TLB além do tempo puro de salvamento.
- Relacionem com a escolha do quantum de escalonamento.
Mini-quiz · Aula 3
20 questões sobre esta aula. Escolha e veja a explicação na hora.
📌 Resumo — leve isto para a prova
- Processo é programa em execução; o PCB guarda todo o seu estado.
- Os estados típicos são pronto, executando e bloqueado, com transições definidas.
- A troca de contexto é overhead puro, com custo direto e indireto.
- Trocas esfriam TLB/cache; ASIDs/PCID mitigam parte do custo.
- Em tempo real, o pior caso da troca entra na latência do sistema.