Algoritmos de programação de processos são métodos usados pelos sistemas operacionais para gerenciar a execução de múltiplas tarefas. Eles determinam qual processo é executado em qualquer momento, visando otimizar o desempenho e a utilização de recursos. Usando exemplos do mundo real pode ajudar a esclarecer como esses algoritmos funcionam em cenários práticos.

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

Este algoritmo programa processos na ordem que eles chegam. É simples e fácil de implementar, mas pode levar a longos tempos de espera para tarefas mais curtas se tarefas mais longas chegarem primeiro.

Por exemplo, em uma linha de checkout de supermercado, os clientes são servidos na ordem que chegam, independentemente do número de itens que eles têm. Isso pode causar atrasos para os clientes com menos itens se alguém com muitos itens se junta à linha primeiro.

Robin Redondo (RR)

Este algoritmo atribui a cada processo uma fatia de tempo fixa ou quântica. Os processos são ciclados em uma fila, garantindo uma distribuição justa do tempo da CPU.

Imagine um grupo de pessoas que compartilha um único computador, cada um revezando por um período definido. Se uma pessoa não terminar dentro do seu tempo, eles vão para trás da linha para outra volta. Esta abordagem impede qualquer processo de monopolizar a CPU.

Próximo trabalho mais curto (SJN)

Este algoritmo seleciona o processo com o menor tempo de execução esperado. Ele minimiza o tempo médio de espera, mas requer conhecimento prévio das durações do processo.

Considere um centro de atendimento ao cliente onde perguntas rápidas são priorizadas em questões longas. Isso garante resolução mais rápida para tarefas simples, mas pode causar mais tempo de espera para casos complexos.

Agendamento Prioritário

Os processos são priorizados e o escalonador seleciona o processo de prioridade mais alto a ser executado. Isso pode ser preventivo ou não preventivo.

Em um hospital, os casos de emergência são tratados antes de exames de rotina. As tarefas de alta prioridade são tratadas prontamente, mas tarefas de menor prioridade podem sofrer atrasos.

  • Justeza
  • Eficiência
  • Responsividade
  • Complexidade