Aula 08_SO

Propaganda
Sistemas Operacionais
Algoritmos de Escalonamento
de Processos
Escalonamento de Processos
Escalonamento Não-preemptivo
Escalonamento
dos
primeiros
multiprogramáveis tipo batch.
sistemas
Quando um processo ganha o direito de utilizar a
CPU nenhum outro processo pode lhe tirar este
recurso.
Escalonamento de Processos
Conceito:
Quando mais de um processo está ativo
(pronto para executar) cabe ao sistema
operacional decidir qual terá a posse da CPU.
A parte do sistema operacional que toma esta
decisão é chamada escalonador e o algoritmo
utilizado é o algoritmo de escalonamento.
Escalonamento de Processos
Os critérios para os algoritmos de escalonamento
são:
 Processo: garantir que cada processo tenha acesso a




CPU
Eficiência: manter a CPU ocupada praticamente 100%
do tempo
Tempo de resposta: minimizar o tempo de resposta
na execução dos processos principalmente os
interativos editores planilhas etc
tempo de espera: minimizar o tempo de espera de
serviços não interativos compilação impressão etc;
vazão: maximizar o numero de processos executados
por hora.
Escalonamento de Processos
First-In-First-Out (FIFO) :
O processo que chegar primeiro (first-in) será o primeiro a
ser executado (first-out)
No algoritmo é implementado uma fila, onde os processos
em estado de pronto entram no final da fila e esperam
para serem executados quando chegam no início da fila.
Quando um processo ganha o processador ele utilizará a
CPU sem ser interrompido.
Problemas:
 Não é possível prever quando um processo será executado
 Processos de CPU-bound de menor importância poderão
prejudicar um processo I/O bound mais prioritário
Escalonamento de Processos
Shortest-Job-First (SJF)
O processo com previsão de utilizar menos
tempo a CPU é executado primeiro. Favorece
os processos que executam programas
menores.
Problema: Determinar exatamente quanto
tempo de CPU cada processo necessita
Escalonamento de Processos
Cooperativo:
O processo em execução é quem libera a CPU,
retornando para o estado de pronto, não existe
nenhuma intervenção do S.O.
na execução do
processo.
Permite melhor distribuição do uso do processador
Problema: um programa pode não liberar o uso do
processador, pode entrar em looping
Escalonamento de Processos
Escalonamento Preemptivo
O sistema pode interromper um processo em
execução para que outro processo
utilize o
processador.
Permite que o sistema dê atenção imediata a
processos mais prioritários, proporciona melhor
tempo de resposta em sistemas de tempo
compartilhado, compartilhamento do processador de
uma maneira mais uniforme entre os processos.
Escalonamento de Processos
Circular (Round Robin) :
Semelhante ao FIFO, Cada processo é executado por
um intervalo de tempo (quantum). No final desse
tempo, se o processo estiver executando, será
suspenso e a CPU, alocada a outro processo. Se o
processo terminar, ou for bloqueado, antes do final
do quantum, a CPU também é passada para outro
processo.
Mecanismo é definido como preempção por tempo.
A fila de processos em estado de pronto é uma fila
circular.
Escalonamento de Processos
Múltiplas Filas:
São implementadas diversas filas no estado de
pronto,
onde
cada
processo
é
associado
exclusivamente a uma delas, sendo os processos
classificados de acordo com o tipo de processamento
realizado.
Cada fila possui uma prioridade associada. O
processador seleciona primeiro os processos das filas
mais prioritárias, indo para a de menor prioridade
somente se a de maior prioridade estiver vazia.
Escalonamento de Processos
Múltiplas Filas com Realimentação:
Os processos não permanecem em uma mesma fila até o
final do processamento, as prioridade de execução são
ajustadas dinamicamente, conforme o processo mude de
comportamento.
Um processo, ao ser criado, entra no final da fila de mais
alta prioridade. Cada fila implementa o mecanismo FIFO
para escalonamento. Quando um processo deixa a CPU ou
por prioridade ou por solicitação a um recurso do sistema,
ele é reescalonado dentro da mesma fila. Caso esgote seu
quantum de tempo, é reescalonado para uma fila de menor
prioridade.
O quantum de cada fila varia de acordo com sua
prioridade, quanto maior a prioridade, menor é seu
quantum de tempo.
Download