Sistemas Operativos. Sumário. Escalonador da CPU. ! Filas Multinível. ! Filas Multinível com Feedback. ! Escalonamento em multiprocessadores

Tamanho: px
Começar a partir da página:

Download "Sistemas Operativos. Sumário. Escalonador da CPU. ! Filas Multinível. ! Filas Multinível com Feedback. ! Escalonamento em multiprocessadores"

Transcrição

1 Escalonador da CPU Sumário! Filas Multinível! Filas Multinível com Feedback! Escalonamento em multiprocessadores! Escalonamento em tempo real! Avaliação de algoritmos 2 1

2 Filas Multinível! Os processos prontos a executar são divididos por várias filas de processos prontos Cada fila contém processos de um determinado tipo, isto é, com determinadas necessidades de escalonamento Por exemplo, uma divisão comum é:! Uma fila para os processos de primeiro plano (foreground)! E outra para os processos de segundo plano (background) 3 Filas Multinível! Cada fila tem o seu próprio algoritmo de escalonamento. Por exemplo: Escalonamento RR para os processos na fila de primeiro plano Escalonamento FCFS para os processos na fila de segundo plano! Deve haver escalonamento entre as filas Normalmente, é utilizado escalonamento preemptivo de prioridade fixa Outra possibilidade é fraccionar o tempo entre as filas 4 2

3 Filas Multinível com Feedback! Permitem que os processos se movam entre as filas! Nas filas de maior prioridade permanecerão os processos interactivos e os limitados pela E/S! Os processos limitados pela CPU tenderão a ser despromovidos para filas de menor prioridade! Quando os processos esperam demasiado tempo numa fila de baixa prioridade podem ser passados para uma fila de maior prioridade 5 Filas Multinível com Feedback! Um escalonador de fila multinível com feedback rege-se pelos seguintes parâmetros: Número de filas Algoritmo de escalonamento para cada fila Método usado para determinar quando promover um processo Método usado para determinar quando despromover um processo Método usado para determinar em que fila entra um processo quando esse processo necessita ser servido 6 3

4 Escalonamento em multiprocessadores! O escalonamento da CPU será mais complexo se existirem várias CPUs! Caso particular: processadores homogéneos qualquer CPU pode executar qualquer processo na fila de processos prontos Uma fila por processador; possibilidade de ter CPUs ociosas enquanto outras estão extremamente ocupadas Fila comum. Duas abordagens possíveis:! Multiprocessamento simétrico cada processador faz o seu próprio escalonamento! Multiprocessamento assimétrico (mais simples) Decisões de encaminhamento, processamento de E/S e outras actividades do sistema são tratadas por um único processador Os outros processadores executam apenas código do utilizador 7 Escalonamento em tempo real! Sistemas em tempo real crítico devem completar uma tarefa crítica dentro de um intervalo de tempo garantido: A submissão de um processo faz-se acompanhar de uma medida do tempo que pretende gastar em operações de E/S O escalonador admite o processo caso seja possível respeitar os seus requisitos temporais É necessário saber o tempo máximo que cada função do SO consome 8 4

5 Escalonamento em tempo real! Sistemas em tempo real não-crítico requerem apenas que os processo críticos recebam prioridade em relação a outros processos: O sistema deve ter escalonamento por prioridade A prioridade dos processos de tempo real não pode ser diminuída, embora a prioridade dos outros processos possa A latência dos dispatcher deve ser pequena 9 Avaliação de algoritmos! Modelação determinística Utiliza uma avaliação analítica para determinar o desempenho de um algoritmo Toma-se como ponto de partida uma certa carga o desempenho do algoritmo é determinado para essa carga As respostas só se aplicam ao caso particular analisado! Modelos de filas de espera Descrever o sistema como uma rede de servidores Cada servidor tem uma fila de processos em espera (a CPU é o servidor da fila de processos prontos, os dispositivos de E/S são servidores das filas de dispositivo) Calcular a utilização utilizando a análise de redes de filas 10 5

6 Avaliação de algoritmos! Simulação Determinam o desempenho de um algoritmo imitando o algoritmo de escalonamento em uma amostra representativa de processos e calculando o desempenho resultante Baseiam-se na programação de um modelo que represente o sistema e que produz estatísticas! Implementação A única forma completamente precisa é codificar o algoritmo, colocá-lo no sistema e verificar o seu funcionamento 11 6