You are on page 1of 26

Silberschatz, Galvin and Gagne 2002 5.

1 Operating System Concepts


Captulo 5:
Escalonamento da CPU
Conceitos bsicos
Critrios de escalonamento
Algoritmos de escalonamento
Escalonamento multi-processador
Escalonamento em tempo real
SUMRIO:
Silberschatz, Galvin and Gagne 2002 5.2 Operating System Concepts
Conceitos bsicos
Objectivo do escalonamento do
processador (principal recurso):
Ideia base da multiprogramao:
maximizar a utilizao da CPU via
multiprogramao.
Quando um processo tem de esperar
(p.ex operao I/O), o sistema
operativo retira-lhe a CPU, dando-a a
outro processo.
Conceitos bsicos:
Ciclo burst CPU-I/O execuo
dum processo consiste dum ciclo de
execuo na CPU e espera I/O
Escalonador da CPU
Escalonamento preemptivo
Despachador
Silberschatz, Galvin and Gagne 2002 5.3 Operating System Concepts
A execuo dum processo consiste em
vrios ciclos CPU-I/0 tal que uma
intermitncia (burst) de execuo da
CPU alterna com uma intermitncia
(burst) de espera pela finalizao
duma operao I/O.
Os processos I/O-bound tm em geral um grande
nmero de CPU bursts de curta durao.
Os processos CPU-bound tm em geral um pequeno
nmero de CPU-bursts de longa durao.
O sucesso do escalonamento da
CPU depende da seguinte
observao sobre os processos:

Histograma de CPU bursts
Sequncia alternada de intermitncias de
CPU e I/O
Silberschatz, Galvin and Gagne 2002 5.4 Operating System Concepts
Escalonador da CPU
Sempre que a CPU fica livre, cabe ao sistema operativo seleccionar um
dos processos da ready queue a fim de o colocar em execuo.
A seleco efectuada pelo escalonador de curto prazo ou escalonador da
CPU.
O escalonamento da CPU pode ter lugar quando um processo:
1. Comuta do estado RUNNING para o estado WAITING.
2. Comuta do estado RUNNING para o estado READY.
3. Comuta do estado WAITING para o estado READY.
4. Termina.
Situaes
geradoras de
escalonamento
da CPU
Ready queue uma
abstraco ..
Pode ser fifo, fila de
prioridades, arvore, lista-
ligada simples etc.
Silberschatz, Galvin and Gagne 2002 5.5 Operating System Concepts
Escalonamento No-Preemptivo
As decises de escalonamento
da CPU tm lugar nas 4
seguintes circunstncias:

1. um processo comuta do estado
running para o estado waiting.
Interrupo I/O ou Sleep
Chamado ao sistema wait()
espera a terminao dum
processo filho.

2. um processo comuta do estado
running para o estado ready
Ocorrncia dum interrupo

3. um processo comuta do estado
waiting para o estado ready
Terminao de I/O
Recurso livre

4. Um processo termina
System call _exit()
O processo ocupa a CPU at ao seu trmino ou
at que passe ao estado waiting as 1 e 4
situaes.
Agora um novo processo da ready queue tem
que ser seleccionado para execuo.
O escalonamento dito ser no-preemptivo
MS Windows 3.1, MAC OS (antes de OSX),
SOs especializadas.
Os sistemas operativos no-preemptivos no so
adequados para sistemas de tempo real, pois no
garantem a execuo em primeiro lugar dos
processos com prioridade mais alta.

Cooperative Multitasking : one poorly designed
program can consume all of the CPU time for itself
or cause the whole system to hang.
Silberschatz, Galvin and Gagne 2002 5.6 Operating System Concepts
Escalonamento Preemptivo
Preemptive multitasking involves the use of an
interrupt mechanism which suspends the currently
executing process and invokes a scheduler to
determine which process should execute next.
Preempo nas 2 e 3 situaes.
Necessite algum Hardare/Mecansimo especifico
(Hardware Timer)
Mas aqui h um custo a pagar. Considere que dois
processos partilham dados. Um dos processos est a
actualizar os dados quando ocorre a preempo do
segundo processo que passa a executar e a ler os
dados. Os dados assim podem ficar num estado
inconsistente.
Acesso sincronizado aos dados ..estudado mais tarde.
Algumas tarefas (do OS) no so interuptaveis p.ex
o proprio interrupt handler routine
As decises de escalonamento
da CPU tm lugar nas 4
seguintes circunstncias:

1. um processo comuta do estado
running para o estado waiting.
Interrupo I/O ou Sleep
Chamado ao sistema wait()
espera a terminao dum
processo filho.

2. um processo comuta do estado
running para o estado ready
Ocorrncia dum interrupo

3. um processo comuta do estado
waiting para o estado ready
Terminao de I/O
Recurso livre

4. Um processo termina
System call _exit()
Silberschatz, Galvin and Gagne 2002 5.7 Operating System Concepts
Despachador
o mdulo que despacha o controlo da CPU para o
processo seleccionado pelo escalonador de curto-prazo.

Executa as seguintes operaes :
comutao de contexto
comutao para o modo de utilizador
salto para o endereo certo de memria do programa por forma a
(re-)execut-lo

O despacho deve ser to rpido quanto possvel.

O tempo que decorre entre a paragem de execuo dum
processo e o incio doutro designado por latncia de
despacho.
Silberschatz, Galvin and Gagne 2002 5.8 Operating System Concepts
Critrios de Escalonamento
H vrios critrios para comparar algoritmos de escalonamento:

Utilizao da CPU: maximizar a utilizao da CPU. Deve variar
entre 40% e 90% em sistemas de tempo real. Um critrio de
maximizao.
Dbito (throughput): maximizar o n de processos concludos por
unidade de tempo. Critrio de maximizao.
Tempo de circulao (turnaround): tempo que decorre entre o
instante em que um processo submetido e o instante em que
concludo. Critrio de minimizao.
Tempo de espera: a soma dos perodos dispendidos na ready
queue. Critrio de minimizao.
Tempo de resposta: minimizar o tempo que decorre entre a
submisso dum pedido e o incio da resposta. Este critrio
adequado para sistemas interactivos. Critrio de minimizao.
geralmente usamos uma mdia
Silberschatz, Galvin and Gagne 2002 5.9 Operating System Concepts
Algoritmos de Escalonamento
First-Come, First-Served (FCFS
Shortest-Job-First (SJT)
Prioridade
Round-Robin (R-R)
Multi-fila
Multi-fila com transbordo
Metricos :
TME Tempo Mdio de Espera
TMT Tempo Mdio de Turnaround
Silberschatz, Galvin and Gagne 2002 5.10 Operating System Concepts
First-Come, First-Served
(FCFS)
Processo Burst Time
P
1
24
P
2
3
P
3
3


Suponha que os processos chegam pela ordem: P
1
, P
2
, P
3
A Carta Gantt de escalonamento :






Tempos de espera: P
1
= 0; P
2
= 24; P
3
= 27
TME: (0 + 24 + 27)/3 = 17
P
1
P
2
P
3

24 27 30 0
O algoritmo mais simples: processos so seleccionados ou servidos pela ordem
de chegada ready queue.
Assim que a CPU libertada, o processo cabea da ready queue
seleccionado e despachado para a CPU.
Silberschatz, Galvin and Gagne 2002 5.11 Operating System Concepts
FCFS (Cont.)
Suponha que os processos chegam pela ordem: P
2
, P
3
, P
1
.
A Carta de Gantt de escalonamento :




Tempos de espera P
1
= 6;

P
2
= 0
;
P
3
= 3

TME: (6 + 0 + 3)/3 = 3
Muito melhor que o caso anterior.
Convoy effect: processo curto antes de processo longo
P
1
P
3
P
2

6 3 30 0
Silberschatz, Galvin and Gagne 2002 5.12 Operating System Concepts
Concluses FCFS
O tempo mdio de espera , por vezes, bastante elevado,
mas isto depende muito da durao e frequncia dos bursts.
O algoritmo FCFS no preemptivo. No , pois, adequado
para sistemas interactivos (time sharing) ou de tempo real.
Batch Systems Pode ser Adequado
Silberschatz, Galvin and Gagne 2002 5.13 Operating System Concepts
Shortest-Job-First
(SJF)
Associa-se a cada processo (ao PCB) o tempo do seu prximo CPU burst.
Usa-se estes tempos para escalonar/seleccionar o processo com o CPU
burst mais pequeno.
Quando dois processo tm o mesmo CPU burst, o desempate faz-se por
FCFS.
Dois esquemas:
no-preemptivo uma vez a CPU atribuda a um processo, este no pode ser
preempcionado at completar o seu CPU burst.
preemptivo se um novo processo chega ready queue com um CPU burst
menor que o tempo restante do processo em execuo, ento h preempo.
Este esquema conhecido por Shortest-Remaining-Time-First (SRTF).
SJF ptimo uma vez que minimiza o tempo mdio de espera dum dado
conjunto de processos.
O problema est em determinar qual o valor do prximo CPU burst dum
processo.
Silberschatz, Galvin and Gagne 2002 5.14 Operating System Concepts
Exemplos
Processo Arrival Time Burst Time
P
1
0.0 7
P
2
2.0 4
P
3
4.0 1
P
4
5.0 4

SJF (no-preemptivo)





Tempo mdio de espera
(0 + 6 + 3 + 7)/4 = 4

Processo Arrival Time Burst Time
P
1
0.0 7
P
2
2.0 4
P
3
4.0 1
P
4
5.0 4

SJF (preemptivo)





Tempo mdio de espera
(9 + 1 + 0 +2)/4 = 3
P
1
P
3
P
2

7 3 16 0
P
4

8 12
P
1
P
3
P
2

4 2
11 0
P
4

5 7
P
2
P
1

16
SJF no-preemptivo SJF preemptivo
Silberschatz, Galvin and Gagne 2002 5.15 Operating System Concepts
Determinio da durao do
Proximo CPU Burst

Apenas uma estimativa possvel

Utilize-se uma mdia mvel baseado na durao de CPU
bursts anteriores


: Def ine 4.
1 0 , 3.
burst CPU proximo o para estimado valor 2.
burst CPU n do verdadeira urao d t 1.
n
th
n
s s
=
=
+
o o
t
1
( ) . t
n n n
t o o t + =
=
1
1

Valor tpico de alpha=0.5.
Os bancos e Euribor
Silberschatz, Galvin and Gagne 2002 5.16 Operating System Concepts
Previso da durao do proximo CPU Burst
Silberschatz, Galvin and Gagne 2002 5.17 Operating System Concepts
Escalonamento por prioridades
Processo Prioridade Burst Time
P
1
3 10
P
2
1 1
P
3
3 2
P
4
4 1
P
5
2 5

no-preemptivo





Tempo mdio de espera = 8.2

P
1

P
3
P
5

1
0
P
4

6
P
2

16 18 19
O algoritmo SJF um caso particular do
algoritmo de escalanomento por
prioridades, em que a prioridade o
prximo tempo prevsivel de CPU burst.
Uma prioridade atribuda a cada
processo, e o escalonador atribui a CPU
ao processo com maior prioridade
(menor inteiro).
preemptivo
no-preemptivo
Se dois processos tm a mesma
prioridade, o desempate feito
recorrendo ao FCFS
Problema inanio (starvation)
processos de baixa prioridade arriscam-
se a nunca executar.
Soluo envelhecimento (aging)
medida que o tempo passa, a prioridade
dum processo aumenta.
Silberschatz, Galvin and Gagne 2002 5.18 Operating System Concepts
Critrios de prioridade
A prioridade atribuda a um
processo pode ser definida em
funo dos seguintes factores:
Factores internos:
limites de tempo
requisitos de memria
n de ficheiros abertos
durao mdia dos bursts de I/O
durao mdia dos bursts de CPU
Factores externos:
importncia do processo
preo pago pela utilizao
proprietrio do processo
Silberschatz, Galvin and Gagne 2002 5.19 Operating System Concepts
Round Robin (RR)
Este algoritmo foi concebido para sistemas
de time-sharing.
semelhante ao FCFS, mas preemptivo.
Cada processo obtm uma pequena
unidade de tempo na CPU (time quantum
ou time slice), vulgarmente 10-100
milisegundos. Aps decorrer este tempo,
o processo preempcionado e adicionado
cauda da fila READY. A fila READY
tratada como uma fila circular.
Se h n processos na fila READY e o time
quantum q, ento cada processo obtm
1/n do tempo da CPU em fatias de q
unidades de tempo duma vez. Nenhum
processo espera mais do que (n-1)q
unidades de tempo.
Desempenho
q grande FIFO
q pequeno q tem de ser grande
relativamente comutao de contexto;
caso contrrio, a sobrecarga muito
elevada.
Process Burst Time
P
1
53
P
2
17
P
3
68
P
4
24
A Carta Gantt :






Tipicamente, turnaround mdio mais
elevado do que SJF, mas tem melhor
resposta.
P
1
P
2
P
3
P
4
P
1
P
3
P
4
P
1
P
3
P
3
0 20 37 57 77 97 117 121 134 154 162
time quantum = 20 ms
Silberschatz, Galvin and Gagne 2002 5.20 Operating System Concepts
Comparao de tempos de
processamento
time quantum versus tempo
de comutao de contexto
tempo de turnaround varia
com o time quantum
Silberschatz, Galvin and Gagne 2002 5.21 Operating System Concepts
Algorithm Evaluation
Modelao e Simulao
Define um workload e depois simule o desempenho de cada
algoritmo para este workload. Workloads podem ser :
Determinstica Define um workload baseando por exemplo
em dados reais ou inventados
Aleatrio utilizando processos aleatrios e probabilsticos
tempo de chegada poisson
burst time .. exponencial

Analise Matemtica
Queueing models M/M/1 etc.
Silberschatz, Galvin and Gagne 2002 5.22 Operating System Concepts
Evaluation of CPU Schedulers by Simulation
Silberschatz, Galvin and Gagne 2002 5.23 Operating System Concepts
Fila multi-nvel
Este tipo de escalonamento usado
quando fcil classificar os processos
em classes distintas (processos
interactivos, processos batch, etc.).
A fila READY particionada em vrias
filas, uma por cada classe de processos:
foreground (interactive)
background (batch)
Cada fila tem o seu prprio algoritmo
de escalonamento:
foreground RR
background FCFS
O escalonamento entre as filas tem de
ser feito.
Escalonamento de prioridades fixas; (i.e.,
serve todas as filas, desde as foreground
at s background). Problema:inanio.
Time slice cada fila obtm uma certa
quantidade de tempo da CPU que pode
ser escalonado pelos seus processos; por
exemplo., 80% para foreground em
RR20% para background em FCFS
escalonamento de fila multi-nvel
Silberschatz, Galvin and Gagne 2002 5.24 Operating System Concepts
Fila multi-nvel com transbordo
Um processo pode mover-se
entre vrias filas; a tcnica
de envelhecimento pode ser
implementada desta forma.
Outras caractersticas:
prioridades por fila
preempo
generalidade
configurabilidade
Trs filas:
Q
0
time quantum de 8 milisegundos
Q
1
time quantum de 16 milisegundos
Q
2
FCFS
Escalonamento
Um novo processo entra na fila Q
0
, a qual segue uma
poltica FCFS. Quando ganha a CPU, o processo recebe
8 ms. Se no termina em 8 ms, o processo
transladado para a fila Q
1
.
Em Q
1
, o processo servido novamente por uma poltica
de escalonamento FCFS e recebe 16 ms adicionais. Se
mesmo assim no termina, o processo preempcionado
e transladado para a fila Q
2
.
exemplo
Silberschatz, Galvin and Gagne 2002 5.25 Operating System Concepts
Escalonamento Multi-Processor
No existe uma soluo ptima de
escalonamento mesmo para sistemas
uniprocessador.
O problema do escalonamento torna-
se ainda mais complexo para sistemas
multiprocessador.
Processadores homogneos dentro do
sistema multi-processador.
Partilha de carga
Multi-processamento assimtrico s
um processador acede s estruturas de
dados do sistema, aliviando a
necessidade de partilha de dados.
usada uma nica fila ready, e no
uma fila por processador, para evitar
que haja algum processador inactivo
enquanto outros tm processos na
suas filas ready espera.
H duas polticas de escalonamento
multiprocessador:
Processadores auto-escalonveis.
Neste caso, cada processador
responsvel pela seleco dum processo
existente na fila ready partilhada.
Processador mestre - processador
escravo. H um processador (mestre)
que desempenha o papel de escalonador
dos restantes (escravos)
Cf a Caixa-Geral e McDonalds !!
Silberschatz, Galvin and Gagne 2002 5.26 Operating System Concepts
Escalonamento em tempo-real
Escalonamento:
Escalonamento por prioridades. Processos de tempo
real tm prioridade mxima.
Manuteno da prioridade. Ao contrrio doutros
processos, um processo de tempo real mantm a sua
prioridade.
Latncia de despacho. Deve ser baixa o mais possvel.
Para isso, h sistemas operativos que admitem a
preempo das chamadas ao sistema de longa durao.
Dois tipos de sistemas
operativos de tempo real:
sistemas estritos de
tempo real (hard real-time
systems). So necessrios
para garantir a concluso
duma tarefa crtica dentro
duma quantidade de tempo
pr-definida.
sistemas latos de tempo
real (soft real-time systems).
So menos restritivos. Mas, os
processos crticos tm sempre
a mxima prioridade.
Fim de Captulo

You might also like