slide escalonamento
TRANSCRIPT
SO - Prof. Edilberto Silva
Sistemas Operacionais
Prof.: Edilberto M. Silvahttp://www.edilms.eti.brhttp://www.edilms.eti.br
Aula 10Aula 10EscalonamentoEscalonamento
Baseado no material disponibilizado por:
Prof. José Juan Espantoso
SO - Prof. Edilberto Silva 2
Sumário
Introdução
Funções Básicas
Critérios de escalonamento
Escalonamentos não-preemptivos e preemptivos
Escalonamento FIFO
Escalonamento SJF
Escalonamento cooperativo
Escalonamento circular
Escalonamento por prioridades
Escalonamento circular com prioridades
SO - Prof. Edilberto Silva 3
Política de escalonamento – critérios utilizados para selecionar qual processo será escolhido para fazer uso do processador
A rotina do sistema operacional que tem a função de implementar os critérios da política de escalonamento é denominada escalonador(scheduler)
A rotina do sistema operacional responsável pela troca de contexto dos processos, após o escalonador determinar qual processo fará uso do processador, é denominada dispatcher.
Escalonamento de Processos
SO - Prof. Edilberto Silva 4
Aplicações Concorrentes
• Escalonamento de Processos:Algoritmo para determinar qual processo deve tomar o processador para si, em um determinado momento. Algumas características são desejáveis em um bom algoritmo:– Justiça: garantir que todos os processos tenham chances
iguais de uso do processador;– Eficiência: manter o processador ocupado 100% do
tempo;– Tempo de resposta: minimizar o tempo de resposta para
usuários interativos;– Turnaround: minimizar o tempo que os usuários batch
devem esperar pela saída;– Throughput: maximizar o número de jobs processados na
unidade de tempo, usualmente hora, sistemas batch.
SO - Prof. Edilberto Silva 5
As características do sistema operacional (sistemas em lote, sistemas interativos, sistemas de tempo real) diferencia quais aspectos serão considerados na política de escalonamento. Por exemplo, sistemas de tempo compartilhado exige que o escalonamento trate os processos de forma igual, evitando starvation. Em sistemas de tempo real, o escalonamento deve priorizar a execução de processo críticos em detrimento da execução de outros processos.
De uma maneira geral, qualquer política de escalonamento busca otimizar a utilização do processador e o throughput, enquanto tenta diminuir os tempos de turnaround, espera e resposta.
Escalonamento de Processos
SO - Prof. Edilberto Silva 6
Escalonamento de Processos
E s t a d o d eE s p e r a
E s t a d o d eE x e c u ç ã o
E s t a d o d eP r o n t o
E s c a l o n a me n t o
SO - Prof. Edilberto Silva 7
Aplicações Concorrentes
Tipo de Escalonamento de Processos:– Os algoritmos de escalonamento podem ser divididos
basicamente em duas categorias:• Escalonamento Preemptivo;• Escalonamento Não-Preemptivo
– Um algoritmo de escalonamento é dito preemptivo quando o sistema pode interromper um processo em execução para que outro processo utilize o processador;
• Permite que o sistema dê atenção imediata a processos mais prioritários;
• Proporciona melhores tempos de resposta em sistemas de tempo compartilhado;
– No algoritmo não-preemptivo quando um processo ganha o direito de utilizar a UCP, nenhum outro pode lhe tirar esse recurso;
• Utilizado principalmente no processamento bach;
SO - Prof. Edilberto Silva 8
Escalonamento de Processo
First-In-First-Out (FIFO):– Nesse escalonamento o processo que chegar
primeiro (first-in) é o primeiro a ser selecionado para execução (first-out);
– Considerações: • Seu algoritmo de implementação é bastante simples sendo
necessário apenas uma fila;
• Nesse esquema, um processo quando ganha o processador, utiliza a UCP sem ser interrompido;
SO - Prof. Edilberto Silva 9
Escalonamento de Processo
• First-In-First-Out (FIFO):
U C P
E s t a d o d eC r i a ç ã o
E s t a d o d eE s p e r a
F i l a d o s p r o c e s s o s n o e s t a d o d e P r o n t o
E s t a d o d eT é r m i n o
SO - Prof. Edilberto Silva 10
Escalonamento de Processo
P r o c e s s o A
P r o c e s s o B
P r o c e s s o C
1 0 1 4 1 7
P r o c e s s o A
P r o c e s s o B
P r o c e s s o C
4 7 1 7 u . t .
u . t .
P r o c e s s oT e m p o d e
p r o c e s s a d o r( u . t . )
A
B
C
1 0
4
3
Exemplo FIFO
SO - Prof. Edilberto Silva 11
Escalonamento de Processos
• Menor Job Primeiro (Shortest Job First - SJF)– privilegia processos de tamanho menor, ou seja,
processos que ocupam por menos tempo o processador. Idealizado para processamento em lote (batch);
– Reduz o tempo médio de espera dos processos em relação ao FIFO;
– O problema desse algoritmo é determinar, exatamente, quanto tempo de UCP cada processo necessita para terminar seu processamento;
SO - Prof. Edilberto Silva 12
Escalonamento de Processos
• Menor Job Primeiro (Shortest Job First - SJF)
P r o c e s s o A
P r o c e s s o B
P r o c e s s o C
3 7 1 7 u . t .
SO - Prof. Edilberto Silva 13
Escalonamento de Processos
• Round Robin (ou Circular): – A cada processo é atribuído um intervalo de tempo
(Quantum) durante o qual esse processo poderá usar o processador. Se, após esse intervalo, o processo ainda precisar de processamento, esse processo retornará ao final da fila para aguardar a sua próxima vez.
SO - Prof. Edilberto Silva 14
Especificação de Concorrência em Programas
• Round Robin (Considerações):– Implementação relativamente fácil, pois o escalonador só
precisa manter uma lista de processos que estão prontos para executar;
– Dificuldade na determinação do tamanho do quantum, pois chavear o processador para processos diferentes implica em realizar-se troca de contexto (salvar e restaurar registradores e mapas de memória, atualizar várias tabelas e listas, entre outras tarefas):
– Quantum muito pequeno causa sucessivas trocas de contexto, diminuindo a eficiência do processador;
– Quantum muito grande pode levar a tempos de respostas inaceitáveis a usuários interativos.
SO - Prof. Edilberto Silva 15
Escalonamento de Processos
Round Robin (ou Circular)
P r e e m p ç ã o p o r t e m p o
U C P
E s t a d o d eC r i a ç ã o
E s t a d o d eE s p e r a
F i l a d o s p r o c e s s o s n o e s t a d o d e P r o n t o
E s t a d o d eT é r m i n o
SO - Prof. Edilberto Silva 16
Escalonamento de Processos
Round Robin (ou Circular)
P r o c e s s o A
P r o c e s s o B
P r o c e s s o C
2 4 1 7 u . t .6 8 1 0 1 1
SO - Prof. Edilberto Silva 17
Escalonamento de Processos
Round Robin (ou Circular)
P r o c e s s o A
P r o c e s s o B
P r o c e s s o C
2 4 1 7 u . t .6 8 1 0 1 1
SO - Prof. Edilberto Silva 18
Escalonamento de Processos
• Escalonamento por prioridade– a cada processo é atribuída uma prioridade, e o processo
pronto que possuir maior prioridade será aquele que executará primeiro.
– A idéia é que nem todos os processos podem ser tratados de maneira igualitária, pois há fatores externos que podem determinar que alguns processos tenham mais urgência que outros.
– Problema: processos com alta prioridade podem monopolizar o processador. Para evitar esse inconveniente, pode-se decrementar (a cada interrupção de tempo) a prioridade do processo que está executando. Se esse decremento tornar o processo com uma prioridade menor que algum outro da fila, deverá ocorrer troca de contexto.
SO - Prof. Edilberto Silva 19
Escalonamento de Processos
• Escalonamento por prioridade– Prioridades podem ser atribuídas estática ou
dinamicamente, Ou seja, pode-se atribuir uma prioridade ao processo antes dele começar a executar (estática) ou em tempo de execução (dinâmica).
– Alguns sistemas operacionais permitem que o próprio dono do processo (usuário) estabeleça a prioridade do seu processo. É o caso do sistema UNIX, que permite que o usuário estaticamente determine que o seu processo não possui prioridade alta (comando nice e execução em background - &).
– Pode-se fazer um escalonamento híbrido, utilizando tanto prioridades quanto round robin, através da criação de classes de prioridades, e dentro de cada classe usa-se quantum para os processos.
SO - Prof. Edilberto Silva 20
Escalonamento de Processos
• Escalonamento por prioridade
U C P
E s t a d o d eT é r m i n o
F i l a s d o s p r o c e s s o s n o e s t a d o d e P r o n t o
P r i o r i d a d e P 1
P r i o r i d a d e P 2
P r i o r i d a d e P n
E s t a d o d eC r i a ç ã o
E s t a d o d eE s p e r a
P r e e m p ç ã o p o r p r i o r i d a d e
SO - Prof. Edilberto Silva 21
Escalonamento de Processos
• Escalonamento por prioridade
P r o c e s s o A
P r o c e s s o B
P r o c e s s o C
3 1 3 1 7 u . t .
P r o c e s s oT e m p o d e
p r o c e s s a d o r( u . t . )
A
B
C
1 0
4
3
P r i o r i d a d e
2
1
3
SO - Prof. Edilberto Silva 22
Especificação de Concorrência em Programas
Escalonamento por Múltiplas Filas– esse algoritmo implementa diversas filas de processo no
estado de pronto, onde cada processo é associado exclusivamente a uma delas.
– Cada fila possui um mecanismo próprio de escalonamento, em função das características do processo.
– Considerações:• Nesse esquema, os processos devem ser classificados
previamente, em função do tipo de processamento, para poderem ser encaminhados a uma determinada fila;
• Cada fila possui uma prioridade associada, que estabelece quais filas são prioritárias em relação às outras;
• O sistema só pode escalonar processo se uma fila se todas as outras de prioridade maior estiverem vazias.
SO - Prof. Edilberto Silva 23
Escalonamento de Processos
Escalonamento por Múltiplas Filas
U C P
F i l a d e p r o c e s s o s d o s i s t e m a
F i l a d e p r o c e s s o s i n t e r a t i v o s
F i l a d e p r o c e s s o s b a t c h
M a i o rp r i o r i d a d e
M e n o rp r i o r i d a d e
SO - Prof. Edilberto Silva 24
Escalonamento de Processos
• Múltiplas Filas com Realimentação: – semelhante ao escalonamento anterior, porém os processos
não permanecem em uma mesma fila até o término do processamento;
– Nesse escalonamento, o sistema tenta identificar dinamicamente o comportamento de cada processo, ajustando assim suas prioridades de execução;
– Um processo, ao ser criado, entra no final da fila de mais alta prioridade. Cada fila implementa o mecanismo de FIFO;
– Quando um processo em execução deixa a UCP, seja por preempção de prioridade ou por solicitação, ele é reescalonado dentro da mesma fila. Caso o processo esgote seu quantun de tempo, ele é redirecionado para uma fila de menor prioridade;
– A fila de mais baixa prioridade implementa o mecanismo do escalonador circular;
SO - Prof. Edilberto Silva 25
Escalonamento de Processos
• Múltiplas Filas com Realimentação
U C P
F i l a 1 ( F I F O A d a p t a d o )
P r e e m p ç ã o p o r t e m p o
F i l a 2 ( F I F O A d a p t a d o )
P r e e m p ç ã o p o r t e m p o
F i l a 3 ( F I F O A d a p t a d o )
P r e e m p ç ã o p o r t e m p o
F i l a n ( C i r c u l a r )
P r e e m p ç ã o p o r t e m p o
Me
nor
Prio
rid
ade
Ma
ior
Prio
rid
ade
Mai
or f
atia
de
tem
po
Me
nor
fati
ade
tem
po