Arquitetura de Sistemas Operacionais Técnico em Informática MAI1 Gerência do Processador Cap. 8 – Gerência do Processador 1 Sumário • • • • • • • • • • Introdução Funções Básicas Critérios de escalonamento Escalonamentos não-preemptivos e preemptivos Escalonamento FIFO Escalonamento SJF Escalonamento cooperativo Escalonamento circular Escalonamento por prioridades Escalonamento circular com prioridades Cap. 8 – Gerência do Processador 2 Sumário • Escalonamento por múltiplas filas • Escalonamento por múltiplas filas com realimentação • Política de Escalonamento em Sistemas de Tempo Compartilhado • Política de Escalonamento em Sistemas de Tempo Real Cap. 8 – Gerência do Processador 3 Introdução • Escalonamento Estado de Execução lo ca Es na me n to Estado de Espera Cap. 8 – Gerência do Processador Estado de Pronto 4 Funções Básicas • Manter a UCP ocupada a maior parte do tempo • Balancear o uso da UCP entre processos • Privilegiar a execução de aplicações críticas • Maximizar o throughput • Oferecer tempos de resposta razoáveis para usuários interativos • Implementada pelo scheduler e dispatcher • Processos – unidades de alocação de recursos • Threads – unidades de escalonamento Cap. 8 – Gerência do Processador 5 Throughput Throughput (ou taxa de transferência) é a quantidade de dados transferidos de um lugar a outro, ou a quantidade de dados processados em um determinado espaço de tempo, pode-se usar o termo throughput para referir-se a quantidade de dados transferidos em discos rígidos ou em uma rede, por exemplo; tendo como unidades básicas de medidas o Kbps, o Mbps e o Gbps. Cap. 8 – Gerência do Processador 6 Turnaround Turnaround Intervalo de tempo entre a submissão de um processo e sua finalização (soma dos intervalos esperando para ser carregado na memória, fila de pronto, em execução e em espera) Cap. 8 – Gerência do Processador 7 Critérios de Escalonamento • • • • • • Utilização do processador Throughput Tempo de Processador / Tempo de UCP Tempo de Espera Tempo de Turnaround Tempo de Resposta Cap. 8 – Gerência do Processador 8 Escalonamentos Não-Preemptivo e Preemptivo • Preempção – possibilidade do SO interromper um processo em execução e substituí-lo por outro • Escalonamento não-preemptivo • Escalonamento preemptivo Cap. 8 – Gerência do Processador 9 Escalonamento FIFO • Escalonamento First-In-First-Out Fila dos processos no estado de Pronto Estado de Criação UCP Estado de Término Estado de Espera Cap. 8 – Gerência do Processador 10 Escalonamento FIFO • Exemplo Processo A Processo B Processo C 10 14 17 u.t. Processo A Processo Tempo de processador (u.t.) A 10 B 4 C 3 Processo B Processo C 4 7 Cap. 8 – Gerência do Processador 17 u.t. 11 Escalonamento SJF • Escalonamento Shortest-Job-First • Não preemptivo • O processo com o menor tempo para ser completado é escolhido. Cap. 8 – Gerência do Processador 12 Escalonamento SJF • Escalonamento Shortest-Job-First Processo A Processo B Processo C 3 Cap. 8 – Gerência do Processador 7 17 u.t. 13 Escalonamento Cooperativo • Processo em execução libera voluntariamente a UCP • Verifica a fila de mensagens periodicamente (Windows 3.11) • Um programa mal escrito pode monopolizar a CPU • Podem ocorrer problemas • Exemplo: primeiros sistemas MS-Windows Cap. 8 – Gerência do Processador 14 Escalonamento Circular ou Round Robin • Define-se uma unidade de tempo denominada timeslice que corresponde ao tempo limite para uso da CPU. • Após este tempo ter sido passado, o processo sofre preempção e é colocado no final da fila de pronto. • A fila de pronto é tratada como uma fila circular (FIFO). • O escalonador “pega” o primeiro processo da fila de pronto para ser executado e define um tempo de 1 time-slice. • Se o tempo de execução for maior que 1, o time gera uma interrupção. • Projetado para sistemas de tempo compartilhado. Cap. 8 – Gerência do Processador 15 Escalonamento Circular ou Round Robin Fila dos processos no estado de Pronto Estado de Criação UCP Estado de Término Preempção por tempo Estado de Espera Cap. 8 – Gerência do Processador 16 Escalonamento por Prioridades Filas dos processos no estado de Pronto Prioridade P1 Prioridade P2 Estado de Criação UCP Estado de Término Prioridade Pn Preempção por prioridade Estado de Espera Cap. 8 – Gerência do Processador 17 Escalonamento por Prioridades • Exemplo Processo A Processo B Processo C 3 13 Cap. 8 – Gerência do Processador 17 Processo Tempo de processador (u.t.) Prioridade A 10 2 B 4 1 C 3 3 u.t. 18 Escalonamento Circular com Prioridades Fila dos processos no estado de Pronto Prioridade P1 Prioridade P2 Estado de Criação UCP Estado de Término Prioridade Pn Preempção por tempo ou prioridade Estado de Espera Cap. 8 – Gerência do Processador 19 Escalonamento por Múltiplas Filas • Os processos são previamentes divididos em grupos em função do tipo de processamento realizado. Interativo / 1˚ plano (foreground) Batch / 2˚ plano (background) Processo BATCH - É todo aquele que não necessita de intervenção do usuário, isto é, uma vez iniciado será terminado automaticamente. • A cada grupo é aplicado um escalonamento adequado. Cap. 8 – Gerência do Processador 20 Escalonamento por Múltiplas Filas Fila de processos do sistema Maior prioridade Fila de processos interativos UCP Fila de processos batch Menor prioridade Cap. 8 – Gerência do Processador 21 Escalonamento por Múltiplas Filas com Realimentação • Os processos não permanecem em uma mesma fila até o término do processamento; • O SO faz um ajuste dinâmico para ajustar os processos em função do comportamento do sistema. • Os processos não são previamente associados às filas, mas direcionados pelo sistema entre as diversas filas com base no seu comportamento. • Parâmetros: Número de filas; Algoritmo de escalonamento para cada fila Método para determinar em que fila um processo entra. Cap. 8 – Gerência do Processador 22