Arquitetura de Sistemas Operacionais Técnico em Informática MBI1 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 Est a d o d e Execu çã o c Es al on am en to Est a d o d e Esp er a Cap. 8 – Gerência do Processador Est a d o d e Pr o n t o 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 Fil a d o s p r o cesso s n o esta d o d e Pr o n to Esta d o d e Cr ia çã o U CP Esta d o d e Tér m i n o Esta d o d e Esp er a Cap. 8 – Gerência do Processador 10 Escalonamento FIFO • Exemplo Pr o cesso A Pr o cesso B Pr o cesso C 10 14 17 u .t. Pr o cesso A Pr o cesso Tem p o d e p r o cessa d o r (u .t. ) A 10 B 4 C 3 Pr o cesso B Pr o cesso 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 Pr o cesso A Pr o cesso B Pr o cesso 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 Fil a d o s p r o cesso s n o esta d o d e Pr o n to Esta d o d e Cr ia çã o U CP Esta d o d e Tér m i n o Pr eem p çã o p o r tem p o Esta d o d e Esp er a Cap. 8 – Gerência do Processador 16 Escalonamento por Prioridades Fil a s d o s p r o cesso s n o esta d o d e Pr o n to Pr io r id a d e P1 Pr io r id a d e P2 Est a d o d e Cr ia çã o U CP Est a d o d e Tér m i n o Pr io r id a d e Pn Pr eem p çã o p o r p r io r id a d e Est a d o d e Esp er a Cap. 8 – Gerência do Processador 17 Escalonamento por Prioridades • Exemplo Pr o cesso A Pr o cesso Tem p o d e p r o cessa d o r (u .t.) Pr io r id a d e A 10 2 B 4 1 C 3 3 Pr o cesso B Pr o cesso C 3 13 Cap. 8 – Gerência do Processador 17 u .t. 18 Escalonamento Circular com Prioridades Fil a d o s p r o cesso s n o est a d o d e Pr o n to Pr io r id a d e P1 Pr io r id a d e P2 Est a d o d e Cr ia çã o U CP Est a d o d e Tér m i n o Pr io r id a d e Pn Pr eem p çã o p o r tem p o o u p r io r i d a d e Est a d o d e Esp er a 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 Fil a d e p r o cesso s d o sist em a M a io r p r i o r id a d e Fil a d e p r o cesso s i n ter a ti vo s U CP Fil a d e p r o cesso s b a t ch M en o r p r i o r id a d e 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