Anda di halaman 1dari 38

8/1

Arquitetura de Sistemas
Operacionais


Francis Berenger Machado
Luiz Paulo Maia

Complementado por Sidney Lucena (Prof. UNIRIO)

Captulo 8
Gerncia do Processador

8/2
Escalonamento
Uma vez que h diversos processo na fila de pronto,
qual deles selecionar para o estado de execuo?
o Poltica de Escalonamento!
Base da gerncia do processador
Estado de
Espera
Estado de
Execuo
Estado de
Pronto
E
s
c
a
l
o
n
a
m
e
n
t
o
8/3
Escalonamento
Funes bsicas da poltica de escalonamento:
o Manter a CPU a mais ocupada possvel
o Balancear o uso da CPU entre os processos
o Privilegiar aplicaes crticas
o Maximizar throughput (vazo) do sistema
o Possibilitar tempos de resposta razoveis para
aplicaes interativas (SO de tempo real)
8/4
Escalonamento
Cada SO possui sua poltica de escalonamento
Escalonador (scheduler): rotina responsvel por
implementar a poltica de escalonamento
Dispatcher: rotina responsvel pela troca de contexto
depois que o escaclonador determina qual processo vai
para o estado de execuo
o Tempo gasto para troca de contexto chamado de
latncia do dispatcher
Comportamento o mesmo tanto para processos
quanto para threads no estado de pronto
8/5
Escalonamento
Critrios considerados na poltica de escalonamento:
o Utilizao da CPU
Desejvel maximizar
Abaixo de 30%, carga baixa; acima de 90%, prximo
da saturao (ateno!)
o Throughput
Nmero de processos / tempo, desejvel maximizar
o Tempo de CPU
Tempo do processo no estado de execuo durante
todo seu processamento
No afetado pela poltica de escalonamento
8/6
Escalonamento
Critrios considerados na poltica de escalonamento:
o Tempo de Espera
Tempo total do processo na fila de pronto durante
todo seu processamento, desejvel minimiz-lo
o Tempo de Turnaround
Tempo total do processo (incio a fim), desejvel
minimiz-lo
o Tempo de Resposta
Tempo entre uma requisio ao sistema e sua
resposta (p/ex., digitao e sada no monitor)
Muitas vezes limitado pelos dispositivos de E/S
8/7
Escalonamento
Escalonamento no preemptivo:
o Primeira forma de implementao
o Processo em execuo no pode ser interrompido
por evento externo e sai do estado de execuo
somente quando termina ou quando executa
instruo que o coloque no estado de espera
Escalonamento preemptivo:
o SO pode interromper um processo em execuo e
pass-lo para o estado de pronto, colocando outro
em execuo
o Permite implementar polticas de escalonamento e
priorizar processos
8/8
Escalonamento FIFO
UCP
Estado de
Criao
Estado de
Espera
Fila dos processos no estado de Pronto
Estado de
Trmino
First-In-First-Out
o Primeiro a entrar na fila de pronto selecionado
para execuo
8/9
Escalonamento FIFO
Processo A
Processo B
Processo C
10 14 17
Processo A
Processo B
Processo C
4 7 17
u.t.
u.t.
Processo
Tempo de
processador
(u.t.)
A
B
C
10
4
3
No ex., tempo mdio de espera diferente p/ cada caso
8/10
Escalonamento FIFO
Simples, porm apresenta deficincias:
o Impossibilidade de se prever incio da execuo
de determinado processo
o No se preocupa em otimizar critrios de
escalonamento (p/ex., tempo de turnaround de
processos que demandam menos CPU)
o Processos CPU-bound dominam o processador
frente a processos I/O-bound
o Escalonamento do tipo no-preemptivo,
atualmente adotado com algumas variaes
8/11
Escalonamento SJF
Processo A
Processo B
Processo C
3 7 17
u.t.
Shortest-Job-First
o Processo com menor tempo de processador a
executar selecionado para execuo
o Tende a reduzir o tempo mdio de espera (ver ex.)
8/12
Escalonamento SJF
Implementao se vale de estimativas para o tempo
de execuo restante para os processo na fila de
pronto
o Estimativas levam em considerao execues
anteriores de cada processo
o Tende a reduzir o tempo mdio de espera (ver ex.)
o Impossibilidade de estimar tempo de processador
para aplicaes interativas
Escalonamento considera apenas tempo de CPU na
prxima vez que o processo for escalonado, no mais
o tempo total at o trmino
Estimativa baseada em mdia exponencial dos
ltimos tempos de CPU
8/13
Escalonamento SJF
Escalonamento no-preemptivo
Em relao ao escalonamento FIFO, reduz o tempo
mdio de turnaround dos processos
Possibilidade de starvation para processos com
tempo de CPU muito longos ou CPU-bound
8/14
Escalonamento Cooperativo
Processo em execuo pode, voluntariamente, liberar
processador e retornar fila de pronto
Liberao do processador tarefa exclusiva do
processo em execuo
o Processo em execuo verifica periodicamente se
h processos na fila de pronto para saber quando
deve liberar a CPU
Demais processos no sero executados se processo
em execuo no liberar a CPU
8/15
Escalonamento circular
Preempo por tempo
UCP
Estado de
Criao
Estado de
Espera
Fila dos processos no estado de Pronto
Estado de
Trmino
Ou Round-Robin Scheduling
o Escalonamento semelhante ao FIFO, porm
preemptivo, onde dada uma fatia de tempo de
execuo para cada processo e, ao final deste
perodo, o processo vai para o final da fila de pronto
8/16
Escalonamento circular
Processo A
Processo B
Processo C
2 4 17
u.t.
6 8 10 11
Exemplo com fatia de tempo igual a 2 u.t.:
8/17
Escalonamento circular
Especialmente projetado para uso em sistemas de
tempo compartilhado
Fatia de tempo chamada de time-slice ou quantum
o Em geral, varia de 10 a 100 ms, dependendo do SO
o Se o quantum for muito grande, comportamento
ser semelhante poltica FIFO
o Se quantum for muito pequeno, desempenho ser
comprometido pelo nmero excessivo de
preempes e conseqentes atrasos para troca de
contexto
8/18
Escalonamento circular
Principal vantagem impedir o monoplio da CPU por
algum processo
o Tempo mximo de CPU igual ao time-slice definido
no sistema
Processos CPU-bound levam vantagem em relao a
processos I/O-bound
o Processos I/O-bound tm mais chance de entrar
no estado de espera antes de usarem todo o time-
slice
8/19
Escalonamento circular virtual
Preempo por tempo
UCP
Estado de
Criao
Fila dos processos no estado de Pronto
Estado de
Trmino
Estado de
Espera
Fila auxiliar
Refinamento do escalonamento circular, visa reduzir
desbalanceamento entre processos I/O e CPU-bound
o Processos que saem do estado de espera vo para
uma fila de pronto auxiliar e preferencial
8/20
Escalonamento circular virtual
Processos na fila de pronto sero escalonados
apenas se a fila preferencial (auxiliar) estiver vazia
Fatia de tempo para processos escalonados a partir
da fila preferencial calculada de forma diferenciada
o Time-slice do sistema menos tempo de CPU que o
processo usou da ltima vez que foi escalonado a
partir da fila de pronto
Ou seja, o tempo que faltava para o processo usar
todo o time-slice no momento que este foi para o
estado de espera
8/21
Escalonamento por
prioridades
Escalonamento preemptivo com base na prioridade
de execuo de cada processo
o Processos so organizados em filas separadas de
acordo com seu nvel de prioridade
o Processos so escalonados somente quando as
filas dos processos de maior prioridade estiverem
vazias
o Processos com mesmo nvel de prioridade so
escalonados segundo uma poltica FIFO
No existe conceito de time-slice, no h
preempo por tempo e sim por prioridade
8/22
Escalonamento por
prioridades
UCP
Estado de
Trmino
Filas dos processos no estado de Pronto
Prioridade P1
Prioridade P2
Prioridade Pn
Estado de
Criao
Estado de
Espera
Preempo por prioridade
8/23
Escalonamento por
prioridades
Processo A
Processo B
Processo C
3 13 17
u.t.
Processo
Tempo de
processador
(u.t.)
A
B
C
10
4
3
Prioridade
2
1
3
8/24
Escalonamento por
prioridades
Implementao atravs de interrupo de clock, a
intervalos de tempo determinados, para que o
escalonador verifique as filas de prioridade
Tambm pode ser implementado de forma no-
preemptiva:
o Processos com prioridade maior vo para o incio
da fila de pronto, sem causar preempo de
processos com menor prioridade
Cada SO implementa sua faixa de valores para as
prioridades de execuo
o P/ex., no OpenVMS, de 0 a 31; no AIX, de 127 a 0
8/25
Escalonamento por
prioridades
Prioridade de execuo do processo definida em seu
contexto de software, podendo ser esttica ou dinmica
o Prioridade dinmica pode ser ajustada ao longo da
existncia do processo segundo critrios do SO
Permite ajustar critrios de escalonamento em
funo do comportamento dos processos
Principal problema: possibilidade de Starvation!
o Processos com baixa prioridade podem nunca ser
escalonados
o Uma soluo o aging: aumentar gradativamente
prioridade de processos h muito na fila de pronto
8/26
Escalonamento por
prioridades
til em sistemas de tempo real
til para aplicaes de controle de processos
til para priorizar processos em sistemas de tempo
compartilhado
8/27
Escalonamento circular com
prioridades
Implementa conceito de fatia de tempo junto com
prioridade
o Processo em execuo pode sofrer preempo
por tempo ou por prioridade
o Permite melhor balanceamento no uso da CPU
o Amplamente usado em sistemas de tempo
compartilhado
o **No** evita o starvation
8/28
Escalonamento circular com
prioridades
UCP
Estado de
Trmino
Fila dos processos no estado de Pronto
Prioridade P1
Prioridade P2
Prioridade Pn
Estado de
Criao
Estado de
Espera
Preempo por tempo ou prioridade
8/29
Escalonamento por mltiplas
filas
Ou Multilevel Queue Scheduling
o Diversas filas de pronto, cada qual com sua
prioridade especfica
o Processos associam-se s filas de acordo com
suas caractersticas
Se d na criao do processo e assim permanece
at seu trmino
o Mecanismos de escalonamento distintos para
cada fila
o Prioridade no est associada ao processo, mas
sim fila
8/30
Escalonamento por mltiplas
filas
UCP
Fila de processos do sistema
Fila de processos interativos
Fila de processos batch
Maior
prioridade
Menor
prioridade
8/31
Escalonamento por mltiplas
filas com realimentao
Ou Multilevel Feedback Queues Scheduling
o Semelhante ao MQS, porm processos podem
trocar de fila durante seu processamento
Este ajuste denominado mecanismo adaptativo
o Filas implementam FIFO com fatia de tempo,
excetuando a de menor prioridade, que implementa
fila circular
Quanto maior a prioridade, menor o time-slice
o Preempo por fatia de tempo joga processo para
fila com prioridade imediatamente menor
o Na criao, processos vo para fila mais prioritria
8/32
Escalonamento por mltiplas
filas com realimentao
UCP
Fila 1 (FIFO Adaptado)
Preempo por tempo
Fila 2 (FIFO Adaptado)
Preempo por tempo
Fila 3 (FIFO Adaptado)
Preempo por tempo
Fila n (Circular)
Preempo por tempo
M
e
n
o
r
P
r
i
o
r
i
d
a
d
e
M
a
i
o
r
P
r
i
o
r
i
d
a
d
e
M
a
i
o
r

f
a
t
i
a
d
e

t
e
m
p
o
M
e
n
o
r

f
a
t
i
a
d
e

t
e
m
p
o
8/33
Escalonamento por mltiplas
filas com realimentao
Complexo, mas bom para processos I/O-bound
o Ficam mais tempo nas filas de maior prioridade j
que sofrem poucas preempes por tempo
Muito tempo no estado de espera, pouco tempo no
estado de execuo
Processos CPU-bound tendem a ser direcionados
para filas com menor prioridade
o Quanto maior o tempo de CPU, menor sua
prioridade
o Mudana de comportamento para I/O-bound
compromete o desempenho
8/34
Escalonamento em Sistemas
de Tempo Compartilhado
Sistemas de tempo compartilhado caracterizam-se
pelo uso de processamento interativo
o Usurios exigem tempos de resposta baixo para
as aplicaes
o Poltica de escalonamento deve considerar
compartilhamento eqitativo de recursos,
principalmente do tempo de CPU
o Maioria dos SOs de tempo compartilhado utiliza
escalonamento circular com prioridades dinmicas
8/35
Escalonamento FIFO
(exemplo)
Processo A
Processo B
u.t.
27 7
E
/
S

d
e

A
11
E
/
S

d
e

B
19
E
/
S

d
e

A
21
E
/
S

d
e

B
Processo
Tempo de
processador
(u.t.)
A
B
21
6
Caracterstica
CPU-bound
I/ O-bound
8/36
Escalonamento circular
(exemplo)
Processo
Tempo de
processador
(u.t.)
A
B
15
10
Caracterstica
CPU-bound
I/ O-bound
Processo A
Processo B
u.t.
P
r
e
e
m
p

o

p
o
r
t
e
m
p
o

d
e

A
5
E
/
S

d
e

B
9
E
/
S

d
e

A
11
E
/
S

d
e

B
13
P
r
e
e
m
p

o

p
o
r
t
e
m
p
o

d
e

A
18
E
/
S

d
e

B
20
E
/
S

d
e

A
23 25
E
/
S

d
e

B
27
U
C
P

l
i
v
r
e
8/37
Escalonamento circular com
prioridades (exemplo)
Processo A
Processo B
u.t.
E
/
S

d
e

B
4
P
r
e
e
m
p

o

p
o
r
p
r
i
o
r
i
d
a
d
e

d
e

A
6
E
/
S

d
e

B
8
P
r
e
e
m
p

o

p
o
r
p
r
i
o
r
i
d
a
d
e

d
e

A
12
E
/
S

d
e

B
14
E
/
S

d
e

A
15 17
P
r
e
e
m
p

o

p
o
r
p
r
i
o
r
i
d
a
d
e

d
e

A
18
E
/
S

d
e

B
20
P
r
e
e
m
p

o

p
o
r
p
r
i
o
r
i
d
a
d
e

d
e

A
24
E
/
S

d
e

B
27
U
C
P

l
i
v
r
e
Processo
Tempo de
processador
(u.t.)
A
B
12
13
Caracterstica
CPU-bound
I/ O-bound
Prioridade
Baixa
Alta
8/38
Escalonamento em Sistemas
de Tempo Real
Sistemas onde certas aplicaes exigem respostas
imediatas para a execuo de determinadas tarefas
o SO de tempo real deve garantir a execuo de
processos dentro de limites rgidos de tempo
Ex: controle de trfego areo, controle de
processos industriais
o Escalonamento deve considerar importncia
relativa de cada processo (tarefa)
o Escalonamento por prioridades estticas o mais
adequado
o No deve haver preempo por tempo!

Anda mungkin juga menyukai