O que você vai aprender
Listar os critérios de avaliação de algoritmos de escalonamento.
Aplicar FCFS, SJF, Round-Robin e prioridades.
Entender filas multinível e o escalonamento preemptivo.
Calcular tempos de espera e de retorno e interpretar trade-offs.
Quem usa a CPU agora?
Há sempre mais processos prontos do que CPUs disponíveis. Alguém precisa decidir, a cada instante, quem roda. Essa decisão é do escalonador, e ela afeta diretamente o desempenho que você sente.
Um bom escalonamento mantém a CPU ocupada, dá respostas rápidas aos programas interativos e evita que processos esperem para sempre. Não existe algoritmo perfeito — há trade-offs, e hoje vamos compará-los, inclusive no simulador.
O que veremos nesta aula
SJF→Prioridades→Round-
Robin→Multinível +
simulador
Critérios de avaliação
| Critério | Significado | Objetivo |
|---|---|---|
| Utilização da CPU | % de tempo ocupada | Maximizar |
| Vazão (throughput) | Processos concluídos por unidade de tempo | Maximizar |
| Tempo de retorno | Da chegada ao término | Minimizar |
| Tempo de espera | Tempo na fila de prontos | Minimizar |
| Tempo de resposta | Até a primeira resposta | Minimizar |
Preemptivo × não preemptivo
Não preemptivo. Só troca quando o processo libera a CPU voluntariamente (termina ou bloqueia).
FCFS e o efeito comboio
FCFS (First-Come, First-Served): atende por ordem de chegada. Considere P1=24, P2=3, P3=3 chegando juntos:
Os curtos esperam atrás do longo: é o efeito comboio.
Stepper: calculando o tempo de espera no SJF
SJF (Shortest Job First)
Problemas: exige prever a duração de cada processo (impossível com exatidão) e pode causar inanição de processos longos se sempre chegarem curtos. A versão preemptiva é o SRTF (Shortest Remaining Time First).
Escalonamento por prioridades
SJF é um caso particular (prioridade = inverso do tempo). O risco é a inanição: processos de baixa prioridade podem nunca rodar. A solução é o envelhecimento (aging): a prioridade sobe com o tempo de espera.
O pronto-socorro
Visão geral dos algoritmos
| Algoritmo | Preemptivo? | Ponto forte | Ponto fraco |
|---|---|---|---|
| FCFS | Não | Simples e justo na ordem | Efeito comboio |
| SJF | Não (SRTF: sim) | Mínimo tempo médio de espera | Precisa prever; inanição |
| Prioridades | Pode ser | Atende o importante primeiro | Inanição (sem aging) |
| Round-Robin | Sim | Bom tempo de resposta | Overhead de troca de contexto |
Round-Robin em ação
O Round-Robin (RR) dá a cada processo um quantum e alterna circularmente — ideal para tempo compartilhado.
quantum→P2
quantum→P3
quantum→P1
...
O quantum e o multinível
Verifique: quantum grande
No Round-Robin, um quantum muito grande faz o algoritmo se comportar como:
Round-Robin com quantum 3
Processos P1=8, P2=4, chegando juntos, quantum=3:
O RR intercala os processos, melhorando o tempo de resposta, mas com mais trocas.
Onde os cálculos erram
• Tempo de espera ≠ tempo de retorno: retorno = término − chegada; espera = retorno − tempo de CPU.
• SJF minimiza a espera média, não necessariamente a de cada processo individual.
• No RR, não esqueça de recolocar o processo no fim da fila ao esgotar o quantum.
Estratégia para resolver exercícios
• Sempre desenhe a linha do tempo (diagrama de Gantt) antes de calcular.
• Anote término de cada processo; daí saem retorno e espera.
• Para RR, marque o quantum e a fila a cada troca.
• Confira tudo no simulador desta aula.
Revele: SJF e previsão
Se o SJF é ótimo, por que não é simplesmente usado em todo SO?
Revisão relâmpago
Mãos à obra no simulador
Hora de praticar: abra o simulador de escalonamento de CPU abaixo e compare FCFS, SJF e Round-Robin sobre o mesmo conjunto de processos.
- Observe como o tempo médio de espera muda entre os algoritmos.
- Force o efeito comboio colocando um processo bem longo primeiro no FCFS.
- Varie o quantum no RR e veja o impacto nas trocas de contexto e na resposta.
Para onde isto leva
- O timer que preempta usa interrupções → Aula 2.
- Quem é escalonado são processos/threads → Aulas 3 e 4.
- Trocas de contexto aparecem aqui como custo → Aula 3.
- Prova 1 cobrará cálculos de espera/retorno → Aula 7.
Fechando a aula
Atividade em grupo · Torneio de escalonadores
Em grupos, calculem e comparem métricas de diferentes algoritmos.
Roteiro
- Recebam 4 processos com tempos de chegada e de CPU (ex.: P1=8, P2=4, P3=9, P4=5).
- Calculem o tempo médio de espera para FCFS e para SJF.
- Calculem para Round-Robin com quantum 3.
- Confiram no simulador da aula e discutam qual venceu e por quê.
Mini-quiz · Aula 5
20 questões sobre esta aula. Escolha e veja a explicação na hora.
📌 Resumo — leve isto para a prova
- O escalonador escolhe o próximo processo segundo critérios como espera, retorno, resposta e vazão.
- FCFS é simples mas sofre efeito comboio; SJF minimiza a espera média mas exige previsão e pode causar inanição.
- Round-Robin usa quantum e é ideal para tempo compartilhado; quantum grande vira FCFS, pequeno gera overhead.
- Prioridades atendem o importante primeiro; aging evita inanição.
- Filas multinível com realimentação combinam vários algoritmos adaptando-se ao comportamento.