Informática

Escalonamento de processos: FCFS, SJF e Round Robin com cálculos

O escalonador do sistema operacional decide qual processo usa o processador em cada instante. Em provas de TI, a cobrança vem em forma de cálculo: dado um conjunto de processos com chegada e duração, qual a média do tempo de espera em cada algoritmo? Os números deste guia foram obtidos simulando os algoritmos em um teste, e você pode repetir a conta à mão seguindo o método.

Definições que sustentam a conta

  • Tempo de chegada: instante em que o processo entra na fila de prontos.
  • Tempo de execução (burst): tempo de CPU de que o processo precisa.
  • Tempo de retorno (turnaround): do instante da chegada ao término. Retorno = término - chegada.
  • Tempo de espera: tempo que o processo passou na fila de prontos sem executar. Espera = retorno - execução.
  • Preempção: o sistema retira o processo da CPU antes de ele terminar. Algoritmo não preemptivo deixa o processo rodar até o fim (ou até bloquear).

O conjunto de processos

Processo Chegada Execução
P1 0 8
P2 1 4
P3 2 9
P4 3 5

Tempos em unidades genéricas. Ignora-se o custo da troca de contexto.

FCFS (primeiro a chegar, primeiro a ser atendido)

Atende na ordem de chegada, sem preempção. Diagrama de Gantt: P1 de 0 a 8; P2 de 8 a 12; P3 de 12 a 21; P4 de 21 a 26.

Processo Término Retorno Espera
P1 8 8 0
P2 12 11 7
P3 21 19 10
P4 26 23 18

Média de espera: (0 + 7 + 10 + 18) / 4 = 8,75. Média de retorno: (8 + 11 + 19 + 23) / 4 = 15,25. Efeito conhecido: processos curtos esperam atrás de processos longos (efeito comboio).

SJF não preemptivo (menor tarefa primeiro)

Quando a CPU fica livre, escolhe, entre os processos que já chegaram, o de menor tempo de execução. No instante 0 só o P1 está pronto, então roda de 0 a 8. No instante 8 estão prontos P2 (4), P3 (9) e P4 (5): o menor é o P2, de 8 a 12. Depois, entre P3 (9) e P4 (5), vai o P4, de 12 a 17. Por fim, P3, de 17 a 26.

Processo Término Retorno Espera
P1 8 8 0
P2 12 11 7
P3 26 24 15
P4 17 14 9

Média de espera: (0 + 7 + 15 + 9) / 4 = 7,75, melhor que a do FCFS. O SJF minimiza o tempo médio de espera quando todos os processos estão disponíveis ao mesmo tempo (resultado clássico da área). Dois problemas: exige conhecer ou estimar o tempo de execução, e pode causar inanição (starvation), pois processos longos podem esperar indefinidamente se chegarem sempre curtos. A versão preemptiva, que compara o tempo restante, chama-se SRTF ou “menor tempo restante primeiro”.

Round Robin (circular, com quantum)

Cada processo recebe a CPU por no máximo um quantum; se não terminou, volta ao fim da fila. É preemptivo. Com quantum igual a 4, a execução simulada foi:

Intervalo Processo
0 a 4 P1
4 a 8 P2
8 a 12 P3
12 a 16 P4
16 a 20 P1
20 a 24 P3
24 a 25 P4
25 a 26 P3
Processo Término Retorno Espera
P1 20 20 12
P2 8 7 3
P3 26 24 15
P4 25 22 17

Média de espera: (12 + 3 + 15 + 17) / 4 = 11,75; média de retorno: 18,25. O Round Robin não ganha em média de espera neste conjunto, mas oferece resposta rápida: todos os processos recebem a CPU logo (o P4, que chegou no instante 3, começa no 12; no FCFS começaria no 21). Convenção importante: quando um processo novo chega no mesmo instante em que outro é preemptado, adotou-se que o recém-chegado entra na fila antes do preemptado; outras convenções são possíveis e mudam a ordem, então o enunciado deve informar.

Efeito do quantum

  • Quantum muito grande: o Round Robin se aproxima do FCFS.
  • Quantum muito pequeno: muitas trocas de contexto, e o custo da troca consome a CPU.
  • Em geral, o quantum deve ser maior que o custo de uma troca de contexto, mas pequeno o bastante para dar boa resposta interativa.

Outros algoritmos citados em provas

Algoritmo Ideia Observação
Por prioridade roda o de maior prioridade pode causar inanição; remédio: envelhecimento (aumentar a prioridade de quem espera muito)
Múltiplas filas separa processos em filas com políticas diferentes combina, por exemplo, filas interativas e de lote
Filas com realimentação o processo migra de fila conforme o comportamento favorece processos curtos sem conhecer a duração

Passo a passo para o cálculo na prova

  1. Monte a tabela com chegada e execução.
  2. Desenhe a linha do tempo (Gantt) aplicando a regra do algoritmo.
  3. Para cada processo, anote o término.
  4. Retorno = término - chegada; espera = retorno - execução.
  5. Tire a média, conferindo a soma antes de dividir.

Erros comuns

  • Calcular a espera a partir do instante zero, sem descontar a chegada.
  • Aplicar o SJF considerando processos que ainda não chegaram.
  • Esquecer que o Round Robin devolve o processo ao fim da fila.
  • Confundir tempo de resposta (até a primeira execução) com tempo de espera total.
  • Dizer que o SJF é justo: ele pode causar inanição.

Fontes e atualização

Não há norma oficial brasileira sobre sistemas operacionais; o conteúdo segue a literatura clássica da área. Os tempos e as médias foram conferidos por simulação do conjunto de processos acima. Regras de desempate e convenções de fila variam: confira o enunciado e o edital.

Próximos passos

Leia também

Para continuar no site

Viu algo errado, desatualizado ou confuso? Relatar erro nesta página