Sistemas Operacionais

Algoritmo Round-robin

Algoritmo Round Robin: como funciona o escalonamento circular de processos, o que é quantum, exemplo passo a passo, vantagens e desvantagens.

Capa: Algoritmo Round-robin

O Round Robin (RR) é um dos algoritmos mais simples de escalonamento de processos em sistemas operacionais. Ele dá a cada processo uma fatia de tempo igual, em ordem circular, sem prioridades. Foi pensado para sistemas de tempo compartilhado, em que vários usuários e programas dividem a CPU.

Como funciona

  1. Os processos prontos ficam em uma fila circular.
  2. O sistema define um quantum, o tempo máximo que cada processo usa a CPU de cada vez.
  3. O primeiro da fila executa. Se terminar dentro do quantum, sai; se não, é interrompido (preempção) e volta para o fim da fila.
  4. O próximo da fila recebe a CPU, e assim por diante até todos terminarem.

Um temporizador gera a interrupção ao fim de cada quantum.

Exemplo

Quantum de 100 ms e três processos: P1 precisa de 250 ms, P2 de 100 ms e P3 de 150 ms, todos chegando no instante 0.

Intervalo (ms)ProcessoRestante depois
0 a 100P1150
100 a 200P20 (terminou)
200 a 300P350
300 a 400P150
400 a 450P30 (terminou)
450 a 500P10 (terminou)

O tempo total de CPU foi de 500 ms, e cada processo avançou de forma justa.

Simulação em Python

from collections import deque

def round_robin(processos, quantum):
    fila = deque(processos.items())        # (nome, tempo restante)
    tempo = 0
    while fila:
        nome, restante = fila.popleft()
        usa = min(quantum, restante)
        print(f"{tempo:>4} a {tempo + usa:<4} -> {nome}")
        tempo += usa
        if restante > usa:
            fila.append((nome, restante - usa))   # volta ao fim da fila
        else:
            print(f"      {nome} terminou em {tempo} ms")

round_robin({"P1": 250, "P2": 100, "P3": 150}, quantum=100)

Vantagens

  • Simples de implementar.
  • Justo: todos os processos recebem CPU, sem starvation (inanição).
  • Bom tempo de resposta para sistemas interativos.

Desvantagens

  • A troca de contexto a cada quantum tem custo.
  • Não considera prioridades nem a duração dos processos.
  • O tempo médio de espera pode ser maior que em algoritmos como SJF.

Como escolher o quantum

Quantum muito pequeno gera troca de contexto em excesso e desperdiça CPU. Quantum muito grande faz o RR se comportar como o FCFS (primeiro a chegar, primeiro a ser atendido) e piora a resposta. Valores típicos ficam na casa de dezenas de milissegundos.

Mais artigos