Aula 6 (13/10/2016)

Propaganda
Escalonamento
Prof. Alexandre Monteiro
Recife
‹#›
Contatos

Prof. Guilherme Alexandre Monteiro Reinaldo

Apelido: Alexandre Cordel

E-mail/gtalk: [email protected]
[email protected]

Site: http://www.alexandrecordel.com.br/fbv

Celular: (81) 9801-1878
Introdução a Escalonamento



O escalonador é a entidade do SO responsável por selecionar um
processo apto para executar no processador
O objetivo é dividir o tempo de CPU entre os processos aptos de
forma justa
Típicos de sistemas multiprogramados: batch, time-sharing
multiprogramado ou tempo real.
• Requisitos e restrições diferentes em relação a utilização da
CPU

Duas partes
• Escalonador: política de seleção
• Dispatcher: efetua a troca de contexto
OBS: A parte do SO responsável por essa decisão é chamada escalonador, e
o algoritmo usado para tal é chamado de algoritmo de escalonamento
Escalonamento de Processos
Abstração

Uma máquina para cada processo

Paralelismo real
mP1
T11
T12
mP2
mP3
T0
mP3
T22
Escalonamento de Processos
Realidade

Compartilhamento do tempo

Pseudo-paralelismo (Concorrência)
Troca de Contexto
T12
mP1
T11
1
T0
41 51
T22
70
T0
90
121
t
Objetivos do Escalonamento





Maximizar a utilização do processador
Maximizar o nº de processos executados por unidade de
tempo (throughput)
Minimizar o tempo total de execução de um processo
(turnaround)
Minimizar o tempo de espera (na lista de processos aptos)
Minimizar o tempo de resposta decorrido entre a requisição
e sua realização
Características de Escalonamento

Justiça (fairness)
• Todos os processos têm chances iguais de uso dos processador

Eficiência
• Taxa de ocupação do processador ao longo do tempo

Tempo de Resposta
• Tempo entre a ocorrência de um evento e o término da ação
correspondente

Turnaround
• “Tempo de resposta” para usuários em batch
• Minimizar o tempo que usuários batch devem esperar pelo
resultado

Throughput
• No. de “jobs” (processos) executados por unidade de tempo
Resumindo Objetivos
Objetivos do algoritmo de escalonamento
8
Escalonamento
Introdução ao Escalonamento (1)
•
Surtos de uso da CPU alternam-se com períodos
de espera por E/S
a) um processo orientado à CPU
b) um processo orientado à E/S
9
A importância da Interrupção

Num sistema simples, CPU
deve esperar a execução do
comando de E/S
• A cada chamada do comando
write a CPU fica esperando o
dispositivo executar o comando.
Ex: escrita em disco
SO
HD
A importância da Interrupção

Um sistema com interrupção
não fica esperando
• A CPU solicita o write e fica
executando outras tarefas até
ser interrompida pelo disco.
Ex: escrita em disco
SO
HD
Conceitos Básicos
Operação Básica da CPU
Busca instrução
e dados
Incrementa PC
Executa a instrução
Com
interrupção
Não
Interrupção?
Sim
1) Pára o processo atual
2) Salta p/ rotina de interrupção
Interrupção do Programa
Conceitos Básicos
Processo de Interrupção
Dispositivo
pede interrupção
Hardware
Processador salva PSW
e PC na pilha de controle
Processador carrega
novo valor do PC
baseado na interrupção
*PSW = Program Status Word
*PC = Program Counter
Salva resto da Informação
do contexto do processo
Processa rotina
de Interrupção
Restaura Informação do
estado do processo em
execução antes
da interrupção
Restaura PSW e PC do
processo em execução
antes da interrupção
Software
Situações típicas para execução do
escalonador

Depende se o escalonador é preemptivo ou não- preemptivo, se considera
prioridades ou não:

Sempre que a CPU estiver livre e houver um processo apto para executar

Criação e término de processos

Um processo de mais alta prioridade ficar pronto para executar

Interrupção de tempo
• Processo executou por um período de tempo máximo permitido

Interrupção de E/S

Interrupção de Falta de Página em Memória
• Endereço acessado não está carrego na memória (memória virtual)

Interrupção por erro
Chaveamento de Contexto
(Dispatcher)
Níveis de escalonamento

Longo Prazo

Médio Prazo

Curto Prazo
Longo Prazo


Executado quando um novo processo é criado
Determina quando um processo novo passa a ser
considerado no sistema, isto é, quando após sua criação
passa a ser apto.
• Controle de admissão

Controla o grau de multiprogramação do sistema
• Quanto maior o número de processos ativos, menor a
porcentagem de tempo de uso do processador por processo
Médio Prazo

Associado a gerencia de memória
•Participa do mecanismo de swapping (memória
principal -> disco [swap out] | disco -> memória
principal [swap in])

Suporte adicional a multiprogramação
•Grau de multiprogramação efetiva (diferencia
aptos dos aptos-suspensos)
Curto Prazo


Mais importante, pois determina qual processo apto irá
utilizar o processador
Executado sempre que ocorre eventos importantes:
•Interrupções (de relógio, E/S)
•Chamada de Sistemas
•Sinais (interrupções de software)
Diagrama de Escalonamento
Filas de Escalonamento

High-level (Longo Prazo)
• Decide quantos programas são admitidos no sistema
• Aloca memória e cria um processo
• Controla a long-term queue

Short-term (Curto prazo)
• Decide qual processo deve ser executado
• Controla a short-term queue

I/O (Médio prazo)
• Decide qual processo (com I/O) pendente deve ser tratado pelo
dispositivo de I/O
• Controla a I/O queue
Filas de Escalonamento
Short-term
scheduling
Process
request
Longterm
queue
High-level
scheduling
Interrupt
of process
Interrupt
from I/O
Interrupt
Handler
Shortterm
queue
CPU
I/O
I/O
queue
I/O
I/O
queue
I/O
I/O
queue
FIM
I/O scheduling
Exemplo
Sist. Operacional
Contr. Serviços
Escalonador
contr.
interrupção
A
Rodando
Executando
B
Pronto
Outros processos
ExecuSist. Operacional
tando
Contr. Serviços
Escalonador
contr.
interrupção
A
Bloqueado
B
Pronto
Outros processos
Sist. Operacional
Contr. Serviços
Escalonador
contr.
interrupção
A
Bloqueado
Processo A parou. Por
que?
• Req. serviço ao S.O.
• Interrupção de A
Ex. erro
• Interrupção de outra
fonte. Ex. I/O
• Tempo acabou
B
Rodando
Executando
Outros processos
tempo
Algoritmo de Escalonamento



Algoritmo de escalonamento escolhe qual processo deve
executar em um determinado instante de tempo
Existem vários algoritmos para atingir os objetivos do
escalonamento
Os algoritmos buscam:
• Obter bons tempos médios (independente de critérios)
• Privilegiar a variância em relação aos tempos médios

Os algoritmos estão categorizados em:
• Lote
• Interativo
• Tempo Real
Tipos de Escalonador

Uma vez escalonado, o processo utiliza o processador até que:

Não-preemptivo (não troca de contexto):
• Término de execução do processo
• Execução de uma requisição de E/S ou sincronização
• Liberação voluntário do processador para outro processo (yield)

Preemptivo (troca de contexto)
• Término de execução do processo
• Execução de uma requisição de E/S ou sincronização
• Liberação voluntário do processador para outro processo (yield)
• Interrupção de relógio
• Processo de mais alta prioridade esteja pronto para executar
Tipos de Escalonamento

Mecanismos de Escalonamento
• Preemptivo x Não-preemptivo

Políticas de Escalonamento
• Round-Robin
• FIFO (First-In First-Out)
• Híbridos
- Partições de Lote (Batch)
- MFQ - Multiple Feedback Queue
• SJF – Shortest Job First
• SRJN – Shortest Remaining Job Next
Se diz que um
algoritmo/sistema
operacional é preemptivo
quando um processo entra
na CPU e o mesmo pode ser
retirado da CPU antes do
término da sua execução
Algoritmos de Escalonamento

Algoritmos Não-Preemptivos (cooperativos)
• First-In-First-Out (FIFO) ou First-Come-First-Served (FCFS)
• Shortest Job First (SJF) ou Shortest Processo Next (SPN)

Algortimos Preemptivos
• Round Robin (Circular)
• Baseado em Prioridades

Existem outros algoritmos de escalonamento
• High Response Ratio Next (HRRN)
• Shortest Remaining Time (SRT)
• Ect...
Escalonamento


Preemptivo
Permite a suspensão temporária de processos
Quantum ou time-slice: período de tempo durante o qual
um processo usa o processador a cada vez
Preempção
T12
mP1
T11
1
T0
41 51
T22
70
T0
90
121
t
Quantum


Quando uma tarefa recebe o processador, o núcleo ajusta um
contador de ticks que essa tarefa pode usar, ou seja, seu quantum
é definido em número de ticks.
A cada tick, o contador é decrementado; quando ele chegar a
zero, a tarefa perde o processador e volta à fila de prontas.
Nova visão dos Estados do Processo
Problema das trocas de processos

Mudar de um processo/tarefa para outro requer um
certo tempo para a administração — salvar e carregar
registradores e mapas de memória, atualizar tabelas e
listas do SO, etc

Isto se chama troca de contexto

Suponha que esta troca dure 5 ms


Suponha também que o quantum está ajustado em 20
ms
Com esses parâmetros, após fazer 20 ms de trabalho
útil, a CPU terá que gastar 5 ms com troca de
contexto. Assim, 20% do tempo de CPU (5 ms a cada
25 ms) é gasto com o overhead administrativo...
Troca de Contexto
5 ms
Solução?

Para melhorar a eficiência da CPU, poderíamos ajustar o quantum
para 500 ms
• Agora o tempo gasto com troca de contexto é menos do que 1% “desprezível”...

Considere o que aconteceria se dez usuários apertassem a tecla
<ENTER> exatamente ao mesmo tempo, disparando cada um
processo:
• Dez processos serão colocados na lista de processo aptos a executar
• Se a CPU estiver ociosa, o primeiro começará imediatamente, o
segundo não começará cerca de ½ segundo depois, e assim por
diante
• O “azarado” do último processo somente começará a executar 5
segundos depois do usuário ter apertado <ENTER>, isto se todos os
outros processos tiverem utilizado todo o seu quantum
• Muitos usuários vão achar que o tempo de resposta de 5 segundos
para um comando simples é “muita” coisa
“Moral da estória”



Ajustar um quantum muito pequeno causa muitas trocas de
contexto e diminui a eficiência da CPU, ...
...mas ajustá-lo para um valor muito alto causa um tempo de
resposta inaceitável para pequenas tarefas interativas
A duração atual do quantum depende muito do tipo de sistema
operacional; no Linux ela varia de 10 a 200 milissegundos,
dependendo do tipo e prioridade da tarefa [Love, 2004].
Quantum grande:
Diminui número de mudanças de contexto e
overhead do S.O. X Ruim para processos
interativos
Round-Robin FIFO Híbrido SJF SRJN
Políticas de Escalonamento
Round-Robin

Uso de uma lista de processos sem prioridade

Escalonamento preemptivo

Simples e justo

Bom para sistemas interativos
CPU:Running
Tar. A
Contexto
Tar. A
Contexto
Tar. B
Contexto
Tar. C
Contexto
Tar. A
Contexto
Round Robin



Cada processo recebe um tempo limitado (time slice = quantum) para
executar um ciclo de processador
Fila de processos aptos é circular
Necessita de relógio para delimitar as fatias de tempo (interrupção de
tempo/relógio)
∞) obtem-se o comportamento de um escalonador FIFO.

Se o (quantum =

Tamanho do quantum igual prejudica processos I/O bound (prioridade)
Round-Robin FIFO Híbrido SJF SRJN
Políticas de Escalonamento
First-In First-Out (FIFO)

Uso de uma lista de processos sem prioridade (Fila)

Escalonamento não-preemptivo

Simples e justo

Bom para sistemas em batch (lote)
CPU
A
FIM
B
C
D
E
F …
N
1. Processo aptos inseridos no final da fila
2. Processo no início da fila é o próximo.
3. Processo executa até terminar, libere o
processador ou realize um chamada de sistema
Políticas de Escalonamento
First-In First-Out (FIFO)
Round-Robin FIFO Híbrido SJF SRJN
Políticas de Escalonamento
Híbridos
Partições de Lote (Batch)
MFQ - Multiple Feedback Queue

Como combinar processos batch com interativos?

Uso de Partições de Lote (batch)
•O sistema aceita tantos processos batch quantas
forem as partições de lote
•O sistema aceita todos os processos interativos
•Escalonamento em dois níveis
Round-Robin FIFO Híbrido SJF SRJN
Escalonamentos Híbridos
Partições de Lote
Memória
Processos interativos
são ativados
imediatamente
Processos
Interativos
Processos batch esperam a liberação do lote
Partição
de Lote
A
B
C
D
E
F …
N
Round-Robin FIFO Híbrido SJF SRJN
Escalonamentos Híbridos
Multiple Feedback Queue

Como saber a priori se o processo é CPU-bound ou I/Obound?

MFQ usa abordagem de prioridades dinâmicas

Adaptação baseada no comportamento de cada processo

Usado no VAX / VMS (arquiteturas de computadores)
Round-Robin FIFO Híbrido SJF SRJN
Escalonamentos Híbridos
Multiple Feedback Queue

Novos processos entram na primeira fila (prioridade mais alta)

Se acabar o quantum desce um nível

Se requisitar E/S sobe um nível
• Lembrando: I/O-bound são prioritários
...
...
Fila 1 Q
u
a
Fila 2 n
t
u
m
...
Fila n
P
r
i
o
r
i
d
a
d
e
Round-Robin FIFO Híbrido SJF SRJN
Escalonamentos
baseados no tempo de execução

Shortest Job First (não-preemptivo)

Shortest Remaining Job Next (preemptivo)

Melhora o tempo de resposta

Não é justo: pode causar estagnação (starvation)
• Pode ser resolvida alterando a prioridade dinamicamente
Exemplo de escalonamento job mais curto primeiro (Shortest Job First – SJF)
Shortest Job First
Shortest Job First



Algoritmo ótimo, fornece o menor tempo médio de espera para um conjunto de
processos
Processos I/O bound são favorecidos
Dificuldade é determinar o tempo do próximo ciclo de CPU de cada processo,
porém:
• Pode ser empregado em processos batch (long term scheduler)
• Prever o futuro com base no passado
Escalonamento em Sistemas Interativos
Um algoritmo de escalonamento com quatro
classes de prioridade
47
Como definir a Prioridade?





Prioridade Estática:
Processo é criado com determinada prioridade e esta é
mantida durante todo o processo.
Prioridade Dinâmica:
Prioridade é ajustada de acordo com o estado de execução
do processo e/ou sistema.
Ex. ajustar a prioridade em função da fração de quantum
que foi realmente utilizada pelo processo.
• q = 100ms
• Processo A = 2ms -> nova prioridade = 1/0.02 = 50
• Processo B = 50ms -> nova prioridade = 1/0.5 = 2
Problemas com prioridades

Processos de baixa prioridade podem não ser executados

Postergação indefinida (starvation)


Processo com prioridade estática pode ficar mal classificado
e ser penalizado ou favorecido em relação aos demais
Solução: múltiplas filas de realimentação.
Conclusões
Como funcionam dois ou mais programas ao mesmo tempo?

Conceitos
• Processos x Threads (processos
leves)

Interrupção
• Cooperação hardwaresoftware

Escalonamento
• Tipos de processos
- CPU-bound x I/O-bound
- Lote (batch) x interativo
• Filas de escalonamento
- Long-term (admissão)
- Short-term
- I/O

Escalonamento (cont.)
• Objetivos
- Justiça
- Eficiência
- Tempo de Resposta
• Conceitos
- Preempção
- Quantum (time-slice)
- Troca de contexto
• Algoritmos
- Propósito x Complexidade x
Eficiência
Referências


Sistemas Operacionais Modernos – 3ª Edição. A.
Tanenbaum, 2008.
Modern Operating Systems 3 e. Prentice-Hall, 2008.
Download