Este algoritmo foi criado para sistemas de tempo compartilhado Semelhante ao escalonamento FCFS, mas a preempo acrescentada para alternar entre os processos Quantum de tempo
Algoritmo de escalonamento Round-Robin (RR)
Cada processo obtm uma pequena unidade do tempo de CPU (quantum de tempo), normalmente 10-100 milissegundos. Aps decorrido esse tempo, o processo preemptado e colocado no final da fila de prontos.
Algoritmo de escalonamento Round-Robin (RR) Processador P1 P2 P3 P1 Preempo Fila de prontos Concluso Algoritmo de escalonamento Round-Robin (RR) Opes de escalonamento: Processo com um burst de CPU menor do que um quantum de tempo Processo com um burst de CPU maior do que um quantum de tempo
Algoritmo de escalonamento Round-Robin (RR) Processo tempo de burst P1 24 P2 3 P3 3 0 4 7 10 14 18 22 26 30 p1 p2 p3 p1 p1 p1 p1 p1 Tempo de espera mdio longo = 17/3 = 5,66 Algoritmo de escalonamento Round-Robin (RR)
Se houver n processos na fila de prontos e o quantum de tempo for q, ento cada processo recebe 1/n do tempo de CPU em, no mximo, q unidades de tempo de cada vez.
Nenhum processo espera mais do que (n- 1)q unidades de tempo. Algoritmo de escalonamento Round-Robin (RR)
Desempenho q grande FCFS q pequeno q precisa ser grande com relao ao tempo de troca de contexto ou o custo adicional ser muito alto Quantum de Tempo e Tempo de Troca de Contexto Exemplo de RR com Quantum de Tempo = 20 Processo Burst P 1 53 P 2 17 P 3 68 P 4 24 O diagrama de Gantt :
Normalmente, turnaround mdio mais alto do que SJF, mas melhora a resposta P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P 3 0 20 37 57 77 97 117 121 134 154 162 O Turnaround varia Conforme o Quantum de Tempo O Turnaround varia Conforme o Quantum de Tempo Turnaround mdio pode ser melhorado se a maioria dos processos terminar em um nico quantum de tempo Trs processos de 10 unidades de tempo cada um e um quantum de tempo de 1 unidade de tempo => turnaroundmdio = 29 Se o quantum de tempo for 10 => turnaroundmdio = 20 Multilevel Queue Fila de prontos dividida em filas distintas: primeiro plano (interativa) segundo plano (batch)
Cada fila possui seu prprio algoritmo de escalonamento primeiro plano RR segundo plano FCFS Escalonamento Multilevel Queue Multilevel Queue necessrio haver escalonamento entre as filas Escalonamento de prioridade fixa; (ou seja, serve a todos a partir do primeiro plano e depois do segundo plano). Possibilidade de estagnao. Fatia de tempo cada fila recebe uma certa parte do tempo de CPU, que pode ser escalonado entre seus processos; por exemplo, 80% para o primeiro plano no RR e 20% para o segundo plano no FCFS Multilevel Feedback Queue No algoritmo de escalonamento de fila multinvel, os processos recebem uma fila permanentemente na entrada do sistema Abordagem inflexvel, os processos no se movem de uma fila para outra Se um processo se move entre as vrias filas; o envelhecimento pode ser implementado desta forma Exemplo de Multilevel Feedback Queue Exemplo de Multilevel Feedback Queue Escalonamento Uma nova tarefa entra na fila Q 0 , que atendida com base no FCFS. Quando ganha a CPU, a tarefa recebe 8 milissegundos. Se no terminar nesse tempo, a tarefa movida para a fila Q 1 . Em Q 1 , a tarefa atendida novamente com base no FCFS e recebe 16 milissegundos adicionais. Se ainda no estiver completa, a tarefa apropriada e movida para a fila Q 2 . Multilevel Feedback Queue Escalonador da multilevel feedback queue definido pelos seguintes parmetros: nmero de filas algoritmos de escalonamento para cada fila mtodo usado para determinar quando elevar um processo mtodo usado para determinar quando rebaixar um processo mtodo usado para determinar em que fila um processo entrar quando esse processo precisar de atendimento