• Nenhum resultado encontrado

Escalonamento Round-Robin

No documento [PT] SILBERSCHATZ - Sistemas Operacionais (páginas 124-126)

O algoritmo de escalonamento Round-Robin (RR) (revezamento circular) foi projetado especialmente para sistemas de tempo compartilhado. E semelhante ao escalonamento FCFS, mas a preempção é acrescentada para alternar entre processos. Uma pequena unidade de tempo, chamada quantum de tempo, ou fatia de tem- po, é definida. Um quantum geralmente é de 10 a 100 milissegundos. A fila de processos prontos é tratada como uma fila circular. O escalonador de CPU percorre a fila de processos prontos, alocando a CPU a cada processo por um intervalo de tempo de até 1 quantum de tempo.

Para implementar o escalonamento Round-Robin, a fila de processos prontos é mantida como uma fila FIFO dos processos. Novos processos são adicionados ao final da fila. O escalonador de CPU seleciona o primeiro processo da fila, define um temporizador para interromper depois de 1 quantum e submete o pro- cesso.

104 • Sútemas Operacionais

Neste momento, duas opções podem ocorrer. O processo poderá ter um surto de CPU de menos de 1 quantum. Nesse caso, o próprio processo liberará a CPU voluntariamente. O escalonador procederá então para o próximo processo na fila de processos prontos. Caso contrário, se o surto de CPU do processo em exe- cução no momento for maior do que 1 quantum de tempo, o temporizador se esgotará e causará uma inter- rupção para o sistema operacional. Uma troca de contexto será executada, e o processo será colocado no fi- nal da fila de processos prontos. O escalonador de CPU selecionará então o próximo processo na fila.

O tempo de espera médio na política RR, no entanto, é geralmente longo. Considere o seguinte conjunto de processos que chegam no instante 0, com duração de surto de CPU expressa em milissegundos:

Processo Duração de surto

P, 24

P2 3

f3 3

Se usarmos um quantum de 4 milissegundos, o processo Pl obtém os 4 primeiros milissegundos. Como mais 20 milissegundos são necessários, ele será interrompido depois do primeiro quantum de tempo, c a CPU será passada ao próximo processo na fila, o processo P>. Como o processo P, não precisa de 4 milissegundos, ele encerra antes que o seu quantum expire. A CPU é então passada para o próximo processo, o processo Py Assim que cada processo tiver recebido 1 quantum, a CPU é retornada ao processo P1 para um quantum adi- cional. O escalonamento Round-Robin resultante é:

p, Pz p. p, p, p , P l p,

0 4 7 10 14 18 22 26 30 O tempo de espera médio é 17/3 = 5,66 milissegundos.

No algoritmo de escalonamento Round-Robin (RR), nenhum processo recebe CPU por mais do que 1 quantum de tempo consecutivo (a menos que seja o único processo pronto). Se o surto de CPU de um proces- so exceder 1 quantum, esse processo será interrompido e colocado de volta na fila de processos prontos. O al- goritmo de Round-Robin (RR) é preemptivo.

\ Se houver n processos na fila de processos prontos e o quantum for q, então cada processo obterá Mn do

tempo de CPU cm lotes de no máximo 4 unidades de tempo. Cada processo deve esperar no máximo ( « - 1) x q unidades de tempo até seu próximo quanrum. Por exemplo, se houver cinco processos com um quantum de tempo de 20 milissegundos, cada processo obterá até 20 milissegundos a cada 100 milissegundos.

O desempenho do algoritmo RR depende muito do tamanho do quantum de tempo. Por um lado, se o quantum for extremamente grande, a regra de RR será a mesma que a regra FCFS. Sc o quantum de tempo for extremamente pequeno (por exemplo, 1 microssegundo), a abordagem RR será chamada de comparti- lhamento de processador c, para os usuários, é como se em teoria cada um dos n processos tivesse seu próprio processador executando a l/« da velocidade do processador real. A abordagem foi usada no hardware da Control Data Corporation (CDC) para implementar 10 processadores periféricos com apenas um conjunto de hardware e 10 conjuntos de registradores. O hardware executa uma instrução para um conjunto de regis- tradores c passa para o próximo. Esse ciclo continua, resultando em 10 processadores lentos cm vez de um rápido. (Na verdade, como o processador era muito mais rápido do que a memória c cada instrução referen- ciava a memória, os processadores não eram muito mais lentos do que 10 processadores reais teriam sido.)

No software, no entanto, também precisamos considerar o efeito da troca de contexto no desempenho do escalonamento RR. Vamos supor que temos apenas um processo com 10 unidades de tempo. Se o quan- tum for 12 unidades de tempo, o processo terminará em menos de 1 quanrum, sem custo adicional. Sc o quantum for 6 unidades de tempo, no entanto, o processo exigirá 2 quanta, resultando em uma troca de con- texto. Se o quantum for 1 unidade de tempo, nove trocas de contexto ocorrerão, tornando a execução do processo mais lenta (Figura 6.4).

escalonamento de CPU • 105 tempo de processamento = 10 0 10 0 6 10 qiiíintum 12 trocas de contexto 0 0 1 2 3 4 5 6 7 8 9 1 0

Figura 6.4 A forma como um quantum de tempo menor aumenta as trocas de contexto.

Assim, o quantum deve ser grande com relação ao tempo de troca de contexto. Se o tempo de troca for de cerca de 10% do quantum, então cerca de 10% do tempo da CPU será gasto em troca de contexto.

O tempo de retorno também depende do tamanho do quantum. Como podemos ver na Figura 6.5, o tempo de retorno médio de um conjunto de processos não melhora necessariamente à medida que o quan- tum aumenta. Em gerai, o tempo de retorno médio pode ser melhorado se a maioria dos processos terminar seu próximo surto de CPU em um único quantum. Por exemplo, dados três processos com 10 unidades de tempo cada e um quantum de 1 unidade de tempo, o tempo de retorno médio é 29. Se o quantum for 10, no entanto, o tempo de retorno cairá para 20. Se o tempo de troca de contexto for acrescentado, o tempo médio aumentará para um quantum menor, já que um número maior de trocas de contexto será necessário.

_

H

i 1 Processo Pi Pt P4 Tempo 6 3 1 7 12.5 12,0 o " . 5 t 11,0 o E a | 10.0 S 9.5 9.0 1 2 3 4 5 6 7 Quantum de tempo

Figura 6.5 A forma como o tempo de retorno varia com a duração do quantum.

Por outro lado, se o quantum for muito grande, o Round-Robin degenera para a política FCFS. Uma re- gra geral é que 80% dos surtos de CPU devem ser menores do que o quantum de tempo.

No documento [PT] SILBERSCHATZ - Sistemas Operacionais (páginas 124-126)

Outline

Documentos relacionados