sistemas operacionais i · diagrama de gantt (quantum = 20 u.t.) ... usa round-robin ou fcfs...
TRANSCRIPT
Sistemas
Operacionais
Escalonamento de processos
1
Escalonamento de Processos
Sistemas Interativos Algoritmos para Sistemas Interativos:
First-Come-First-Served (FIFO)
Round-Robin;
Prioridade;
Múltiplas Filas;
Utilizam escalonamento em dois níveis (escalonador da
CPU e memória);
2
Escalonamento de Processos
Algoritmos de escalonamento podem ser divididos em duas categorias dependendo de como essa interrupção de clock é tratada:
Preemptivo: estratégia de suspender o processo sendo executado;
Não-preemptivo: estratégia de permitir que o processo sendo executado continue sendo executado até ser bloqueado por alguma razão (semáforos, operações de E/S-interrupção);
3
Escalonamento de Processos
Categorias de Ambientes:
Sistemas em Batch: usuários não esperam por respostas rápidas; algoritmos preemptivos ou não-preemptivos;
Sistemas Interativos: interação constante do usuário; algoritmos preemptivos; Processo interativo espera comando e executa comando;
Sistemas em Tempo Real: processos são executados mais rapidamente; tempo é crucial sistemas críticos;
4
5
Escalonamento de Processos
Características de algoritmos de
escalonamento:
Sistemas em Batch:
Taxa de execução (throughput): máximo número de jobs
executados por hora;
Turnaround time: tempo no qual o processo espera sua
resposta (para ser executado);
Eficiência: CPU deve estar 100% do tempo ocupada;
Sistemas Interativos:
Tempo de resposta : tempo esperando respostas;
Satisfação do usuários;
6
Escalonamento de Processos
Características de algoritmos de
escalonamento:
Sistemas em Tempo Real:
Prevenir perda de dados;
Previsibilidade: prevenir perda da qualidade dos
serviços oferecidos;
7
Escalonamento de Processos Escalonamento Three-Level (três níveis)
Normalmente todos os processos estão na
memória principal
Suponha:
processos na memória principal + processos no disco
Chaveamento de processos que estão no disco
requer mais tempo 1 ou 2 ordens de
grandeza
Utilizado em Sistemas em Batch;
8
Escalonamento de Processos
Escalonamento Three-Level
Subconjunto dos processos Memória
Principal (MP);
Escalonador se restringe a esses processos;
Periodicamente um escalonador da CPU é
acionado para remover processos da MP;
9
Escalonamento de Processos
Escalonamento Three-Level
RAM
Escalonador da CPU *
Disco
Fila de entrada
Novo processo
Escalonador
Da Memória
Escalonador
de Admissão
CPU
10
Escalonamento de Processos
Escalonamento Three-Level Escalonador de admissão: processos menores
primeiro; processos com menor tempo de acesso à CPU e maior tempo de interação com dispositivos de E/S;
Escalonador da Memória: decisões sobre quais processos vão para a MP: A quanto tempo o processo está esperando?
Quanto tempo da CPU o processo utilizou?
Qual o tamanho do processo?
Qual a importância do processo?
Escalonador da CPU: seleciona qual o próximo processo a ser executado;
First-Come-First-Served (FIFO)
Não preemptivo por definição
Primeiro processo da fila é o primeiro a ser executado
Processos usam a CPU até terminar todo
processamento
Mesmo com alguma intercalação, processos com
menor prioridade podem prejudicar processos com
maior prioridade
Desvantagem:
Ineficiente quando se tem processos que demoram
na sua execução;11
First-Come-First-Served (FIFO)
Interrupção qualquer
(semáforo, E/S)
CPU
0Fila de entrada
23 1
12
First-Come-First-Served (FIFO)
CPU
1Fila de entrada
30 2
13
Shortest-Job-First
Pode ser preemptiva ou não-preemptiva
Cada processo é associado ao seu tempo de uso do
processador
Escalonado o processo com o menor tempo de CPU
privilegiam processos menores
reduzem o tempo médio de espera na fila de
prontos
Problema:
Como determinar quanto tempo de CPU será
necessário?14
Shortest-Job-First
Tanto o escalonamento FIFO quanto o SJF não são
utilizados em sistemas de time-sharing (por quê ?)
p1 p2 p3 p4
t = 6 t = 8 t = 7 t = 3
p4 p1 p3 p2
3 9 16 240 t
15
Shortest-Job-First
A política SJF é ótima, minimizando o tempo
médio de espera de um conjunto de processos
Dificuldade: determinar antecipadamente o
tempo de processador de cada processo
Na prática, o tempo é estimado, é utilizada
uma aproximação
16
Shortest-Job-First: não preemptivo
Processo Tempo de chegada Duração da rajada
P1 0.0 7
P2 2.0 1
P3 4.0 4
P4 5.0 4
SJF (não preemptivo)
waiting time médio = (0 + 5 + 4 + 7)/4 = 4
73 160 8 12
P1 P2 P3 P4
17
Shortest-Job-First: preemptivo
Processo Tempo de chegada Duração da rajada
P1 0.0 7
SJF (preemptivo)
waiting time médio = (9 + 1 + 0 +2)/4 = 3
P2 2.0 4
P3 4.0 1 terminado
P4 5.0 4
terminado
0
P1
2
P2
5
P3
4 7
P2
11
P4
terminado
16
P1
terminado
18
Shortest-Job-First: preemptivo
?
Processo Tempo de chegada Duração da
rajada
P1 0.0
7
0
P1
SJF (preemptivo)
waiting time médio = (9 + 1 + 0 +2)/4 = 3
2
P2
P2 2.0 4
tempo restante: 5
? 5
P3 4.0 1
P3
4
tempo restante: 2
terminado
P4 5.0 4
7
P2
terminado
11
P4
terminado
16
P1
terminado
19
Prioridade
A cada processo é atribuída uma prioridade
O processo com maior prioridade é atribuído ao
processador
Pode ser não-preemptiva ou preemptiva
não-preemptiva: o processo libera
espontaneamente o processador
preemptiva : o processo executando é
interrompido caso chegue à fila de prontos um
processo com maior prioridade
20
Prioridade
Atribuição de prioridades
estática: o processo tem uma prioridade
fixa durante o seu tempo de vida
dinâmica: prioridade muda ao longo do
tempo de vida do processo, de acordo com
o seu comportamento
21
1
2
3
4mais alta
mais baixa
prioridade
FILAS
processos prontos
(Round-Robin)
Prioridade
22
Prioridade
Atribuição de prioridades normalmente é feita pelo SO
pode ser configurada pelo superusuário
processos de usuário recebem uma prioridade máxima de usuário
usuário pode diminuir a prioridade de seus processos
ex.: comando renice do Unix
Dinâmica
pode ser ajustada de acordo com
tipo de processamento realizado
a carga do SO
quando o processo passa do estado de espera para o estado executando ele é penalizado e sua prioridade é reduzida, processos
CPU bound terão suas prioridades reduzidas a cada passagem para o estado executando
I/O bound ficam em estado de espera com freqüência, processos CPU bound não serão prejudicados 23
Prioridade
Atribuição de prioridades normalmente é feita pelo SO
pode ser configurada pelo superusuário
processos de usuário recebem uma prioridade máxima de usuário
usuário pode diminuir a prioridade de seus processos
ex.: comando renice do Unix
Dinâmica
pode ser ajustada de acordo com
tipo de processamento realizado
a carga do SO
quando o processo passa do estado de espera para o estado executando ele é penalizado e sua prioridade é reduzida, processos
CPU bound terão suas prioridades reduzidas a cada passagem para o estado executando
I/O bound ficam em estado de espera com freqüência, processos CPU bound não serão prejudicados
Estática
é atribuída quando o processo é iniciado
não é alterada durante a existência do processo
pode oferecer tempos de resposta aceitáveis
24
Prioridade
Atribuição de prioridades normalmente é feita pelo SO
pode ser configurada pelo superusuário
processos de usuário recebem uma prioridade máxima de usuário
usuário pode diminuir a prioridade de seus processos
ex.: comando renice do Unix
Dinâmica
pode ser ajustada de acordo com
tipo de processamento realizado
a carga do SO
quando o processo passa do estado de espera para o estado executando ele é penalizado e sua prioridade é reduzida, processos
CPU bound terão suas prioridades reduzidas a cada passagem para o estado executando
I/O bound ficam em estado de espera com freqüência, processos CPU bound não serão prejudicados
Estática
é atribuída quando o processo é iniciado
não é alterada durante a existência do processo
pode oferecer tempos de resposta aceitáveis
Observação
SO pode associar à alta prioridade um número escalar pequeno
0 significa a maior prioridade25
Prioridade
Processo A
Processo B
tempo4 8 10 13 16 18 23 26 27
1u.t.
4 u.t.
B solicita
I/Opreempção
por B
4 u.t.
B solicita
I/O
2 u.t.
A solicita
I/O
3 u.t.
2 u.t.
B solicita
I/O
5 u.t.
preempção
por B
3 u.t.
B solicita
I/O
Tempo de CPU (u.t.) Característica do Processo Prioridade
Processo A 13 CPU bound 1 menor
Processo B 11 I/O bound 0 maior
26
Prioridade
Vantagens
é possível fazer diferenciação entre processos
adaptabilidade (prioridades dinâmicas)
Desvantagem
starvation: um processo com baixa prioridade
pode nunca ser atribuído ao processador
solução: aumentando, em intervalos regulares, a
prioridade dos processos que estão há muito tempo
esperando
27
Round-Robin
Escalonamento do tipo preemptivo
Cada processo executa durante uma fatia de
tempo (time-slice ou quantum)
Ao final da fatia de tempo, o processo
executando é inserido no final da fila de
prontos
Processo na frente da fila de prontos recebe o
processador28
Round-Robin
bcp1 bcp2 bcp3 bcp4
processo 1 executando
fatia de tempoesgotada
bcp2 bcp3 bcp4 bcp1
processo 2 executando
29
Round-Robin
Bom para tempo compartilhado
Similar a FIFO + tempo limite para execução (time-slice ou quantum)
terminado o quantum, o processo é devolvido (preempção) para o final da fila de prontos
processos não monopolizam a CPU
quantum entre 100 a 300 ms30
Round-Robin
Processo A
Processo B
tempo5 9 11 13 16 21 23 26 27
Tempo de CPU (u.t.) Característica do Processo
Processo A 15 CPU bound
Processo B 8 I/O bound
5 u.t.
termina
quantum
de A
4 u.t.
B solicita
I/O
A solicita
I/O
2 u.t.
B solicita
I/O
2 u.t.
5 u.t.
termina
quantum
de A
2 u.t.
B solicita
I/O
3 u.t.
A solicita
I/O
31
Round-Robin
Vantagem do escalonamento Robin Round
simplicidade
Tamanho da fatia de tempo é crucial no escalonamento circular
pequena: tempo de troca de contexto torna-se significativo
grande: aumenta o tempo de resposta dos processos no final da fila de prontos
32
Round-Robin
Se existem n processos na fila de prontos
Se quantum = q
cada processo tem 1/n do tempo de CPU em fatias de no máximo q unidades de tempo cada
Nenhum processo espera por mais de (n-1) q unidades de tempo para ser atendido
33
Round-Robin
Desempenho
quantum = muito grande
FIFO
quantum = muito pequeno
q deve ser grande comparado a
mudança de contexto, caso contrário, o
overhead é muito elevado34
Round-Robin
Processo Tempo de execução
P1 53
P2 17
P3 68
P4 24
Diagrama de Gantt (quantum = 20 u.t.)
Tipicamente, temos turnaround time médio maior que
na SJF, mais em compensação melhor resposta
0 20 37 57 77 97 117 121 134 154 162
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
35
Como um pequeno quantum de tempo aumenta as mudanças de
contexto
tamanho do processo: 10 u.t. quantum mudanças
de contexto
0 10
12 0
0 6 10
6 1
0 1 2 3 4 5 6 107 8 9
1 9
36
Múltiplas Filas
Política do tipo preemptiva
Prioridades são atribuídas às classes de processos
Processos das classes de maior prioridade recebem o
processador
Processos podem migrar entre classes de acordo com
seu comportamento
Vantagem: adaptabilidade de acordo com o
comportamento do processo
37
Múltiplas Filas
Processos são classificados em função do
tipo de processamento
Cada grupo formado fila associada
Fila de prontos associada a cada grupo
permite
aplicação de tipos de escalonamento
diferentes38
Múltiplas Filas
Cada fila possui uma prioridade
SO só vai escalonar processos em uma fila
se todos os processos das filas de maior
prioridade estiverem vazias
39
Múltiplas Filas
p = 3
p = 2
p = 0
p = 1
processos interativos
processos em batch
40
Fila de Processos do Sistema
Fila de Processos Batch
Fila de Processos Interativos
Maior Prioridade
Menor Prioridade
sistema
mais prioritário
algoritmo de escalonamento por prioridades
interativo
prioridade intermediária
escalonamento Round-Robin
batch
menor prioridade
usa Round-Robin ou FCFS
Exemplo
41
Múltiplas Filas com Realimentação
Escalonamento anterior a classificação dos processos era estática
Se processo alterar seu comportamento, o esquema pode falhar (não existe reclassificação)
Seria interessante que o SO
reconhecesse a alteração de comportamento de um processo
ajustasse dinamicamente o seu tipo de escalonamento
42
Múltiplas Filas com Realimentação
No escalonamento por múltiplas filas com realimentação (multi-level feed-bak queues)
é permitido que os processos sejam movimentados
entre as filas
ajuste dinâmico (mecanismo adaptativo)
processo é direcionado para uma das filas em função de seu comportamento
43
Múltiplas Filas com Realimentação:
Funcionamento
Criação do processo
prioridade mais alta e quantum mais baixo
Cada fila pode implementar uma política de
escalonamento diferente para chegar a CPU:
FIFO com quantum
SJF
RR
44
Múltiplas Filas com Realimentação:
Funcionamento
Processo é reescalonado dentro da mesma fila
quando
processo volta ao estado de pronto
sofre preempção por outro processo de uma fila
mais prioritária
Processo é direcionado para fila de menor
prioridade e maior quantum quando
processo esgota o seu quantum (sofrendo
preempção)45
Múltiplas Filas com Realimentação:
Funcionamento
Quanto maior a prioridade menor o quantum
Escalonamento de uma fila só acontece depois
que todas as outras filas de prioridade mais alta
estão vazias
Fila de menor prioridade Round-Robin
46
Múltiplas Filas com Realimentação:
Características
Atende as necessidades de escalonamento de
diversos tipos de processos
Processos I/O bound
bom tempo de resposta: maior prioridade
permanecem a maior parte do tempo nas
filas de alta prioridade
usa pouco a CPU
47
Múltiplas Filas com Realimentação:
Características
Processos CPU bound
com o transcorrer do processamento sua
prioridade vai sendo reduzida
É um mecanismo complexo e gera
overhead, mas os resultados são
satisfatórios
48
Múltiplas Filas com Realimentação:
Exemplo 1
Fila 1 (escalonamento FIFO)
Fila 2 (escalonamento FIFO)
Fila m (Round-Robin)
Maior Prioridade
Menor Prioridade Maior quantum
Menor quantum
Fila 3 (escalonamento FIFO)
preempção por término de quantum
preempção por término de quantum
...preempção por término de quantum
49
Múltiplas Filas com Realimentação:
Exemplo 2
quantum = 8
quantum = 16
FCFS
50