Sistemas
Operacionais
Aula 07
Escalonamento de processos
Conceito de Escalonamento
 Para cada estado, existe uma fila que contém os PCB's
executando
pcb3
prontos
pcb1
pcb5
e/s disco
pcb4
pcb6
e/s terminal
pcb9
e/s impressão
pcb8
bloqueados
pcb7
pcb2
pcb10
 nas transições entre estados, o PCB do processo é
movido entre as filas apropriadas
Razões para Suspender Processos
 Do SO
 Swapping: para liberar espaço na memória principal

para trazer outro processo da memória secundária
 SO pode suspender um processo
 em background
 utilitário
 suspeito de estar causando problemas
 Solicitação de usuário interativo
 Temporização: determinados processos são executados
periodicamente
 Solicitação do processo pai
Conceito de Escalonamento
 Escalonamento consiste em determinar, dentre
os processos prontos, qual o próximo processo a
ser executado
 Realizado por um componente do sistema
operacional denominado escalonador
 Dois tipos de escalonadores
 longo prazo
 curto prazo
Conceito de Escalonamento
 Escalonador longo prazo
memória secundária  memória principal
 Escalonador curto prazo
memória principal  processador
 Principais objetivos
 maximizar a utilização do processador
 maximizar o número de processos completados
por unidade de tempo
 garantir que todos os processos recebam o
processador
 minimizar o tempo de resposta para o usuário
Conceito de Escalonamento
 Uma visão dos escalonadores do sistema operacional
Longo-P razo
Curto-P razo
Fila de P rontos
I/O
Fila
Espera
CP U
FIM
Conceito de Escalonamento
 Dispatcher: responsável por passar o controle da CPU
para o processo selecionado pelo escalonador de curto
prazo, envolve:
 mudança de contexto
 mudança para o modo usuário
 salto para a posição adequada dentro do processo
selecionado para reiniciar sua execução
 Latência de despacho  Tempo gasto pelo
dispatcher para interromper um processo e começar a
execução de um outro
Representação do Escalonamento
fila de processos prontos
I/O
fila de dispositivo
CPU
requisição de
I/O
término de fatia
de tempo
filho em
execução
criação de um
processo filho
interrupção
ocorre
em espera por
uma interrupção
Adição de Escalonador Intermediário
carregar
processos em execução
parcialmente removidos
da memória
remover
terminar
fila de processos
prontos
I/O
CPU
fila de espera por
I/O
Conceito de Escalonamento
Mudança de contexto
 CPU é chaveada para outro processo  SO deve
salvar o estado do processo antigo e carregar o
estado do novo processo
 Implica overhead  SO não realiza nenhum
trabalho útil durante os chaveamentos
 Tempo consumido é dependente do suporte de
hardware fornecido

Chaveamento da CPU
interrupção ou chamada ao sistema
armazenar estado no PCB1
.
.
.
exec.
Processo P0
ocioso
recarregar estado no PCB1
recarregar estado no PCB0
Processo P1
.
.
.
ocioso
armazenar estado no PCB0
executando
SO
ocioso
exec.
interrupção ou chamada ao sistema
Características dos Escalonadores





Escalonador da CPU é invocado muito
freqüentemente (milissegundos)
 precisa ser rápido
Escalonador de processos é invocado com muito
pouca freqüência (segundos, minutos)
 pode ser lento
O escalonador de processos controla o grau de
multiprogramação do sistema
Conceito de Escalonamento
 Os escalonadores são implementados por
algoritmos dentro do sistema operacional
 Critérios para comparar a eficiência dos algoritmos
 utilização da CPU (1)
 taxa de saída (throughput) (2)
 turnaround time (3)
 tempo de espera (4)
 tempo de resposta (5)
 Objetivos maximizar (1) e (2)
minimizar (3), (4) e (5)
Conceito de Escalonamento
 Considerações


Tipo de processamento
 batch
 interativo
 CPU bound
 I/O bound
Tipo de sistema
 monoprogramado (?)
 multiprogramado
 time-sharing
 tempo-real
 multiprocessado
política de escalonamento
(scheduling policies)
Critérios de Escalonamento
 Orientados
ao Usuário e Desempenho
 Uso do processador  mede a porcentagem de
tempo em que a CPU está ocupada
 importante em tempo compartilhado
 não muito importante em sistemas monousuário e
tempo-real
 Tempo de resposta
processos interativos
tempo entre uma requisição e o início da resposta
do ponto de vista do usuário
qual seria o tempo de resposta ideal ?
Critérios de Escalonamento
 Orientados
ao Usuário e Desempenho
 Deadlines (prazos)  quando o prazo de término
pode ser especificado
 o sistema deveria fazer o melhor esforço para
atender todos os prazos
 Previsibilidade  um dado processo deveria
executar sempre em um tempo médio previsível
 a carga do sistema não deveria impor
variações
Critérios de Escalonamento
 Orientados
ao Sistema e Desempenho
 Throughput (vazão)  número de processos
completados por unidade de tempo, depende:
 do tamanho dos processos
 das políticas de escalonamento
 Turnaround  intervalo de tempo entre a
submissão de um processo e o seu término
 inclui o tempo de execução, espera por
recursos
 medida para sistemas batch
 Waiting time  quantidade total de tempo que um
Critérios de Escalonamento
Orientados ao Sistema
 Justiça  processos devem ser tratados igualmente,
a menos que especificado o contrário
processos não deveriam sofrer starvation
 Prioridades  processos mais prioritários devem
efetivamente ser favorecidos
problema da inversão de prioridade
 Balanceamento de recursos  recursos devem ficar
ocupados o máximo possível
processos que não vão utilizar recursos
sobrecarregados devem ser favorecidos

Escalonamento de Processos
Longa duração  decisão de se adicionar um
processo ao pool de processos para serem
executados
admissão ao sistema
 Duração média  decisão de se adicionar ao
número de processos que está completamente ou
parcialmente na memória
swapping, memória virtual

Escalonamento de Processos
Curta duração  decisão de qual processo
disponível será executado
interrupção de clock e I/O, chamadas ao
sistema, signals
 I/O  decisão de qual processo que está na fila
de espera por uma requisição de I/O será tratado

Escalonamento de Processos
 Tipos
 não-preemptivo: processo executando não pode
ser interrompido
 preemptivo: processo pode ser retirado do
processador
 Políticas mais comuns:
 First-Come-First-Served (FCFS)
 Shortest Job First (SJF)
 Prioridade
 Múltiplas Filas
 Round-Robin
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
 inversão de prioridade
 starvation
First-Come-First-Served
PROCS. TE
p1
0 ut
p2
6 ut
p3
14 ut
p4
21 ut
t =6
t =8
t =7
t =3
p1
p2
p3
p4
p1
0
TT
6 ut
8 ut
7 ut
3 ut
p2
6
p3
14
p4
21
24
t
First-Come-First-Served
 Exemplo:
Processo
Tempo de execução
P1
24
P2
3
P3
3
 Suponha que os processos chegaram na seguinte
ordem: P1 , P2 , P3
1. Qual seria o diagrama de Gannt, o waiting time para
cada um dos processos e o waiting time médio?
First-Come-First-Served
 Diagrama
de Gantt para o escalonamento:
P1
0
 Waiting
P2
24
P3
27
30
time para P1 = 0; P2 = 24; P3 = 27
 Waiting time médio: (0 + 24 + 27)/3 = 17
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?
Shortest-Job-First
 Tanto o escalonamento FIFO quanto o SJF não são
utilizados em sistemas de time-sharing (por quê ?)
p4
0
t=6
t=8
t=7
t=3
p1
p2
p3
p4
p1
3
p3
9
p2
16
24
t
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
Shortest-Job-First: não preemptivo
 Processo
Tempo de chegada Duração da rajada
P1
P2
P3
P4
0.0
2.0
4.0
5.0
7
1
4
4
 SJF (não
preemptivo)
 waiting time médio = (0 + 5 + 4 + 7)/4 = 4
P1
0
3
P2
7
P3
8
P4
12
16
Shortest-Job-First: preemptivo
Processo

Tempo de chegada
0.0
2.0
P1
P2
P3
4.0
P4
5.0
Duração da rajada
7
terminado
4
terminado
terminado
1
terminado
4
SJF (preemptivo)
P1
0
P2
2
P3
4
P2
5
P1
P4
7
11
waiting time médio = (9 + 1 + 0 +2)/4 = 3
16
Shortest-Job-First: preemptivo
Processo


rajada
P2
Tempo de chegada
P1
4.0
1
terminado
tempo restante: 5
tempo restante: 2
terminado
terminado
5.0
4
terminado
0.0
2.0
7
P3
P4
Duração da
4
SJF (preemptivo)
P1
0
P2
2
?
P3
?
4
P2
5
P4
7
P1
11
waiting time médio = (9 + 1 + 0 +2)/4 = 3
16
Shortest-Job-First
 Determinação
do tempo de CPU, pode:
somente estimar a próxima duração
ser feita usando a duração de tempo de CPU
anteriores, usando-se média exponencial
1. tn  tamanhoreal da n α rajada de CPU
2.  n1  valorestimadopara a próximarajada de CPU
3.  , 0    1
4. Define:
 n1   tn  1    n
Shortest-Job-First




 =0
 n+1 = n  História recente não conta
 =1
 n+1 = tn  Somente o último tempo de CPU (rajada) é
condiserado
Se expandirmos a fórmula teremos
 n+1 =  tn+(1 - )  tn-1 + …

+(1 -  ) j  tn-1 + …

+(1 -  )n+1 tn 0
Uma vez que tanto  como (1 - ) são menores ou iguais a 1,
cada termo tem peso menor do que o seu predecessor
Shortest-Job-First Preemptivo
 Permite que se dê atenção mais rapidamente a processos
mais prioritários
 Melhores respostas em sistemas time-sharing
 Compartilhamento do processador tende a ser mais
uniforme
 Troca de processos na CPU gera overhead
 Estabelecer de forma otimizada os critérios para a
preempção
 Procurar utilizar processos leves quando possível
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
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
Prioridade
Dinâmica
pode ser ajustada
de acordo com
 Atribuição
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
penalizado
é atribuída
quando
o processo
é
e sua
prioridade
é reduzida,
 usuário
pode diminuir a prioridade de seus
iniciado
processos
processos
 Observação
nãoCPU
épode
alterada
durante
aprioridades
existência do
 
boundrenice
terão
suas
 ex.:
comando
 SO
associar àdo
altaUnix
prioridade um
reduzidas
cada passagem
processo
númeroaescalar
pequeno para o estado
executando
 pode oferecer tempos de resposta
  0 significa a maior prioridade
 
I/O bound ficam em estado de espera
aceitáveis
com freqüência, processos CPU bound não
serão prejudicados

Prioridade
4 u.t.
Processo A
Processo B
3 u.t.
4 u.t.
5 u.t.
2 u.t.
4
8
B solicita
I/O
10
1u.t.
2 u.t.
13
16
18
A solicita
I/O
preempção
por B
B solicita
I/O
3 u.t.
23
26 27
preempção
por B
B solicita
I/O
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
tempo
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
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
processador
Round-Robin
bcp1
bcp2
bcp3
bcp4
bcp4
bcp1
processo 1 executando
fatia de tempo
esgotada
bcp2
bcp3
processo 2 executando
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 ms

Round-Robin
Processo A
5 u.t.
2 u.t.
4 u.t.
Processo B
5
termina
quantum
de A
5 u.t.
2 u.t.
9
11
3 u.t.
2 u.t.
13
B solicita
I/O
16
B solicita
I/O
21
termina
quantum
de A
A solicita
I/O
Tempo de CPU (u.t.)
23
26 27
A solicita
I/O
B solicita
I/O
Característica do Processo
Processo A
15
CPU bound
Processo B
8
I/O bound
tempo
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

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

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
Round-Robin
Processo
P1
P2
P3
P4
 Diagrama
de Gantt (quantum = 20 u.t.)
P1
0
Tempo de execução
53
17
68
24
20
 Tipicamente,
P2
37
P3
57
P4
P1
77
P3
97 117
P4
P1
P3
P3
121 134 154 162
temos turnaround time médio maior que
na SJF, mais em compensação melhor resposta
Como um pequeno quantum de tempo aumenta as mudanças de
contexto
quantum
tamanho do processo: 10 u.t.
0
12
0
6
1
1
9
10
0
0
mudanças
de contexto
6
1
2
3
4
5
6
10
7
8
9
10
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
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
diferentes
de tipos de escalonamento
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
Múltiplas Filas
p =3
processos interativos
p =2
p =1
processos em batch
p =0



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
Fila de Processos do Sistema
Fila de Processos Interativos
Fila de Processos Batch
Menor Prioridade
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
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
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
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)
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
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
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
Múltiplas Filas com Realimentação:
Exemplo 1
Maior Prioridade
Menor quantum
Fila 1 (escalonamento FIFO)
preempção por término de quantum
Fila 2 (escalonamento FIFO)
preempção por término de quantum
Fila 3 (escalonamento FIFO)
preempção por término de quantum
...
Fila m (Round-Robin)
Menor Prioridade
Maior quantum
Múltiplas Filas com Realimentação:
Exemplo 2
quantum = 8
quantum = 16
FCFS

Download

escalonador