Escalonamento de Processos
Sistemas Interativos
Algoritmos para Sistemas Interativos:
First-Come-First-Served (FIFO)
Round-Robin;
Prioridade;
Múltiplas Filas;
2
Escalonamento de Processos
Categorias de Ambientes:
5
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;
6
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;
7
Escalonamento de Processos
Escalonamento Three-Level
Subconjunto dos processos Memória Principal (MP);
Escalonadorse restringe a esses processos;
Periodicamente um escalonador da CPU é acionado para
remover processos da MP;
8
Escalonamento de Processos
Escalonamento Three-Level
CPU
Escalonador da CPU *
Fila de entrada
RAM Disco
Escalonador Escalonador
de Admissão Da Memória
Novo processo
9
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;
10
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
Algoritmos de escalonamento
First In First Out (FIFO)
Constitui-se
no esquema mais simples de escalonamento
em que os processos são executados do início até o fim,
na ordem de chegada.
12
First-Come-First-Served (FIFO)
CPU
Interrupção qualquer
Fila de entrada (semáforo, E/S)
0
3 2 1
First-Come-First-Served (FIFO)
CPU
Fila de entrada
1
0 3 2
Algoritmos de escalonamento
Shortest Job First – Processo mais curto primeiro
Processos menores são executados primeiro.
Processos curtos são favorecidos.
Processo maiores são prejudicados.
Pouco utilizado na prática.
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?
Algoritmos de escalonamento
Shortest Job First – Processo mais curto primeiro
Exemplo:
Processo Tempo de Uso da CPU em ms Chegada
(milissegundos)
P1 7 0
P2 4 2
P3 1 4
P4 4 5
Shortest-Job-First
P1 P2 P3 P4
0 3 7 8 12 16
18
Shortest-Job-First: preemptivo
P1 P2 P3 P2 P4 P1
0 2 4 5 7 11 16
19
Shortest-Job-First: preemptivo
0 ?
2 ?
4 5 7 11 16
20
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
21
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
22
Prioridade
Dinâmica
pode ser ajustada
Atribuição de acordo com
de prioridades
tipo de processamento realizado
normalmente é feita pelo SO
a carga do SO
pode ser configurada pelo superusuário
quando o processo passa do estado de
processos de usuário recebem uma prioridade
espera para o estado executando ele é
máxima de usuário
penalizado e sua prioridade é reduzida,
usuário pode diminuir a prioridade de seus
processos
processos
CPU bound terão suas prioridades
ex.: comando renice do Unix
reduzidas a cada passagem para o estado
executando
I/O bound ficam em estado de espera
com freqüência, processos 23
CPU bound não
serão prejudicados
Prioridade
Dinâmica
pode ser ajustada
Atribuição de acordo com
de prioridades
tipo de processamento realizado
normalmente é feita pelo SO
a carga do SO
pode ser configurada pelo superusuário
quando o processo passa do estado de
processos de usuário recebem uma prioridade
espera para o estado executando ele é
máxima de usuário
Estática
penalizado e sua prioridade é reduzida,
usuário pode diminuir
é atribuída
processos quandoa prioridade
o processodeéseus
processos
iniciado
CPU bound terão suas prioridades
ex.: comando renice do Unix
não é alterada
reduzidas durante a para
a cada passagem existência do
o estado
executando
processo
pode
I/Ooferecer tempos
bound ficam de resposta
em estado de espera
com freqüência, processos 24
aceitáveis CPU bound não
serão prejudicados
Prioridade
Dinâmica
pode ser ajustada
Atribuição de acordo com
de prioridades
tipo de processamento realizado
normalmente é feita pelo SO
a carga do SO
pode ser configurada pelo superusuário
quando o processo passa do estado de
Estáticade usuário recebem uma prioridade
processos
espera para o estado executando ele é
máxima de usuário
é atribuída
penalizado quando o processo é
e sua prioridade é reduzida,
usuário pode diminuir a prioridade de seus
iniciado
processos
processos
nãoCPUé alterada durante
boundrenice
terão suas aprioridades
existência do
ex.: comando
Observação do Unix
processo
reduzidas a cada passagem para o estado
SO pode associar à alta prioridade um
executando
pode oferecer tempos de resposta
número escalar pequeno
I/O bound ficam em estado de espera
aceitáveis
comfreqüência,
0 significa a processos
maior prioridade
CPU bound não
25
serão prejudicados
Prioridade
4 8 10 13 16 18 23 26 27 tempo
B solicita A solicita B solicita B solicita
preempção preempção
I/O I/O I/O I/O
por B por B
B solicita
I/O
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
Algoritmos de escalonamento
Round Robin – Alternância Circular
Processos são executados na ordem FIFO, mas com um
intervalo chamado quantum.
Ao final de seu quantum, se o processo ainda estiver
em execução, é interrompido (preempção) e voltará
para o estado de pronto (final da fila) e o próximo
processo da fila será alocado para ocupar a CPU.
Se o processo terminar antes de finalizar o seu
quantum, a CPU será liberada.
Algoritmos de escalonamento
Round Robin – Alternância Circular
Exemplo: quantum de 20 ms Processo Tempo de Uso da CPU em
ms (milissegundos)
P1 50
P2 14
P3 65
P4 21
Round-Robin
5 9 11 13 16 21 23 26 27 tempo
termina termina
B solicita B solicita A solicita
quantum quantum
I/O I/O I/O
de A de A
B solicita
A solicita
I/O
I/O
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 elevado
34
Round-Robin
Processo Tempo de execução
P1 53
P2 17
P3 68
P4 24
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
quantum mudanças
tamanho do processo: 10 u.t. de contexto
12 0
0 10
6 1
0 6 10
1 9
0 1 2 3 4 5 6 7 8 9 1036
Múltiplas Filas
37
Múltiplas Filas
38
Múltiplas Filas
39
Múltiplas Filas
p=3
processos interativos
p=2
p=1
processos em batch
p=0
40
sistema Exemplo
mais prioritário
algoritmo de escalonamento por prioridades
interativo
prioridade intermediária
escalonamento Round-Robin
batch
menor prioridade
usa Round-Robin ou FCFS
Maior Prioridade
Menor Prioridade 41
Múltiplas Filas com Realimentação
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
46
Múltiplas Filas com Realimentação:
Características
Atende as necessidades de escalonamento de
diversos tipos de processos
Processos I/O bound
47
Múltiplas Filas com Realimentação:
Características
48
Múltiplas Filas com Realimentação:
Exemplo 1
Maior Prioridade Menor quantum
Fila m (Round-Robin)
Menor Prioridade Maior quantum
49
Múltiplas Filas com Realimentação:
Exemplo 2
quantum = 8
quantum = 16
FCFS
50
Concorrência
Os processo concorrem pelos recursos do sistema.
Exemplo: fila de impressão
Deadlock
Acontece quando dois ou mais processos estão
disputando recursos e nenhum deles consegue seguir
a execução porque ambos estão bloqueando uns
aos outros.
Exemplo:
Doisprocessos querem gravar um CD.
Processo P1 aloca o Gravador.
Processo P2 aloca o HD.
P1 espera P2 terminar de usar o HD.
P2 espera P1 terminar de usar o gravador.
Exclusão Mútua
Evitar que mais de um processo utilize um recurso
compartilhado.
Condições para exclusão mútua:
1. Dois processos não podem estar dentro de suas regiões críticas
ao mesmo tempo, compartilhando o mesmo recurso.
2. A exclusão mútua dos processos deve ser independente da
velocidade dos processos ou o número de CPUs.
3. Um processo executado fora da região crítica não pode
bloquear outros processos.
4. Nenhum processo esperará para sempre para entrar em sua
região crítica.
Exclusão mútua com espera ocupada