Aula 09.2 - Algoritmos de Escalonamento (RR e multinível)
Escalonador Round-Robin
O escalonador Round-Robin permite que cada processo receba a CPU por um intervalo de tempo fixo, denominado "Quantum".
Os Quantum geralmente variam de milissegundos a dezenas ou centenas de milissegundos.
Quando um processo atinge seu tempo de Quantum, ele é interrompido e colocado de volta na fila de prontos.
Overhead e Interatividade
A interrupção periódica do processo gera um custo adicional, conhecido como "overhead".
O overhead mais comum é relacionado à troca de contexto.
Apesar do overhead, o algoritmo Round-Robin favorece a interatividade.
Se o quanta for muito grande, o algoritmo se aproxima de um FIFO, onde processos são executados em ordem, resultando em pouca interatividade.
Se o quanta for muito pequeno, o overhead aumenta e pode resultar em mais tempo gasto nas trocas de contexto do que na execução efetiva dos processos.
Garantias do Modelo Round-Robin
Garante que cada processo receba acesso à CPU, assegurando que nenhum processo espere mais do que um quanta para ser executado novamente.
O plural de quanta é "quantas".
Assume que N é a quantidade de processos na fila, e cada processo é alternadamente atribuído à CPU, garantindo justiça no uso dos recursos computacionais disponíveis.
Exemplo Prático
Considerando um quanta de 20 unidades de tempo:
Processo P1 executa por 21 unidades; após 20 unidades, passa a ter 33 unidades restantes.
Processo P2 gasta 17 unidades e termina antes do quanta expirar, com 37 unidades restantes.
Processo P3 executa por 20 unidades, utilizando o quanta até 57 unidades.
P4 executa de 57 a 77, com 4 unidades restantes.
Retorno ao P1, que executa por 20 unidades e termina, restando 13 unidades.
O processo continua em um ciclo entre P1, P2, P3 e P4.
Alternâncias e Trocas de Contexto
O algoritmo Round-Robin consegue manter uma boa capacidade de resposta ao alternar entre os processos.
A relação entre o tamanho do quanta e a quantidade de trocas de contexto:
Quanto maior o quanta, menor o número de trocas de contexto.
Para um processo que consome 10 unidades, com um quanta de 12, não haverá trocas; com um quanta de 1, haverá 9 trocas.
Algoritmos de Múltiplas Filas
Alternativa aos algoritmos tradicionais de escalonamento.
Permitem classificar processos com características distintas (ex: interativos vs. batch).
Usam diferentes algoritmos de escalonamento para cada fila, baseando-se em prioridades.
Permitem mover processos entre filas, oferecendo flexibilidade e adaptabilidade ao sistema.
Escalonamento em Ambientes Multiprocessados
Com a chegada de múltiplas CPUs, o escalonamento se torna mais complexo.
Pode haver variações entre unidades de processamento homogêneas (ex: multi-core) e heterogêneas (ex: diferentes CPUs com bancos de memória distintos).
Trocas de processos entre CPUs podem alterar significativamente o desempenho devido a diferenças de acesso à memória.
Considerações sobre Tempo Real
Em sistemas de tempo real, há uma preocupação com a latência e o tempo de resposta a tarefas críticas.
Importante em aplicações como controle de sistemas, carros autônomos, aviação, etc.
Os sistemas que não são estritamente tempo real ainda necessitam de escalonamento eficiente, como no caso de vídeos em tempo real.