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