Sistemas de Operação
Universidade Nova de Lisboa
Faculdade de Ciências e Tecnologia
Departamento de Informática
João Lourenço
Joao.Lourenç[email protected] http://www-asc.di.fct.unl.pt/~jml
Gestão de CPU
(3)(OSC-7ed. 5.1, 5.2, 5.3, 5.6, 5.7, 21.4, 21.5)
Baseado nos transparente de SO de Pedro Medeiros (DI/FCT/UNL)
Múltiplas filas READY
• A fila Ready é dividida em várias filas, por ex:
– foreground (interactivos) e background ( batch )
• Cada fila tem o seu algoritmo de escaonamento
– foreground – RR e background – FCFS
• Escalonamento entre filas:
– escalonamento com prioridade fixa (i.e., processos background só correm se não houver processos
foreground ). Possibilidade de starvation !!!
– Fatia de tempo – cada fila recebe uma percentagem
fixa de tempo de CPU. Por ex. 80% para foreground
(RR) e 20% para background (FCFS)
Generalização do princípio das múltiplas filas
Um algoritmo de escalonamento com quatro classes de
prioridade
Múltiplas filas READY com Feedback (alteração da prioridade)
• Um processo pode mudar de fila
– Envelhecimento ( aging )
• Escalonamento “ Multilevel-feedback-queue ” é definido por:
– número de filas
– algoritmo de escalonamento para cada fila – método usado para promover um processo
– método usado para despromover um processo
– método usado para determinar a fila inicial do processo
Escalonador do UNIX
• Uma vez por segundo, a prioridade de cada
processo é recalculada de acordo com a fórmula
– prioridade = base + nice + CPU_usage – CPU_usage tem a ver
com o número de “clock ticks” de CPU que o
processo teve nos últimos tempos; vai sendo dividido por 2 à medida que o
tempo passa
Resumo sobre os métodos de escalonamento
• Quando é invocado o escalonador?
– Modo de decisão
• preemptivo: escalonador chamado periodicamente (orientado para fatias de tempo) ou quando o estado do sistema muda
• não- preemptivo: escalonador chamado quando um processo termina ou se bloqueia
• Como é escolhido o processo que vai ocupar o CPU?
– Avaliação da importância do processo: P = Priority(p) – Regras de desempate
• aleatórias
• cronológicas (FIFO)
• cíclica (por rotação - round robin)