Aula08 So
Escalonamento preemptivo
Prof. Diovani Milhorim
Escalonamento Preemptivo
Lembrando…
O Sis. Op. escalona os processos na CPU de forma a otimizar seu uso.
Várias métricas possíveis.
O despachante efetua a troca de contexto entre os processos.
Copia os registradores, ponteiros para o espaço de endereçamento, descritores de arquivos…
O escalonador pode ser preemptivo ou não.
Exemplos de não-preemptivos: FIFO, SJF, Prioridades.
Os diagramas de Gantt são usados para visualizar um escalonamento.
Escalonamento Preemptivo
Algoritmos de escalonamento pre-emptivos
Round-Robin;
Por prioridades;
Múltiplas filas.
Estudos de caso de escalonadores:
Windows
Linux
Minix
Escalonamento Preemptivo
O escalonamento Round Robin
O escalonador define um quantum (fatia de tempo) para cada processo.
Após se encerrar a fatia, o processo escalonado deve ceder o lugar na
CPU a um outro.
Também se perde a CPU se terminar antes do fim do quantum, ou faz um pedido de E/S.
Mantém-se uma lista circular de processos prontos.
Deve-se usar um mecanismo de interrupção regular, ocorrendo a cada fatia de tempo.
Usa o clock.
Escalonamento Preemptivo
Diagrama de Gant – Escalonamento Round Robin
Ex. Quantum de duas unidades de tempo.
Escalonamento Preemptivo
Round-Robin: observações
Deve-se ter um algoritmo de desempate entre os processos prontos quando há uma interrupção…
FIFO, SJF, prioridades…
Se o quantum aumenta muito, se obtém novamente um FIFO.
Espera média:
A: 7
B: 6
C: 5
(7+6+5)/3 = 6.
Escalonamento Preemptivo
Round-Robin: limitações e problemas
O grande interesse do R.R. é sua “equidade”
Todos os processos acabam tendo uma chance regular de executar.
Como definir o quantum?
Muito grande: = FIFO!
Muito pequeno: só se faz troca de contexto…
Processos I/O bound são prejudicados!
Esperam tanto como os outros, mas não chegam a usar seu quantum todo!
Solução: juntar Round Robin e prioridades com preempção