Sistemas operacionais
Escalonamento de Processos
Leandro Coelho
.
2
Escalonador em Windows
3
Sistemas Operacionais
Escalonamento no Windows 2000
Algoritmo de prioridades escalonamento
preemptivo
por
São definidos 32 níveis de prioridade divididos por 6 classes: REALTIME_PRIORITY_CLASS (24)
HIGH_PRIORITY_CLASS (13)
ABOVE_NORMAL_PRIORITY_CLASS (10)
NORMAL_PRIORITY_CLASS (8)
BELOW_NORMAL_PRIORITY_CLASS (6)
IDLE_PRIORITY_CLASS (4)
4
Sistemas Operacionais
Escalonamento no Windows 2000
Algoritmo de prioridades escalonamento
preemptivo
por
Os processos com prioridades de 1 a 15 podem ter a sua prioridade alterada dinamicamente
Os processos com prioridades de 16 a 32 têm prioridade fixa
5
Sistemas Operacionais
Escalonamento no Windows 2000
O escalonador gerência uma fila para cada nível de prioridade e escolhe para entrar em execução o processo com prioridade mais alta (da fila)
Um processo executa até:
Um outro processo de prioridade mais alta entrar para a fila de “ready” (pronto)
Um processo terminar
Um processo terminar o seu “time quantum”
Um processo entrar no estado waiting
6
Sistemas Operacionais
Escalonamento no Windows 2000
Para as classes de prioridade variável escalonador modifica as prioridades quando:
o
O Time-quantum do processo expira, sendo a prioridade diminuída de 1
Um processo passa de background para foreground (só para a classe NORMAL_PRIORITY_CLASS)
Uma janela recebe um evento, por ex. um timer ou mensagens do mouse
O processo passa do estado de waiting para ready, a prioridade é aumentada
7
Sistemas Operacionais
Escalonamento no Windows 2000
Para conseguir níveis de desempenho adequados em programas interactivos, o sistema usa uma regra de escalonamento especial nos processos da classe NORMAL_PRIORITY_CLASS:
Distingue entre nos processos em foreground (quando a janela correspondente está seleccionada) e nos processos em