Académique Documents
Professionnel Documents
Culture Documents
Algoritmos de Escalonamento
Marcelo Johann
Aula 10 : Slide 1
Aula 10 : Slide 2
Escalonamento
1. 2. 3.
Ao encerrar-se um processo.
1-2-3: o processo para de executar, e isso dispara o escalonador. 4. Ao acontecer a transio bloqueado para pronto.
Pode ter sido liberado um processo importante.
Aula 10 : Slide 4 INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2
Preemptar ou no preemptar?
No-preempo: quando um processo executa, ele no pode ser interrompido por um fator externo.
Deixa a CPU ou por vontade prpria (sleep/yield), ou porque terminou. Windows 3.1, Apple Mac. OS antigo (<8) Os casos 1-2-3 tinham a ver com no-preempo.
Prioridades
Generalizao do SJF
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 8
O processo pronto h mais tempo passa a usar a CPU. Processo Hora Durao Exemplo:
Chegada 0 2 1 A B 24 3 4
FIFO Limitaes
A durao total no depende da ordem de escalonamento! Espera por processo:
A espera 0 sec. B espera 22 sec. C espera 23 sec.
Espera mdia: (0+22+23)/3 = 15 sec. Que tal com a ordem de chegada C-B-A?
C espera 0 sec. B espera 2 sec. A espera 6 sec.
Processos
Diagrama de GANTT A C
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2
Espera mdia: (0+2+6)/3 = 2,66 sec! FIFO no nada igualitrio, pelo contrrio muito ditatorial. B Durao
Aula 10 : Slide 9
Decide-se uma prioridade por processo; Processos com mesma prioridade podem ser desempatados atravs do FIFO (por exemplo).
Qual estimao?
ti+1 = ti : a histria se repete constantemente Mais inteligente: ponderar o histrico global W i-1 = j=1,,i-1 t j com a ltima medio tj : ti+1 = ti + (1- ) W i-1 Fala-se de mdia exponencial.
Prioridades podem ser atribudas por ordem crescente (0 a mais baixa) ou decrescente (0 a mais alta). A prioridade pode ser determinada:
Pelo Sis. Op. (a partir do histrico, de seus I/O,); Pelo usurio (a partir da avaliao da importncia do processo); Pelos dois juntos!
Aula 10 : Slide 13 INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 14
Prioridades - limitaes
Starvation (postergao indefinida)
Um processo de baixa prioridade pode sempre ser deixado para mais tarde. No significa que ele nunca ser executado, mas que ele PODE nunca ser executado. Soluo: aumentar a prioridade com o passar do tempo
Preempo ou no-preempo?
No fundo:
Prioridades so mais compatveis com preempo SJF pode ser usado com preempo!
Se surgir um job mais curto, ele interrompe o que est executando. Processo Hora Chegad a A 0 2 1 Durao
24 3 4
Diagrama de GANTT A C A C
B C
Sobretudo: faz sentido que um processo altamente prioritrio tenha que esperar at o processo em execuo deixe a CPU?
Ou seja, prioridade tem a ver com pre-empo!
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 15
Durao
Aula 10 : Slide 16
Aps se encerrar a fatia, o processo escalonado deve ceder o lugar na CPU a um outro.
Tambm se perde a CPU se terminar antes do fim do quantum, ou faz um pedido de E/S, !
Processos
Mantm-se uma lista circular de processos prontos. Deve-se usar um mecanismo de interrupo regular, ocorrendo a cada fatia de tempo.
Usa o clock.
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 17
Round-Robin: observaes
Deve-se ter um algoritmo de desempate entre os processos prontos quando h uma interrupo
FIFO, SJF, prioridades
Aula 10 : Slide 19
Aula 10 : Slide 20
Logo que surgir um processo com maior prioridade que o que est executando, ele preempta o mesmo que volta para a fila dos prontos. Caso haja mais de um processo com uma dada prioridade, se aplica um segundo algoritmo de desempate.
Tipicamente Round-Robin; Tambm pode ser um FIFO ou SJF.
Aula 10 : Slide 21
Escalonamento Garantido
Escalonamento Lotrico
(Waldspurger e Weihl, 1994)
Em um sistema com n processos, idealmente cada processo deve receber 1/n do tempo Nenhum dos algoritmos anteriores oferece qualquer garantia ou tenta se aproximar disso Seja h o tempo total gasto por um processo na CPU Seja t o tempo transcorrido desde sua criao Ento t/n o tempo que esse processo deveria ter usado Assim, f=h/(t/n) um fator que determina se o processo usou mais ou menos do que deveria. Se um processo tem f=0.5, usou metade do tempo justo. Pode-se escalonar os processos por menor valor de f .
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 23
O sistema distribui bilhetes aos processos, e faz um sorteio cada vez que precisa selecionar um processo para a CPU. Se cada processo tiver x% dos bilhetes, deve ganhar a CPU x% das vezes Em teoria, um processo pode nunca ser sorteado. Na prtica, as probabilidades garantem que isso no ocorre. um escalonamento responsivo (sem filas). Processos prioritrios podem ganhar mais bilhetes Processos cooperativos podem trocar bilhetes: Ex: clientes podem passar bilhetes para servidores
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 24
Mecanismo vs Poltica
Mecanismo o Algoritmo e/ou a Estrutura Poltica o conjunto de regras que usado para atribuir os nmeros ou classes
Sistemas Escalonvel: somatrios de tempos/periodos < 1 Algoritmo de Taxa Monotnico (RM, Liu e Layland, 1973) Prazo Final mais Cedo Primeiro (EDF) Folga Mnima Primeiro (MLF)
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 25 INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 26