Os algoritmos de programação são essenciais nos sistemas operacionais para gerenciar a execução do processo de forma eficiente. Eles determinam a ordem em que os processos são alocados tempo de CPU, impactando o desempenho do sistema e a responsividade. Este artigo compara três algoritmos comuns: First-Come, First-Served (FCFS), Shortest Job First (SJF) e Round Robin, com cálculos para ilustrar suas diferenças.

Primeiro-a-primeiro-vindo, primeiro-servido (FCFS)

A FCFS programa processos na ordem que chegam. É simples, mas pode levar a longos tempos de espera para processos mais curtos, conhecidos como o "efeito de transporte".

Exemplo: Processos com rupturas de 5, 3 e 8 chegam sequencialmente. O gráfico de Gantt mostra ordem de execução e cálculos para espera e turnoround.

Cálculos:

  • Processo 1: Tempo de espera = 0, Tempo de volta = 5
  • Processo 2: Tempo de espera = 5, Tempo de volta = 8
  • Processo 3: Tempo de espera = 8, Tempo de volta = 16

Primeiro trabalho mais curto (SJF)

SJF seleciona o processo com o menor tempo de ruptura seguinte. Ele minimiza o tempo médio de espera, mas requer conhecimento de durações do processo de antemão.

Usando os mesmos processos, SJF os programa como 3, 5, depois 8 unidades, levando a diferentes tempos de espera.

Cálculos:

  • Processo 2: Tempo de espera = 0, Tempo de volta = 3
  • Processo 1: Tempo de espera = 3, Tempo de volta = 8
  • Processo 3: Tempo de espera = 8, Tempo de volta = 16

Agendamento de Robin Redondo

A Round Robin atribui a cada processo uma fatia de tempo fixa ou quantum. Os processos são ciclados até a conclusão, promovendo justiça e responsividade.

Assumindo um quântico de 2 unidades, os processos são programados em ciclos, e os cálculos são baseados no tempo total de execução e nos períodos de espera.

Cálculos de exemplo para os tempos de conclusão do processo e de espera são os seguintes:

  • Processo 1: Tempo de espera = 4, Tempo de volta = 9
  • Processo 2: Tempo de espera = 2, Tempo de volta = 5
  • Processo 3: Tempo de espera = 8, Tempo de volta = 16