Sistemas Operacionais
Aula 3: Escalonamento
Referências
Porque Escalonar ?
Quando Escalonar ?
Escalonamento ocorre quando existem:
Ou seja, quando muda o processo que está
executando.
Troca de contexto
Importante porque:
Critérios de Otimização
Políticas de escalonamento devem:
Muitas políticas de escalonamento existem! Cada uma atende um objetivo.
Preempção X Não Preempção
Políticas não preemptivas:
Políticas preemptivas:
A partir de agora processos e threads serão equivalentes a não ser quando citado.
Política de Escalonamento -- FIFO
Ou até bloquear por E/S ou sincronização.
Shortest Job First -- SJF
Solução: Rodar os processos menores primeiro.
Round-Robin
Outra solução: Adotar um quantum de tempo. Quando o processo esgota seu quantum, é interrompido e colocado no fim da fila de ready.
Prioridades
Cada processo tem uma prioridade:
Usado em sistemas de tempo real.
Filas Múltiplas
Filas Múltiplas com Realimentação
Processos podem mudar de filas.
Exemplo: 4.3 BSD Unix
Filas múltiplas com realimentação:
Prioridades (i.e. a qual fila o processo pertence) mudam baseado em:
Efeito: Processos interativos rodam mais rápidos. Processos com muita CPU rodam depois. Mas as prioridades mudam dinamicamente.
Avaliação Analítica
Dada uma certa política de escalonamento, como ela se comporta na prática ?
Teoria de Filas
Simulação
Verificação Automática
Escalonamento: Resumo