Optimizar a performance do sistema de acordo com um critério
- Dividir a capacidade de processamento da UCP entre vários processos
- Diminuir o tempo de resposta (sistemas de Tempo-Real)
Como?
- Alguns exemplos:
- Quando um processo está à espera (por ex: de uma operação de I/O ou de um sinal), outro processo pode entrar em funcionamento
- Periodicamente é retirado um processo e substituído pelo próximo na fila de ready
Escalonando da UCP
O escalonador selecciona entre os processos na fila de Ready, aqueles que devem entrar em execução de seguida
A decisão de escalonamento pode ser feita nas seguintes circunstâncias:
1. O processo comuta do estado Running para o estado Waiting (pedido de I/O, evocação da função wait())
- O processo comuta do estado Running para o estado Ready (ocorrência de uma interrupção)
- O processo comuta do estado Waiting para o estado Ready (termina um pedido de I/O)
- O processo termina
Diagrama de Estados
Tipos de Escalonamento
Escalonamento não preemptivo:
- O escalonador apenas pode efectuar a comutação entre processos quando o processo termina ou passa para o estado de Waiting
- Exemplo: Windows 3.1 e Apple Macintosh OS
Escalonamento preemptivo:
- O escalonador pode interromper a execução de um processo antes que este tenha terminado
Estrutura de um Escalonador
Sem comentários:
Enviar um comentário