Instituto de Informática
-U
FRGS
Sistemas Operacionais
Gerência do processador
(Escalonamento)
Aula 05
Instituto d e Informática -UFRGSIntrodução
Objetivos de um sistema operacional são:
Eficiência: relação entre o uso efetivo de um recurso e a quantidade desse recurso disponível no sistema para uso
Conveniência: qualidade de serviço prestado ao usuário Não interferência
É comum o compromisso entre eficiência e conveniência
Duas visões: uma do usuário (conveniência), outra do sistema (eficiência) Deve ser eficaz: implica “cuidar” da eficiência sem esquecer da conveniência
Noção de escalonamento de recursos
Processador, memória e dispositivos de E/S
Sistemas Operacionais 2 A. C arissimi -21-mars-1 8
Escalonamento vale tanto para processos como para threads
Instituto d e Informática -UFRGS
Escalonamento
Conceito genérico:
Ação de selecionar a próxima requisição a ser atendida por um serviço Cinco eventos: chegada, admissão, seleção, preempção e conclusão
Existem diferentes níveis de escalonamento de processos
Curto prazo: gerência do processador Médio prazo : gerência de memória
Longo prazo : controle de admissão (grau de multiprogramação)
A. C arissimi -21-mars-1 8 seleção término preempção chegada admissão Escalonador Recurso Fila de espera Instituto d e Informática -UFRGS
Níveis de escalonamento
A. C arissimi -21-mars-1 8 apto execução bloqueado término E/S ou sincronização Evento (E/S ou sincronização) dispatcher apto suspenso Bloqueado suspenso Criação Erro! Longo prazo Curto prazo Médio prazo Gerência do processador Gerência do memória Controle de multiprogramação cedênciaInstituto
d
e Informática
-UFRGS
Escalonador de curto prazo
Escalonamento curto prazo
Processo de seleção de qual processo (thread) no estado apto usará a CPU Algoritmo de escalonamento: COMO a
escolha é feita Despachante (dispatcher):
responsável pela troca de contexto Latência: tempo para parar um processo
e iniciar o próximo Sistemas Operacionais 5 A. C arissimi -21-mars-1 8 apto execução bloqueado término E/S ou sincronização Evento dispatcher P2 P1 Salva contexto de P1 Despachante recupera contexto de P2 Escalonador (política) Modo usuário Modo núcleo P1 Salva contexto de P2 Despachante recupera contexto de P1 Cedência Instituto d e Informática -UFRGS
Gerência do processador
O escalonador é executado QUANDO um processo
é criado*
de executando vai para bloqueado de executando retorna para apto de bloqueado passa para apto* termina a execução
Conceito de preempção
Retirada involuntária (cedência) de um processo do estado “executando” Pode ser por tempo ou por prioridade
Escalonadores preemptivos e não preemptivos (cedência voluntária)
Sistemas Operacionais 6 A. C arissimi -21-mars-1 8 apto executando bloqueado término E/S ou sincronização Evento Cedência
*se o escalonador for preemptivo por prioridade CPU livre d e Informática -UFRGS
QUEM chama o escalonador?
Interrupção de software (chamada de sistema)
Término
Liberação voluntária da CPU Operação de E/S
Primitiva de sincronização
Interrupção de hardware
Tempo
Conclusão da operação de E/S
Escalonadores
Não preemptivo ou cooperativo: apenas via interrupção de software Preemptivo: interrupção de software e interrupção de hardware
C arissimi -21-mars-1 8 d e Informática -UFRGS
Objetivos gerais do escalonamento
Sistemas não interativos (em lote ou batch)
Maximizar o número de tarefas por unidade de tempo (vazão ou throughput) Minimizar o tempo entre submissão e término (tempo de retorno ou turnaround) Minimizar o tempo no estado apto (tempo de espera ou waiting time)
Manter a CPU ocupada a maior parte do tempo
Sistemas interativos
Responder rapidamente as requisições (tempo de resposta ou response time) Satisfazer as expectativas dos usuários (proporcionalidade, ou seja, tempo
esperado para executar uma tarefa)
Sistemas de tempo real
Cumprir prazos no atendimento de eventos Previsibilidade ou determinismo C arissimi -21-mars-1 8 Ainda: Justiça Respeitar políticas locais
Instituto
d
e Informática
-UFRGS
Ciclo de CPU e ciclo de E/S
Processo realiza ciclos de CPU e de E/S na sua execução
Classificação de acordo com a duração relativa desses ciclos
Limitado por CPU (CPU bound): possui longos ciclos de uso da CPU Limitado por E/S (I/O bound): possui curtos ciclos de uso da CPU e faz E/S
Objetivo é mesclar adequadamente processos CPU bound e I/O bound
“Sucesso” do escalonador
Uso eficiente do processador e dos recursos de E/S (sobreposição dos ciclos)
Sistemas Operacionais 9 A. C arissimi -21-mars-1 8 CPU CPU
Pi CPU E/S CPU
E/S E/S PJ (espera) Instituto d e Informática -UFRGS
Algoritmos de escalonamento
Algoritmos básicos de escalonamento
First Come, First Served Shortest Job First Por prioridade Round-Robin
Múltiplas filas e múltiplas filas com realimentação
Há outros
Variações e combinação dos algoritmos básicos Tempo real (fora do contexto da disciplina)
Sistemas Operacionais 10 A. C arissimi -21-mars-1 8 apto executando bloqueado término E/S ou sincronização Evento Instituto d e Informática -UFRGS
First Come, First served (FCFS)
Implementado por uma fila em política FIFO
Processos que entram em “apto” são postos no final da fila
Seleciona para execução o processo “apto” que está na frente da fila
Escalonador do tipo não preemptivo
Vantagens e desvantagens
Simples de implementar Tempo médio de espera variável Efeito comboio
Processos I/O bound esperam (em apto) por um CPU bound Subutilização de I/O
Processos saem do bloqueado e esperam sua vez no estado apto
A. C arissimi -21-mars-1 8 Instituto d e Informática -UFRGS
Exemplo: First-Come, First-Served (FCFS)
Ordem de chegada: P1, P2, P3 Diagrama de Gantt: Tempo de espera : P1= 0; P2=24; P3=27 Tempo médio: (0 + 24 +27)/3 = 17 P1 P2 P3 24 27 30 0
Processo Ciclo CPU
P1 24 P2 3 P3 3 Ordem de chegada: P2, P3, P1 Diagrama de Gantt: Tempo de espera : P1= 6; P2=0;P3=3 Tempo médio: (6+ 0 +3)/3 = 3 P1 P3 P2 6 3 30 0 A. C arissimi -21-mars-1 8 apto executando bloqueado término E/S ou sincronização Evento
Instituto
d
e Informática
-UFRGS
Shortest Job First (SJF)
Empregado em sistemas de lote (batch) antigos
Tarefa (job): “pacote fechado” (processamento e E/S)
Ordena crescentemente a lista de “aptos” pela duração da tarefa
É um tipo de prioridade
Pode ser não preemptivo ou preemptivo
Depende o que acontece com a tarefa que chega no “apto” com uma duração menor do que a tarefa que está usando o processador
Versão preemptiva: Shortest Remaining Time First (SRTF)
Vantagens e desvantagens
Algoritmo ótimo (tempo de espera) Conhecer previamente a duração da tarefa
Sistemas Operacionais 13 A. C arissimi -21-mars-1 8 Instituto d e Informática -UFRGS Não preemptivo Diagrama de Gantt:
Tempo médio de espera:
=(0+ (8-1) + (12-3) + (17-2))/4 = 7,75
Exemplo: Shortest Job First (não preemptivo)
P1 P2 P4
12 26
0
P3
8 17
Processo Chegada Duração tarefa
P1 0 8 P2 1 4 P3 2 9 P4 3 5 Preemptivo Diagrama de Gantt:
Tempo médio de espera:
=(0+(1-1)+(5-3)+(10-1)+(17-2))/4 = 6.5 P1 P2 P4 5 26 0 P3 1 10 P1 17 Sistemas Operacionais 14 A. C arissimi -21-mars-1 8 apto executando bloqueado término E/S ou sincronização Evento d e Informática -UFRGS
Evolução do Shortest Job First
Um processo tem ciclos de CPU e de E/S
Ordenar a lista de “aptos” baseado no ciclo de CPU, não na duração total Vantagem sobrepor processamento com operações E/S (multiprogramação)
Estratégia é ordenar crescentemente a lista de “aptos” em função
do próximo ciclo de CPU
Seria algo do tipo Shortest Next CPU burst
Desvantagem continua
como conhecer o ciclo futuro de uso do processador?
C
arissimi
-21-mars-1
8
Fazer estimativa de uso futuro baseado no comportamento passado Solução possível de Informática -UFRGS C arissimi -21-mars-1 8
Prevendo o futuro...
Pode ser feito utilizando os tempos de ciclos já passados e
realizando uma média exponencial
Forma simplificada:
Tempo_futuro_estimado = tempo_ultimo_ciclo + tempo_passado
Fator
fornece importância para o passado recente (último ciclo)
ou para a história (ciclos passados)
Instituto d e Informática -U FRGS Sistemas Operacionais 17 A. C arissimi -21-mars-1 8
Exemplo de “previsão do futuro”
Parâmetros: =0.5 0=10
Ciclo de CPU:
Real: 6 4 6 4 13 13 13
Previsto: 10 8 6 6 5 9 11 12 (valores truncados) Ciclo real Previsto n+1 Previsto n Instituto d e Informática -UFRGS
Escalonamento por prioridade
Prioridade é um valor numérico usado para ordenar processos
Não há regra fixa para interpretar se menor valor é maior ou menor prioridade Em caso empate usa um critério de desempate (tie-break)
Prioridade definida de forma
Externa: fixa ,ou estática, via programa ou configuração Interna: dinâmica, em função de consumo de recursos
Pode ser não preemptivo ou preemptivo
Depende do que é feito quando processo de maior prioridade chega no apto
Problema com prioridades: inanição (starvation)
Solução paliativa: envelhecimento (agging)
Aumento (incremental) temporário de prioridade até processo ser executado, após execução retorna a prioridade original
Sistemas Operacionais 18 A. C arissimi -21-mars-1 8 Instituto de Informática -UFRGS Diagrama de Gantt:
Tempo médio de espera: =(0 + 1 + 6 + 16 + 18)/5 = 8,2
Exemplo: por prioridade
Processo Ciclo CPU Prioridade
P1 10 3 P2 1 1 P3 2 4 P4 1 5 P5 5 2 A. C arissimi -21-mars-1 8 Menor valor, maior prioridade apto executando bloqueado término E/S ou sincronização Evento Instituto d e Informática -UFRGS
Round Robin (RR)
FCFS com preempção por tempo
Implementação por uma fila circular (política FIFO)
Cada processo recebe um tempo máximo para usar a CPU
Fatia de tempo (quantum ou time slice)
Ao terminar o quantum é retirado da CPU e volta a fila de aptos
Problema: dimensionamento do quantum q
q →∞ : degringola para política FCFS (FIFO)
q ≈ 0 : excesso de chaveamento de contexto (perda de eficiência) Eficiência versus conveniência
A.
C
arissimi
-21-mars-1
Instituto d e Informática -U FRGS
Dimensionamento do quantum
Sistemas Operacionais 21 A. C arissimi -21-mars-1 8 q q q e e...
e N *(q + e) Eficiência Conveniência q´ q’...
q´ N *(q´ + e) q´ ≈ e q >> eSolução: quantum variável Solução: quantum variável
e e e
q = quantum; e = escalonador + dispachter
Instituto d e Informática -U FRGS Diagrama de Gantt:
Tempo médio de espera: =(0+ 4 + 7 + 6)/3 = 5,66
Exemplo: Round Robin
Processo Ciclo CPUP1 24 P2 3 P3 3 Sistemas Operacionais 22 A. C arissimi -21-mars-1 8
quantum = 4 apto executando
bloqueado término E/S ou sincronização Evento d e Informática -UFRGS
Escalonamento multinível
Quando os processos podem ser classificados em grupos
Exemplo: foreground x background; interativos x tempo real, sistema interativos x batch... C arissimi -21-mars-1 8 CPU Evento
Fila de bloqueados Espera por evento Preempção Fila apto 0 Dispatch Término Fila apto 1 Fila apto n Prioridade 0 Prioridade 1 Prioridade n executando Cada grupo é associado a uma fila
Prioridades diferentes Busca um processo da
primeira fila de mais alta prioridade não vazia
Cada fila pode ter uma política diferente
Pode ser não preemptivo ou preemptivo
Não é propriamente uma política
d
e Informática
-UFRGS
Escalonamento multinível com realimentação
C arissimi -21-mars-1 8 CPU Evento
Fila de bloqueados Espera por evento Preempção Fila apto 0 Dispatch Término Fila apto 1 Fila apto n Prioridade 0 Prioridade 1 Prioridade n executando Baseado em prioridades dinâmicas
Pode ser preemptivo ou não preemptivo
Aspectos a definir Quantidade de filas
Algoritmo de escalonamento por fila
Método para fazer o upgrade e o downgrade da prioridade Fila de entrada do processo
Instituto
d
e Informática
-UFRGS
Um ajuste a ser feito...
Escalonamento por fração justa (fair share)
Um escalonador deve ser justo com os usuários do sistema
Tomar decisões baseados só em processos leva a injustiças
Ex: usuário 1 com 9 processos e usuário 2 com 1 processo. O usuário 1 potencialmente usaria 90% do processador.
Solução:
Considerar o proprietário do processo como parte do procedimento da política de escalonamento
Dois usuários devem receber 50% do processador independente do número de processos que cada um deles detém
Sistemas Operacionais 25 A. C arissimi -21-mars-1 8 Instituto d e Informática -UFRGS Sistemas Operacionais 26 A. C arissimi -21-mars-1 8
Leituras complementares
A. Tanenbaum. Sistemas Operacionais Modernos (3
aedição),
Pearson Brasil, 2010.
Capítulo 2: seção 2.4
A. Silberchatz, P. Galvin; Sistemas Operacionais com Java. (7
aedição). Campus, 2008.
Capítulo 5 (seções 5.1 a 5.5)