Baixe Algoritmos de Escalonamento em Sistemas Operacionais I e outras Notas de estudo em PDF para Algoritmos, somente na Docsity!
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 1
Algoritmos de Escalonamento
Marcelo Johann
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 2 Na aula anterior…
Threads
Sincronização
Semáforos
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 3 Plano da aula de Hoje
1. FIFO
2. SJF
3. Prioridade
4. Round-Robin
5. Múltiplas Filas
6. Garantido
7. Lotérico
8. Tempo-Real
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 4 Escalonamento
- Definição e critérios
- Quando ocorre?
- Ao acontecer a transição “executando” para “bloqueado” (pergunta: quando isso acontece?)
- Ao acontecer a transição “executando” para “pronto” (pergunta: quando isso acontece?)
- Ao encerrar-se um processo. 1-2-3: o processo para de executar, e isso dispara o escalonador.
- Ao acontecer a transição “bloqueado” para “pronto”.
- Pode ter sido liberado um processo importante. INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 5 Vários níveis de escalonamento
- Escalonador de curto prazo
- Decide da alocação da CPU
- Tempo de resposta: faixa da ms
- Escalonador de médio prazo
- Decide do gerenciamento de memória
- Swap
- Tempo de resposta: faixa de 100 ms
- Escalonador de longo prazo
- Gerencia a criação dos processos
- Escalona os acessos ao disco INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 6 Escalonador vs. dispachante
- Distingue-se duas partes:
- O escalonador é responsável pela escolha do processo “eleito” para usar a CPU.
- O dispachante é responsável pelo lado técnico de
- Salvar o processo que estava usando a CPU;
- Executar o processo eleito na CPU.
- Isso se chama efetuar a troca de contexto. Salvar Contexto A Salvar Contexto B Restaurar Contexto B Restaurar Contexto A Processo A Processo B
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 7 Preemptar ou não preemptar?
- Não-preempção : quando um processo executa, ele
não pode ser interrompido por um fator externo.
- Deixa a CPU ou por vontade própria (sleep/yield), ou porque terminou.
- Windows 3.1, Apple Mac. OS antigo (<8)
- Os casos 1-2-3 tinham a ver com não-preempção.
- Preempção : ato de interromper a execução de um
processo para executar um outro.
- Sis. Op. modernos (Windows 95+, Linux)
- Necessita sincronização!
- Casos 3 e 4 implicam, potencialmente, em pre-empção. INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 8 Alguns algoritmos não-preemptivos - FIFO (First in, First out) - Primeiro chegado, primeiro atendido; - O mais simples; - SJF (Shortest Job First) - Necessita informações a respeito dos processos e
de sua duração!
- Extremamente eficiente.
- Prioridades
- Generalização do SJF INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 9 Algoritmo First in – First out
- O processo pronto há mais tempo passa a
usar a CPU.
- Exemplo: 1 2 0 Hora Chegada C 4 B 3 A 24 Processo Duração A B C Duração Processos Diagrama de GANTT
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 10 FIFO – Limitações
- A duração total não depende da ordem de escalonamento!
- Espera por processo:
- A espera 0 sec.
- B espera 22 sec.
- C espera 23 sec.
- Espera média: (0+22+23)/3 = 15 sec.
- Que tal com a ordem de chegada C-B-A?
- C espera 0 sec.
- B espera 2 sec.
- A espera 6 sec.
- Espera média: (0+2+6)/3 = 2,66 sec!
- FIFO não é nada igualitário, pelo contrário é muito “ditatorial”.
- Outro parâmetro: é inteligente escalonar primeiro os processos I/O bound! INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 11 Algoritmo Shortest Job First
- Existem sistemas onde se tem informação
a respeito dos processos ( jobs );
- Sistemas de batches não-interativos
- Em geral, quer-se minimizar o turnaround (tempo de
espera dos “clientes”);
- Seja ti o tempo de uso da CPU do processo i
(no momento da tomada de decisão!)
- O dono de i espera W (^) i = Σj=1,…,i tj sec.
- Mostra-se por indução que W (^) i é mínimo quando os tj estão em ordem crescente.
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 12 SJF em nosso exemplo A B C Duração Processos Diagrama de GANTT 0 0 0 Hora Chegada C 4 B 3 A 24 Processo Duração
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 19 Round-Robin: observações
- Deve-se ter um algoritmo de desempate entre os
processos prontos quando há uma interrupção…
- FIFO, SJF, prioridades…
- Se o quantum aumenta muito, se obtém novamente
um FIFO.
(comparar com 4 (SJF) e 17 (FIFO)) INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 20 Round-Robin: limitações e problemas
- O grande interesse do R.R. é sua “equidade”
- Todos os processos acabam tendo uma chance regular de executar.
- Como definir o quantum?
- Muito grande: = FIFO!
- Muito pequeno: só se faz troca de contexto…
- Processos I/O bound são prejudicados!
- Esperam tanto como os outros, mas não chegam a usar seu quantum todo!
- Solução: juntar Round Robin e prioridades com preempção INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 21 Múltiplas Filas : Prioridade preemptiva
- Define-se prioridades para os processos.
- Logo que surgir um processo com maior prioridade que o que está executando, ele preempta o mesmo que volta para a fila dos “prontos”.
- Caso haja mais de um processo com uma dada prioridade, se aplica um segundo algoritmo de desempate.
- Tipicamente Round-Robin;
- Também pode ser um FIFO ou SJF.
- Neste caso, obtém-se uma lista por nível de prioridades.
- Quando uma fila está vazia, considera-se a lista de prioridade inferior.
- Múltiplas filas, com realimentação.
- Pode ter um algoritmo distinto de desempate em cada fila.
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 22 Definição das prioridades
- Estática: a prioridade é dada na criação do processo
- Pelo Sis. Op., pelo usuário…
- Problema: há risco de postergação indefinida (starvação) para um processo com baixa prioridade.
- Dinâmica: a prioridade evolui durante o ciclo de vida
do processo.
- Começa com um valor estático
- Evolui depois:
- Aumenta a medida que o processo usa a CPU;
- Aumenta proporcionalmente à fração do quantum que não usou.
- Assim, os processos I/O bound voltam na fila de espera com alta prioridade! INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 23 Escalonamento Garantido
- Em um sistema com n processos, idealmente cada processo deve receber 1/n do tempo
- Nenhum dos algoritmos anteriores oferece qualquer garantia ou tenta se aproximar disso
- Seja h o tempo total gasto por um processo na CPU
- Seja t o tempo transcorrido desde sua criação
- Então t/n é o tempo que esse processo deveria ter usado
- Assim, f=h/(t/n) é um fator que determina se o processo usou mais ou menos do que deveria.
- Se um processo tem f=0.5 , usou metade do tempo justo.
- Pode-se escalonar os processos por menor valor de f.
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 24 Escalonamento Lotérico (Waldspurger e Weihl, 1994)
- O sistema distribui bilhetes aos processos, e faz um sorteio cada vez que precisa selecionar um processo para a CPU.
- Se cada processo tiver x% dos bilhetes, deve ganhar a CPU x% das vezes
- Em teoria, um processo pode nunca ser sorteado.
- Na prática, as probabilidades garantem que isso não ocorre.
- É um escalonamento responsivo (sem filas).
- Processos prioritários podem ganhar mais bilhetes
- Processos cooperativos podem trocar bilhetes: Ex: clientes podem passar bilhetes para servidores
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 25 Escalonamento para Tempo Real
- Utiliizados em Sistemas Operacionais de Tempo Real
- Hard Real Time
- Soft Real Time
- Processos curtos, previsíveis, tempo conhecido
- Eventos periódicos e aperiódicos
- Sistemas Escalonável: somatórios de tempos/periodos < 1
- Algoritmo de Taxa Monotônico (RM, Liu e Layland, 1973)
- Prazo Final mais Cedo Primeiro (EDF)
- Folga Mínima Primeiro (MLF)
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 26 Mecanismo vs Política
- Mecanismo é o Algoritmo e/ou a Estrutura
- Política é o conjunto de regras que é usado
para atribuir os números ou classes