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.