O documento discute vários algoritmos de escalonamento de processos em sistemas operacionais. Aborda os conceitos de escalonador de CPU, escalonamento preemptivo e não-preemptivo, e características a serem consideradas na seleção de um algoritmo de escalonamento, como utilização da CPU, número de processos completados e tempos de resposta, retorno e espera. Em seguida, explica em detalhes algoritmos como FCFS, SJF, escalonamento por prioridades, Round Robin e escalonamento por múltiplas filas.
2. 2
ESCALONADOR DE CPU
Seleciona qual processo da fila de PRONTO vai
ser executado;
Dois esquemas de escalonamentos:
Não-preemptivo
O processo é alocado pela CPU e depois
passa para o estado de pronto ou é
terminado.
Preemptivo
Interrompe a execução do processo para que
outro possa executar.
3. 3
ALGORITMOS DE ESCALONAMENTO
CARACTERÍSTICAS
A seleção de um algoritmo de escalonamento
envolve:
1) Utilização da CPU
A CPU deverá ficar ocupada o máximo
possível;
2) Número de processos completados por unidade de
tempo
Se a CPU estiver ocupada, o trabalho está
sendo feito.
4. 4
ALGORITMOS DE ESCALONAMENTO
CARACTERÍSTICAS
A seleção de um algoritmo de escalonamento
envolve:
3 ) Tempo de retorno: intervalo entre a submissão do
processo até ele concluir
Incluindo o tempo de espera para acessar
memória, execução na CPU e operações de I/
O.
4) Tempo de espera: soma dos períodos gastos
esperando na fila de prontos.
5) Tempo de resposta: intervalo de submissão do
processo até a resposta.
5. 5
ALGORITMOS DE ESCALONAMENTO
CARACTERÍSTICAS
Com o algoritmo selecionado espera-se:
Maximizar a utilização de CPU;
Minimizar o tempo de retorno, espera e resposta
(otimizar a média).
6. 6
ESCALONAMENTO
FCFS: FIRST-COME, FIRST
SERVED
Quem solicita primeiro a CPU, recebe-a primeiro;
Gerenciada por uma fila FIFO (primeiro que
entra, primeiro que sai);
Algoritmo mais simples;
Tempo médio de ESPERA pode ser longo.
9. 9
ESCALONAMENTO
FCFS: FIRST-COME, FIRST
SERVED
Pode deixar a CPU e dispositivos I/O ociosos;
Não-preemptivo;
Problemático em sistemas de tempos
compartilhado, onde deseja-se suprir vários
usuários.
10. 10
ALGORITMO DE
ESCALONAMENTO
SJF: JOB MAIS CURTO
Associa a cada processo a duração de seu próximo
surto de CPU;
A CPU é atribuída ao processo que tem o menor
próximo surto de CPU;
Surtos iguais, usa-se FCFS para desempate.
12. 12
ALGORITMO DE
ESCALONAMENTO
SJF: JOB MAIS CURTO
Tempo de espera:
P1 -> 3 ms
P2 -> 16ms
P3 -> 9 ms
P4 -> 0 ms
Tempo espera médio - 7ms (FCFS seria 10,25 ms)
P4 P1 P3 P2
0 3 9 16 24
13. 13
ALGORITMO DE
ESCALONAMENTO
SJF: JOB MAIS CURTO
Escalonamento ótimo
Fornece o tempo médio de espera mínimo!
Dificuldade: conhecer a duração do próximo surto
(pedido) de CPU!
14. 14
ALGORITMO DE
ESCALONAMENTO
SJF: JOB MAIS CURTO
Quando um processo chega na fila de prontos e
outro ainda está em execução:
SJF Não-preemptivo: permite que o processo em
execução termine seu surto de CPU;
SJF Preemptivo: Se o processo tiver o próximo surto
menor do que o resto do processo que está
executando, este será interrompido.
16. 16
ESCALONAMENTO
SJF: JOB MAIS CURTO
PREEMPTIVO
Tempo de espera médio Preemptivo: 6,5 ms
Tempo de espera médio SJF Não-preemptivo seria
7,75 ms
P1 P2 P4 P1
0 1 5 10 17 26
P3
20. 20
ESCALONAMENTO
ESCALONAMENTO POR
PRIORIDADES
Preemptivo ou Não-preemptivo
Quando um processo chega na fila de prontos, sua
prioridade é comparada com a do processo em
execução;
Não-Preemptivo: Coloca o processo no topo da fila de
pronto;
Preemptivo: Se a prioridade for maior, o algoritmo
interrompe o processo atual.
21. 21
ESCALONAMENTO
ESCALONAMENTO POR
PRIORIDADES
Problema: Bloqueio por tempo indefinido
Alguns processos de baixa prioridade podem esperar
indefinidamente pela CPU.
Ou ele pode ser executado às “2h da manhã
de domingo” ou é perdido em eventuais
falhas do sistema.
Solução: Envelhecimento
Exemplo: A cada 15min os processos em espera
sobem 1 ponto na prioridade.
22. 22
ALGORITMO DE ESCALONAMENTO
ROUND-ROBIN (RR)
Semelhante ao FCFS, mas é PREEMPTIVO;
Utilização de quantum (fatia de tempo);
Geralmente, o tempo de espera médio é longo;
Revezamento circular
A fila de prontos é tratada como uma fila circular!
23. 23
ALGORITMO DE ESCALONAMENTO
ROUND-ROBIN (RR)
A fila de prontos é FIFO (First In, First Out);
Escalonador percorre a fila de pronto e aloca a
CPU a cada processo por um quantum
Surto de CPU do processo > quantum
Tempo esgota e causa-se uma interrupção.
Há troca de contexto e um novo processo
executa
Surto de CPU do processo < quantum
CPU é liberada e o próximo da fila executa
25. 25
ALGORITMO DE ESCALONAMENTO
ROUND-ROBIN (RR)
Tempo médio de espera: 5,66
Nenhum processo recebe quantas* consecutivos (a não ser
que seja o único processo pronto)
* Quantas = plural de quantum
P1 P2 P3 P1
0 4 7 10 14 18 22 26 30
P1 P1 P1 P1
26. 26
ALGORITMO DE ESCALONAMENTO
ROUND-ROBIN (RR)
DEPENDE do tamanho do quantum
Se for muito grande, será como o FCFS;
Se for muito pequeno (Ex: 1 μs), terá muitas trocas de
contextos (desperdício de recursos);
Regra geral: 80% dos surtos de CPU dos processos deve
ser menor que o quantum.
29. 29
ALGORITMO DE ESCALONAMENTO
Há outra classe de algoritmos para processos
agrupados
Exemplo de grupos:
Processos de primeiro plano (interativos) e
de segundo plano (batch).
Os grupos têm diferentes requisitos de tempo de
resposta e prioridades e podem ter necessidades
diferentes de escalonamento.
30. 30
ALGORITMOS DE ESCALONAMENTO
ESCALONAMENTO POR MÚLTIPLAS
FILAS
Divide a fila de processos PRONTOS em várias
filas separadas;
Os processos são atribuídos a uma fila com base
em um filtro (tamanho da memória, prioridade,
tipo, etc);
Os processos não passam de uma fila para outra
Vantagem: baixo custo de escalonamento;
Desvantagem: Inflexível.
31. 31
ALGORITMOS DE ESCALONAMENTO
ESCALONAMENTO POR MÚLTIPLAS
FILAS
Cada fila tem seu próprio algoritmo de
escalonamento
Ex: Uma fila pode ser escalonada por um algoritmo
RR e outra por FCFS.
Há escalonamento entre as filas
Geralmente há escalonamento preemptivo de
prioridade fixa.
Ex: A fila de primeiro plano tem prioridade
absoluta sobre a fila de segundo plano.
32. 32
ALGORITMOS DE ESCALONAMENTO
ESCALONAMENTO POR MÚLTIPLAS
FILAS
Processos interativos
Processos de edição interativa
Processos em batch
Processos secundários
Processos do sistema
Prioridade mais alta
Prioridade mais baixa
33. 33
ALGORITMOS DE ESCALONAMENTO
ESCALONAMENTO POR MÚLTIPLAS
FILAS
Exemplo:
Nenhum processo da fila de edição interativa pode
executar a menos que as filas de processos do sistema
e processos interativos estejam vazias;
Se um processo de interativo entrasse na fila de
prontos enquanto um processo de edição interativa
estiver executando, este é interrompido.
34. 34
ALGORITMOS DE ESCALONAMENTO
ESCALONAMENTO POR MÚLTIPLAS
FILAS
Há a possibilidade de dividir o tempo entre as
filas
Cada fila obtém uma parte do tempo de CPU, que
pode ser escalonado entre os vários processos da fila.
Ex: A fila de primeiro plano pode receber
80% da CPU para escalonamento RR entre
seus processos e a fila de segundo plano
recebe 20% para escalonamento FCFS.
35. 35
ALGORITMOS DE ESCALONAMENTO
MÚLTIPLAS FILAS COM
REALIMENTAÇÃO
Processo pode se mover entre as filas;
Mais complexo;
Separa-se os processos com diferentes
características de surto de CPU;
Se um processo usar tempo de CPU excessivo, é
movido para uma fila de menor prioridade.
36. 36
ALGORITMOS DE ESCALONAMENTO
MÚLTIPLAS FILAS COM
REALIMENTAÇÃO
Assim, processos de E/S e interativos ficam nas
filas de prioridades mais altas;
Um processo que espera demais em uma fila de
baixa prioridade pode ser passado para um fila
de maior prioridade;
Forma de envelhecimento que evita estagnação.
38. 38
ALGORITMOS DE ESCALONAMENTO
MÚLTIPLAS FILAS COM
REALIMENTAÇÃO
Exemplo:
Um processo entra na fila de prontos e é colocado na
fila 0 (quantum = 8);
Se não terminar dentro de 8 ms, ele é colocado na fila
1 (quantum = 16);
Se não completar em 16 ms, é colocado na fila 2;
A fila 2 funciona de modo FCFS, quando as filas 1 e 2
estiverem vazias.
39. 39
ALGORITMOS DE ESCALONAMENTO
MÚLTIPLAS FILAS COM
REALIMENTAÇÃO
Exemplo (cont.):
Assim, processos de surto de 8 ms (ou menos) têm
prioridades mais altas;
Processos de surto entre 9 e 24 ms também são
atendidos rapidamente (com menor prioridade dos de
8 ms ou menos);
Processos mais longos caem para fila 2 (FCFS).
40. 40
ALGORITMOS DE ESCALONAMENTO
MÚLTIPLAS FILAS COM
REALIMENTAÇÃO
Geralmente definido pelos parâmetros:
Número de filas;
Algoritmo de escalonamento para cada fila;
Método para promover um processo para outra fila;
Método para rebaixar um processo para outra fila;
Método para selecionar uma fila para um processo.
41. 41
ALGORITMOS DE ESCALONAMENTO
MÚLTIPLOS PROCESSADORES
Várias CPUs disponíveis, o problema do
escalonamento é mais complexo;
Utilização de processadores idênticos em termos
de funcionalidade;
Qualquer processador disponível pode executar
qualquer processo pronto;
Se for usado uma fila para cada processador, um
processador pode estar ocioso, enquanto outro
está sobrecarregado.
42. 42
ALGORITMOS DE ESCALONAMENTO
MÚLTIPLOS PROCESSADORES
Solução: Somente uma fila de prontos para todos
os processadores.
Processos escalonados para qualquer processador
disponível.
Duas abordagens:
Multiprocessamento simétrico;
Multiprocessamento assimétrico.
43. 43
ALGORITMOS DE ESCALONAMENTO
MÚLTIPLOS PROCESSADORES
Multiprocessamento simétrico
Cada processador tem seu escalonamento (seleciona o
processo para executar);
Deve haver garantia que os processadores não
escolherão o mesmo processo;
Não deve haver perda de processos na fila.
44. 44
ALGORITMOS DE ESCALONAMENTO
MÚLTIPLOS PROCESSADORES
Multiprocessamento assimétrico
Todas as decisões de escalonamento e processamento
de I/O são tratadas por um processador mestre;
Mais simples.
45. 45
ALGORITMOS DE ESCALONAMENTO
Escalonamento de tempo real (não-crítico)
Tempo real não-crítico: processos devem receber
prioridades mais altas que outros processos;
A prioridade de processos de tempo real não deve
“envelhecer”;
Desvantagem: Pode causar alocação injusta de
recursos ou resultar na paralisação de outros
processos.