ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 8/1 Arquitetura de Sistemas...
Transcript of ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 8/1 Arquitetura de Sistemas...
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/1
Arquitetura de Sistemas Arquitetura de Sistemas OperacionaisOperacionais
Francis Berenger MachadoFrancis Berenger MachadoLuiz Paulo MaiaLuiz Paulo Maia
Complementado por Sidney Lucena (Prof. UNIRIO)Complementado por Sidney Lucena (Prof. UNIRIO)
Capítulo 8Capítulo 8Gerência do ProcessadorGerência do Processador
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/2
Escalonamento Uma vez que há diversos processo na fila de pronto, qual deles selecionar para o estado de execução?
o Política de Escalonamento!
Base da gerência do processador
Esta do d eEsp era
Esta do d eExecu çã o
Esta do d ePro nto
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/3
Escalonamento Funções básicas da política de escalonamento:
o Manter a CPU a mais ocupada possível
o Balancear o uso da CPU entre os processos
o Privilegiar aplicações críticas
o Maximizar throughput (vazão) do sistema
o Possibilitar tempos de resposta razoáveis para aplicações interativas (SO de tempo real)
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/4
Escalonamento Cada SO possui sua política de escalonamento
Escalonador (scheduler): rotina responsável por implementar a política de escalonamento
Dispatcher: rotina responsável pela troca de contexto depois que o escaclonador determina qual processo vai para o estado de execução
o Tempo gasto para troca de contexto é chamado de latência do dispatcher
Comportamento é o mesmo tanto para processos quanto para threads no estado de pronto
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/5
Escalonamento Critérios considerados na política de escalonamento:
o Utilização da CPU
Desejável maximizar
Abaixo de 30%, carga baixa; acima de 90%, próximo da saturação (atenção!)
o Throughput
Número de processos / tempo, desejável maximizar
o Tempo de CPU
Tempo do processo no estado de execução durante todo seu processamento
Não é afetado pela política de escalonamento
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/6
Escalonamento Critérios considerados na política de escalonamento:
o Tempo de Espera
Tempo total do processo na fila de pronto durante todo seu processamento, desejável minimizá-lo
o Tempo de Turnaround
Tempo total do processo (início a fim), desejável minimizá-lo
o Tempo de Resposta
Tempo entre uma requisição ao sistema e sua resposta (p/ex., digitação e saída no monitor)
Muitas vezes limitado pelos dispositivos de E/S
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/7
Escalonamento Escalonamento não preemptivo:
o Primeira forma de implementação
o Processo em execução não pode ser interrompido por evento externo e sai do estado de execução somente quando termina ou quando executa instrução que o coloque no estado de espera
Escalonamento preemptivo:
o SO pode interromper um processo em execução e passá-lo para o estado de pronto, colocando outro em execução
o Permite implementar políticas de escalonamento e priorizar processos
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/8
Escalonamento FIFO
U C P
Estado d eC r iação
Estado d eEsp era
Fila do s pro cesso s n o estad o d e Pron to
Estado d eTérm ino
First-In-First-Out
o Primeiro a entrar na fila de pronto é selecionado para execução
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/9AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
Escalonamento FIFO
Processo A
Processo B
Processo C
10 14 17
Processo A
Processo B
Processo C
4 7 17 u .t.
u .t.
ProcessoTem p o d e
p rocessa do r(u .t.)
A
B
C
10
4
3
No ex., tempo médio de espera é diferente p/ cada caso
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/10
Escalonamento FIFO Simples, porém apresenta deficiências:
o Impossibilidade de se prever início da execução de determinado processo
o Não se preocupa em otimizar critérios 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 não-preemptivo, atualmente adotado com algumas variações
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/11AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
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 execução
o Tende a reduzir o tempo médio de espera (ver ex.)
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/12AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
Escalonamento SJF Implementação se vale de estimativas para o tempo de execução restante para os processo na fila de pronto
o Estimativas levam em consideração execuções anteriores de cada processo
o Tende a reduzir o tempo médio de espera (ver ex.)
o Impossibilidade de estimar tempo de processador para aplicações interativas
Escalonamento considera apenas tempo de CPU na próxima vez que o processo for escalonado, não mais o tempo total até o término
Estimativa baseada em média exponencial dos últimos tempos de CPU
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/13AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
Escalonamento SJF Escalonamento não-preemptivo
Em relação ao escalonamento FIFO, reduz o tempo médio de turnaround dos processos
Possibilidade de starvation para processos com tempo de CPU muito longos ou CPU-bound
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/14AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
Escalonamento Cooperativo Processo em execução pode, voluntariamente, liberar processador e retornar à fila de pronto
Liberação do processador é tarefa exclusiva do processo em execução
o Processo em execução verifica periodicamente se há processos na fila de pronto para saber quando deve liberar a CPU
Demais processos não serão executados se processo em execução não liberar a CPU
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/15
Escalonamento circular
Preem p ção po r tem p o
U C P
Estado d eC r ia çã o
Estado d eEsp era
Fila do s pro cesso s n o estad o d e Pron to
Estado d eTérm ino
Ou Round-Robin Scheduling
o Escalonamento semelhante ao FIFO, porém preemptivo, onde é dada uma fatia de tempo de execução para cada processo e, ao final deste período, o processo vai para o final da fila de pronto
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
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.:
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
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 à política FIFO
o Se quantum for muito pequeno, desempenho será comprometido pelo número excessivo de preempções e conseqüentes atrasos para troca de contexto
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/18
Escalonamento circular Principal vantagem é impedir o monopólio da CPU por algum processo
o Tempo máximo de CPU igual ao time-slice definido no sistema
Processos CPU-bound levam vantagem em relação a processos I/O-bound
o Processos I/O-bound têm mais chance de entrar no estado de espera antes de usarem todo o time-slice
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/19
Escalonamento circular virtual
Preem p ção po r tem p o
U C P
Estado d eC r iação
Fila do s pro cesso s n o estad o d e Pron to
Estado d eTérm ino
Estado d eEsp era
Fila au xi lia r
Refinamento do escalonamento circular, visa reduzir desbalanceamento entre processos I/O e CPU-bound
o Processos que saem do estado de espera vão para uma fila de pronto auxiliar e preferencial
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/20
Escalonamento circular virtual Processos na fila de pronto serão 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
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/21
Escalonamento por prioridades
Escalonamento preemptivo com base na prioridade de execução de cada processo
o Processos são organizados em filas separadas de acordo com seu nível de prioridade
o Processos são escalonados somente quando as filas dos processos de maior prioridade estiverem vazias
o Processos com mesmo nível de prioridade são escalonados segundo uma política FIFO
Não existe conceito de time-slice, não há preempção por tempo e sim por prioridade
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/22
Escalonamento por prioridades
U C P
Estado d eTérm ino
Fila s do s p ro cesso s n o estad o d e Pro n to
Pr io r id ad e P1
Pr io r id ad e P2
Pr io r id ad e Pn
Estado d eC r iação
Estado d eEsp era
Preem p ção po r p r io r id ad e
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/23
Escalonamento por prioridades
Processo A
Processo B
Processo C
3 13 17 u .t.
ProcessoTem p o d e
p rocessa do r(u .t.)
A
B
C
10
4
3
Pr io r id ad e
2
1
3
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/24
Escalonamento por prioridades
Implementação através de interrupção de clock, a intervalos de tempo determinados, para que o escalonador verifique as filas de prioridade
Também pode ser implementado de forma não-preemptiva:
o Processos com prioridade maior vão para o início da fila de pronto, sem causar preempção de processos com menor prioridade
Cada SO implementa sua faixa de valores para as prioridades de execução
o P/ex., no OpenVMS, de 0 a 31; no AIX, de 127 a 0
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/25
Escalonamento por prioridades
Prioridade de execução do processo definida em seu contexto de software, podendo ser estática ou dinâmica
o Prioridade dinâmica pode ser ajustada ao longo da existência do processo segundo critérios do SO
Permite ajustar critérios de escalonamento em função do comportamento dos processos
Principal problema: possibilidade de Starvation!
o Processos com baixa prioridade podem nunca ser escalonados
o Uma solução é o aging: aumentar gradativamente prioridade de processos há muito na fila de pronto
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/26
Escalonamento por prioridades
Útil em sistemas de tempo real
Útil para aplicações de controle de processos
Útil para priorizar processos em sistemas de tempo compartilhado
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/27
Escalonamento circular com prioridades
Implementa conceito de fatia de tempo junto com prioridade
o Processo em execução pode sofrer preempção por tempo ou por prioridade
o Permite melhor balanceamento no uso da CPU
o Amplamente usado em sistemas de tempo compartilhado
o **Não** evita o starvation
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/28
Escalonamento circular com prioridades
U C P
Estado d eTérm ino
Fila dos processos n o estad o d e Pron to
Pr io r id ad e P1
Pr io r id ad e P2
Pr io r id ad e Pn
Estado d eC r iação
Estado d eEsp era
Preem p ção po r tem p o o u pr io rida de
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/29
Escalonamento por múltiplas filas
Ou Multilevel Queue Scheduling
o Diversas filas de pronto, cada qual com sua prioridade específica
o Processos associam-se às filas de acordo com suas características
Se dá na criação do processo e assim permanece até seu término
o Mecanismos de escalonamento distintos para cada fila
o Prioridade não está associada ao processo, mas sim à fila
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/30
Escalonamento por múltiplas filas
U C P
Fila de p rocessos d o sistem a
Fila de p rocessos in tera tivos
Fila de p rocessos b a tch
M a io rp rio r id ade
M eno rp rio r id ade
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/31
Escalonamento por múltiplas filas com realimentação
Ou Multilevel Feedback Queues Scheduling
o Semelhante ao MQS, porém 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 Preempção por fatia de tempo joga processo para fila com prioridade imediatamente menor
o Na criação, processos vão para fila mais prioritária
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/32
Escalonamento por múltiplas filas com realimentação
U C P
Fila 1 (FIFO A da ptad o )
Preem p ção po r tem p o
Fila 2 (FIFO A da ptad o )
Preem p ção po r tem p o
Fila 3 (FIFO A da ptad o )
Preem p ção po r tem p o
Fila n (C ircu la r)
Preem p ção po r tem p o
Men
or
Prio
rid
ad
eM
aio
rPr
iori
da
de
Ma
ior
fati
ad
e te
mp
oM
eno
r fa
tia
de
tem
po
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/33
Escalonamento por múltiplas filas com realimentação
Complexo, mas bom para processos I/O-bound
o Ficam mais tempo nas filas de maior prioridade já que sofrem poucas preempções por tempo
Muito tempo no estado de espera, pouco tempo no estado de execução
Processos CPU-bound tendem a ser direcionados para filas com menor prioridade
o Quanto maior o tempo de CPU, menor sua prioridade
o Mudança de comportamento para I/O-bound compromete o desempenho
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/34
Escalonamento em Sistemas de Tempo Compartilhado
Sistemas de tempo compartilhado caracterizam-se pelo uso de processamento interativo
o Usuários exigem tempos de resposta baixo para as aplicações
o Política de escalonamento deve considerar compartilhamento eqüitativo de recursos, principalmente do tempo de CPU
o Maioria dos SOs de tempo compartilhado utiliza escalonamento circular com prioridades dinâmicas
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/35
Escalonamento FIFO (exemplo)
Pro cesso A
Pro cesso B
u .t.277E/
S d
e A
11
E/S
de
B
19
E/S
de
A
21
E/S
de
B
Pro cessoTem p o d e
p rocessa do r(u .t.)
A
B
21
6
C aracter ística
C PU - b ou nd
I / O - b ou nd
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/36
Escalonamento circular (exemplo)
Pro cessoTem p o d e
p rocessa do r(u .t.)
A
B
15
10
C aracter ística
C PU - b ou nd
I / O - b ou nd
Pro cesso A
Pro cesso B
u .t.Pr
eem
pçã
o p
or
tem
po
de
A5
E/S
de
B
9
E/S
de
A
11
E/S
de
B
13
Pree
mp
ção
po
rte
mp
o d
e A
18
E/S
de
B
20
E/S
de
A
23 25
E/S
de
B
27
UC
P liv
re
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/37
Escalonamento circular com prioridades (exemplo)
Pro cesso A
Pro cesso B
u .t.E/
S d
e B
4Pr
eem
pçã
o p
or
pri
ori
da
de
de
A
6
E/S
de
B
8
Pre
emp
ção
po
rp
rio
rid
ad
e d
e A
12
E/S
de
B
14
E/S
de
A
15 17
Pre
emp
ção
po
rp
rio
rid
ad
e d
e A
18
E/S
de
B
20
Pre
emp
ção
po
rp
rio
rid
ad
e d
e A
24
E/S
de
B
27
UC
P liv
re
Pro cessoTem p o d e
p rocessa do r(u .t.)
A
B
12
13
C aracter ística
C PU - b ou nd
I / O - b ou nd
Pr io r id a d e
Ba ixa
A lta
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
8/38
Escalonamento em Sistemas de Tempo Real
Sistemas onde certas aplicações exigem respostas imediatas para a execução de determinadas tarefas
o SO de tempo real deve garantir a execução de processos dentro de limites rígidos de tempo
Ex: controle de tráfego aéreo, controle de processos industriais
o Escalonamento deve considerar importância relativa de cada processo (tarefa)
o Escalonamento por prioridades estáticas é o mais adequado
o Não deve haver preempção por tempo!