Baixe o app para aproveitar ainda mais
Prévia do material em texto
Unidade 09 – Gerência do Processador 1 INSTITUTO DE CIÊNCIAS EXATAS E NATURAIS FACULDADE DE COMPUTAÇÃO BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS Unidade 09: Gerência de Processador Professor: Dr. Josivaldo Araújo josivaldo@ufpa.br Unidade 09 – Gerência do Processador 2 Objetivos desta Unidade... � Introduzir o escalonamento da CPU, que é a base dos sistemas operacionais multiprogramados; � Descrever os algoritmos de escalonamento da CPU; Unidade 09 – Gerência do Processador 3 Introdução � Múltiplos processos podem permanecer na memória principal (estado de pronto); � Estabelecer critérios para determinar qual processo será escolhido; � Os critérios utilizados compõem a chamada política de escalonamento; � Base da gerência do processador e da multiprogramação em um sistema operacional. Unidade 09 – Gerência do Processador 4 � Manter a CPU ocupada a maior parte do tempo; � Balancear o uso da CPU entre processos; � Privilegiar a execução de aplicações críticas; � Maximizar o throughput; � Oferecer tempos de resposta razoáveis para usuários interativos; � E vale a lembrança: • Processos – unidades de alocação de recursos; • Threads – unidades de escalonamento; Funções Básicas Unidade 09 – Gerência do Processador 5 � Escalonamento: Funções Básicas Unidade 09 – Gerência do Processador 6 � Depende das características de cada S.O., e a escolha de um algoritmo específico pode favorecer uma classe de processos em vez de outra; � Critérios que devem ser considerados: � Utilização do processador: É desejável que fique ocupado a maior parte do tempo. � Throughput: O número de processos concluídos em um determinado intervalo de tempo (a maximização é desejada). � Tempo de processador: Tempo que um processo leva no estado de execução durante seu processamento. Critérios de Escalonamento Unidade 09 – Gerência do Processador 7 � Tempo de espera: Tempo que um processo permanece na fila de pronto. � Tempo de turnaround: Tempo que um processo leva desde a sua criação até o seu término. � Tempo de resposta: É o tempo decorrido entre uma requisição ao sistema e o intante em que a resposta é exibida. Critérios de Escalonamento � É desejável a maximização da utilização da CPU e do throuhgput; � E a minimização do tempo de turnaround, do tempo de espera e do tempo de resposta; Unidade 09 – Gerência do Processador 8 � Preempção: Possibilidade do sistema operacional interromper um processo em execução e substituí-lo por outro; � S.O. que implementam escalonamento com preempção são mais complexos, contudo possibilitam políticas de escalonamento mais flexíveis; • Escalonamento não-preemptivo: Quando um processo está em execução nenhum evento externo pode ocasionar a perda do uso do processador (tipicamente processamento batch); • Escalonamento preemptivo: O S.O. pode interromper um processo em execução e passá-lo para o estado de pronto; Tipos de Escalonamento Unidade 09 – Gerência do Processador 9 1. Escalonamento FIFO (First-In-First-Out) � Quando a CPU está livre, ela é alocada para o processo no início da fila; � É do tipo não-preemptivo; � Processo ocupa a CPU até liberá-la, seja pelo encerramento ou ao solicitar I/O; Tipos de Escalonamento Unidade 09 – Gerência do Processador 10 Tipos de Escalonamento � Processos CPU-bound levam vantagem no uso do processador sobre processos I/O-bound; 1. Escalonamento FIFO (First-In-First-Out) Unidade 09 – Gerência do Processador 11 Tipos de Escalonamento � Desvantagem: � O tempo médio de espera neste tipo de escalonamento, geralmente é muito longo; • Tempo de espera: 0 + 10 + 14 = 24/3 = 8 u.t. 1. Escalonamento FIFO (First-In-First-Out) Unidade 09 – Gerência do Processador 12 Tipos de Escalonamento � Desvantagem: � Não se preocupa em melhorar o tempo médio de espera dos processos; � É problemático para sistemas de tempo compartilhado; • Tempo de espera: 0 + 4 + 7 = 11/3 = 3,7 u.t. 1. Escalonamento FIFO (First-In-First-Out) Unidade 09 – Gerência do Processador 13 � O algoritmo de escalonamento seleciona o processo (pronto) que tiver o menor tempo de processador ainda por executar; � É possível prever o tempo com base no seu comportamento passado; δn+1 = αtn + (1 - α)δn Tipos de Escalonamento 2. Escalonamento SJF (Shortest-Job-First) Tempo do processador utilizado no último escalonamento Tempo estimado que será utilizado no escalonamento seguinte Unidade 09 – Gerência do Processador 14 � Processo em execução libera voluntariamente a CPU; � Verifica a fila de mensagens periodicamente; � Problema: Um programa pode permanecer por um longo período de tempo alocando o processador. � Exemplo: primeiros sistemas MS-Windows Tipos de Escalonamento 3. Escalonamento Cooperativo Unidade 09 – Gerência do Processador 15 � É um escalonamento do tipo Preemptivo, projetado especialmente para sistemas de tempo compartilhado; � Quando um processo passa para o estado de execução, existe um tempo limite (quantum de tempo) para o uso contínuo da CPU. Tipos de Escalonamento 4. Escalonamento Circular (Round-Robin) Unidade 09 – Gerência do Processador 16 Tipos de Escalonamento � Exemplo com três processos: quantum de tempo é igual a 2 u.t. 4. Escalonamento Circular (Round-Robin) Unidade 09 – Gerência do Processador 17 Tipos de Escalonamento 4. Escalonamento Circular (Round-Robin) Processos I/O podem não utilizar todo o quantum de tempo; Unidade 09 – Gerência do Processador 18 � Os processos da fila auxiliar possuem preferência no escalonamento em relação à fila de pronto; � A CPU só seleciona processos na fila de pronto quando a fila auxiliar estiver vazia; Tipos de Escalonamento 5. Escalonamento Circular Virtual Unidade 09 – Gerência do Processador 19 � O processo com maior prioridade no estado de pronto é sempre o escolhido para execução. Tipos de Escalonamento 6. Escalonamento por Prioridades Unidade 09 – Gerência do Processador 20 Tipos de Escalonamento 6. Escalonamento por Prioridades � Pode ou ter a preempção: Se tiver, a CPU é retirada do processo que está sendo executado; � Se não tiver, o processo com maior prioridade apenas é colocado no início da fila; Unidade 09 – Gerência do Processador 21 Tipos de Escalonamento 6. Escalonamento por Prioridades � Problema: Em um sistema de computação muito carregado, um fluxo constante de processos de prioridade mais alta pode impedir que um processo de prioridade mais baixa consiga usar a CPU. � Solução: Conhecida como Envelhecimento. � É uma técnica que aumenta gradualmente a prioridade dos processos que esperam por muito tempo; Unidade 09 – Gerência do Processador 22 � Implementa o conceito de fatia de tempo e de prioridade de execução associada a cada processo. � Processos I/O-bound devem receber prioridades mais altas que as dos processos CPU-bound; Tipos de Escalonamento 7. Escalonamento Circular com Prioridades Unidade 09 – Gerência do Processador 23 Tipos de Escalonamento 7. Escalonamento Circular com Prioridades Compartilha o processador de uma forma mais igualitária; Unidade 09 – Gerência do Processador 24 � Existem diversas filas de processos em estado de pronto, cada qual com uma prioridade específica; � Os processos são associados às filas em função de características próprias. Tipos de Escalonamento 8. Escalonamento por Múltiplas Filas Unidade 09 – Gerência do Processador 25 Tipos de Escalonamento 9. Escalonamento por Múltiplas Filas com Realimentação � É semelhante ao escalonamento por múltiplas filas, porém os processos podem trocar de filas durante seu processamento; � O escalonamento de um processo em uma fila ocorreapenas quando todas as outras filas de prioridades mais altas estiverem vazias; � O processo quando criado, entra no final da fila de maior prioridade, porém a cada preempção por tempo, o processo é redirecionado para uma fila de menor prioridade; Unidade 09 – Gerência do Processador 26 Tipos de Escalonamento 9. Escalonamento por Múltiplas Filas com Realimentação Unidade 09 – Gerência do Processador 27 Conclusão � O escalonamento da CPU é a tarefa de selecionar um processo em espera na fila e alocar a CPU para ele; � Os diferentes tipos de escalonadores podem ser implementados de forma isolada ou em conjunto para obter um melhor desempenho do sistema; � Os sistemas operacionais que dão suporte a threads no nível de kernel devem alocar threads – e não processos – para execução;
Compartilhar