Você está na página 1de 5

Na aula anterior

Algoritmos de Escalonamento
Marcelo Johann

Threads Sincronizao Semforos

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 10 : Slide 1

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 10 : Slide 2

Plano da aula de Hoje


1. 2. 3. 4. 5. 6. 7. 8. FIFO SJF Prioridade Round-Robin Mltiplas Filas Garantido Lotrico Tempo-Real
Aula 10 : Slide 3

Escalonamento

1. 2. 3.

Definio e critrios Quando ocorre?


Ao acontecer a transio executando para bloqueado
(pergunta: quando isso acontece?)

Ao acontecer a transio executando para pronto


(pergunta: quando isso acontece?)

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

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Vrios nveis de escalonamento


Escalonador de curto prazo
Decide da alocao da CPU Tempo de resposta: faixa da ms

Escalonador vs. dispachante


Distingue-se duas partes:
O escalonador responsvel pela escolha do processo eleito para usar a CPU. O dispachante responsvel pelo lado tcnico de
Salvar o processo que estava usando a CPU; Executar o processo eleito na CPU. Isso se chama efetuar a troca de contexto. Processo A Salvar Restaurar Contexto Contexto A B Processo B
Aula 10 : Slide 5 INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 6

Escalonador de mdio prazo


Decide do gerenciamento de memria
Swap

Tempo de resposta: faixa de 100 ms

Escalonador de longo prazo


Gerencia a criao dos processos Escalona os acessos ao disco
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Salvar Restaurar Contexto Contexto B A

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.

Alguns algoritmos no-preemptivos


FIFO (First in, First out)
Primeiro chegado, primeiro atendido; O mais simples;

SJF (Shortest Job First)


Necessita informaes a respeito dos processos e de sua durao! Extremamente eficiente.

Preempo: ato de interromper a execuo de um processo para executar um outro.


Sis. Op. modernos (Windows 95+, Linux) Necessita sincronizao! Casos 3 e 4 implicam, potencialmente, em pre-empo.
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 7

Prioridades
Generalizao do SJF
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 8

Algoritmo First in First out

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

Outro parmetro: inteligente escalonar primeiro os processos I/O bound!


INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 10

Algoritmo Shortest Job First


Existem sistemas onde se tem informao a respeito dos processos (jobs);
Sistemas de batches no-interativos

SJF em nosso exemplo


Processo A B C Hora Chegada 0 0 0 Durao 24 3 4

Em geral, quer-se minimizar o turnaround (tempo de espera dos clientes);


Processos

Seja ti o tempo de uso da CPU do processo i (no momento da tomada de deciso!)


O dono de i espera W i = j=1,,i t j sec. Mostra-se por induo que W i mnimo quando os tj esto em ordem crescente.
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 11

Diagrama de GANTT A C Durao


Aula 10 : Slide 12

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

SJF: problema e paliativo


S tem um probleminha preciso prever o futuro tempo de execuo do processo! Pode-se tentar estimar o tempo ti baseando-se sobre o passado.
Execuo passada de um job; Analisando os surtos de CPU no histrico do processo.

Escalonamento por prioridades


No caso do SJF, usou-se o critrio durao para priorizar os processos. Verso mais geral:

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

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

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

(envelhecimento/aging) Inverso de prioridade


Processo que aguarda tem mais prioridade do que o que libera

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

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Escalonamento Round Robin


O escalonador define um quantum (fatia de tempo) para cada processo.

Algoritmo R. R. Diagrama de Gantt


Quantum de 2 unidades de tempo. Exemplo:
Processo A B Hora Chegada 0 2 1 Durao 24 3 4

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

Diagrama de GANTT A C A C A Durao


Aula 10 : Slide 18

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Round-Robin: observaes
Deve-se ter um algoritmo de desempate entre os processos prontos quando h uma interrupo
FIFO, SJF, prioridades

Round-Robin: limitaes 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

Se o quantum aumenta muito, se obtm novamente um FIFO. Espera mdia:


A: 7 B: 6 C: 5 (7+6+5)/3 = 6. (comparar com 4 (SJF) e 17 (FIFO))

Processos I/O bound so prejudicados!


Esperam tanto como os outros, mas no chegam a usar seu quantum todo!

Soluo: juntar Round Robin e prioridades com preempo

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 10 : Slide 19

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 10 : Slide 20

Mltiplas Filas: Prioridade preemptiva


Define-se prioridades para os processos.

Definio das prioridades


Esttica: a prioridade dada na criao do processo
Pelo Sis. Op., pelo usurio Problema: h risco de postergao indefinida (starvao) para um processo com baixa prioridade.

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.

Dinmica: a prioridade evolui durante o ciclo de vida do processo.


Comea com um valor esttico Evolui depois:
Aumenta a medida que o processo usa a CPU; Aumenta proporcionalmente frao do quantum que no usou. Assim, os processos I/O bound voltam na fila de espera com alta prioridade!
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 22

Neste caso, obtm-se uma lista por nvel de prioridades.


Quando uma fila est vazia, considera-se a lista de prioridade inferior. Mltiplas filas, com realimentao. Pode ter um algoritmo distinto de desempate em cada fila.

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

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

Escalonamento para Tempo Real


Utiliizados em Sistemas Operacionais de Tempo Real Hard Real Time Soft Real Time Processos curtos, previsveis, tempo conhecido Eventos peridicos e aperidicos

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