Gerência do Processador Adão de Melo Neto 1 Introdução Sistemas Multiprogramáveis: – Múltiplos processos podem permanecer na memória principal compartilhando o uso da CPU. – POLÍTICA DE ESCALONAMENTO São um critérios que determinar qual processo em estado de pronto será escolhido para fazer uso do processador apenas um processo em execução 2 PROCESSO Critérios de Escalonamento Utilização do Processador – Quando o valor é de 30% (sistema com carga baixa) – Quando o valor é de 90% (sistema bastante carregado) Throughput – Número de processos executados em determinado intervalo de tempo Tempo de Processador/CPU – Tempo que um processo leva no estado de execução durante seu processamento – As políticas de escalonamento não influenciam este tempo Tempo de espera – Tempo que um processo fica no estado de pronto aguardando ser executado Tempo de Turnaround – Tempo que leva desde a criação até seu término Tempo de Resposta – Tempo decorrido desde a requisição ao sistema até o instante que a resposta é exibida Busca-se maximizar Busca-se minimizar Não depende da política de3 escalonamento Critérios de Escalonamento As características do sistema operacional (sistemas de tempo compartilhado ou sistemas de tempo real) irão determinar quais os principais aspectos na implementação de uma política de escalonamento SISTEMA DE TEMPO COMPARTILHADO 4 Objetivos de uma Política de Escalonamento - Manter processador ocupado a maior parte do tempo - Balancear o uso da CPU entre os processos - Privilegiar aplicações críticas - Maximizar o throuput do sistema. - Minimizar o tempo de resposta 5 Escalonamentos Preemptivos Não-Preemptivos preempção Escalonamento PREEMPÇÃO Capacidade do sistema operacional interromper um processo e substituí-lo por um outro ESCALONAMENTOS NÃOPREEMPTIVOS (nenhum evento pode ocasionar a perda do uso do processador) ESCALONAMENTO PREEMPTIVOS (o sistema operacional pode interromper um processo e passá-lo para o estado de pronto, a fim de alocar outro processo na6 CPU) Estados de um processo Estado de Execução Quando está sendo executado pela CPU Estado de Espera (bloqueado) Quando aguarda algum evento externo ou algum recurso para prosseguir seu processamento EXEMPLO Aguardando o término de operação de E/S Aguardando data/hora para continuar operação Quando apenas aguarda oportunidade para ser executado Após criação do processo o mesmo vai para lista de processos em estado de pronto 7 Mudança de Estados de um Processo (B) EXECUÇÃO ESPERA (gerada por eventos do processo: operações de E/S) (gerada por eventos externos: Sistema operacional suspende por um período de tempo a execução do processo) (A) PRONTO EXECUÇÃO ( escalonamento: depende da política de escalonamento do Sistema Operacional) (D) EXECUÇÃO PRONTO (preempção: um exemplo é o término da fatia de tempo que processo possui para sua execução) (C) ESPERA PRONTO (operação solicitada é atendida ou recurso esperado é concedido 8 Vantagens da Preempção •Priorizar a execução de processos como no caso de aplicações de tempo real onde o fator de tempo é crítico. •Implementar políticas de escalonamento que compartilhem o processador de maneira mais uniforme preempção 9 Troca de Estados de um Processo Quando um processo é criado ele entra no final da fila de estados de pronto Saída do estado de execução: – termino do processamento ou – ida para o estado espera Espera Execução: os processos entram no final da fila de pronto. 10 TIPOS DE ESCALONAMENTOS NOME PREEMPÇÃO FIFO Não (sistema monoprogramado) SJF Não (sistema monoprogramado) Cooperativo Sim (controlada pelo processo) Circular (Round Robin Schedule) Sim (preempção por tempo) Prioridades Sim (preempção por prioridades) Circular por prioridades Sim (preempção por tempo e prioridades) Múltiplas filas Sim 11 ESCALONAMENTO FIRST-IN_FIRST-OUT (FIFO) Não-preemptivo Escalonamento: quando o processo alcança início da fila de estados de pronto. F I 12 ESCALONAMENTO FIRST-IN_FIRST-OUT (FIFO) Dependem do posicionamento dos processos A , B e C na fila de estado de pronto. Tempo de Processador – A (10), B (4) e C (3) Tempo Médio de Espera (0 + 10 + 14 )/3 = 8 u.t C B A Tempo de espera Tempo que um processo fica no estado de pronto aguardando ser executado Tempo de Turnaround Tempo que leva desde a criação até seu término Tempo Médio de Turnaround (10 + 14 + 17 )/3 = 10,33 u.t 13 ESCALONAMENTO FIRST-IN_FIRST-OUT (FIFO) Vantagens – Simples Desvantagens – Não dá para prever quando um processo terá sua execução iniciada – Processos ligados à CPU (CPU-bound) têm vantagem em relação aos processos ligados à entrada/saída (I/O-bound). 14 ESCALONAMENTO SHORSTEST-JOB-FIRST (SJF) Não-preemptivo Escalonamento:seleciona o processo em estado de pronto que tiver o menor tempo de processador ainda por executar. Tempo de processador: estimado com base em análises estatísticas de execuções passadas. A (10) B (4) C (3) C (3) B (4) A (10) Ordem do Escalonamento Ordem na Fila (exemplo) 15 ESCALONAMENTO SHORSTEST-JOB-FIRST (SJF) Tempo de Processador – A (10), B (4) e C (3) Tempo de espera Tempo que um processo fica no estado de pronto aguardando ser executado Tempo de Turnaround Tempo que leva desde a criação até seu término Tempo Médio de Espera (7 + 3 + 0 )/3 = 3,3 u.t Tempo Médio de Turnaround (17 + 7 + 3 )/3 = 9 u.t 16 ESCALONAMENTO SHORSTEST-JOB-FIRST (SJF) Vantagem – Redução do tempo médio de turnaround dos processos. Desvantagens – Impossibilidade de se estimar o tempo de processador para processos interativos (entrada de dados é uma ação imprevisível). – Possibilidade de starvation quando existem muitos processos do tipo CPU-Bound. Tempo de Turnaround Tempo que leva desde a criação até seu término Tempo de processador Tempo que um processo leva no estado de execução durante seu processamento Starvation: um processo nunca alcança o estado de execução 17 ESCALONAMENTO COOPERATIVO Escalonamento preemptivo (preempção controlada pelo processo) Escalonamento: um processo em execução pode voluntariamente liberar o processador retornando à fila de pronto, possibilitando que outro processo possa ser escalonado. Mecanismo – Os processos quando entram na fila de pronto enviam mensagens a outros processos. O processo em execução verifica periodicamente sua fila de mensagens para determinar se existem outros processos na fila de pronto. Preempção controlada pelo processo 18 F I ESCALONAMENTO COOPERATIVO Vantagens – Aumenta o grau de multiprogramação. Desvantagens – Caso um processo não verifique a fila de mensagens, os demais não terão chance de serem executados. 19 ESCALONAMENTO CIRCULAR (Round Robin Schedule) Escalonamento preemptivo (preempção por tempo) Projetado para sistemas de tempo compartilhado. É semelhante ao FIFO com preempção por tempo. Existe um tempo limite para o uso do processados ( time-slice). No fim deste tempo, o sistema operacional interrompe o processo, salva seu contexto e o direciona ao final da fila de pronto. Preempção por tempo F I 20 ESCALONAMENTO CIRCULAR (Round Robin Schedule) Time Slice = 2 ut Tempo de espera Tempo que um processo fica no estado de pronto aguardando ser executado Tempo de Turnaround Tempo que leva desde a criação até seu término Tempo Médio de Espera (0 + 2 + 4 )/3 = 2,0 u.t Tempo Médio de Turnaround (17 + 10 + 11 )/3 = 12,6 u.t 21 ESCALONAMENTO CIRCULAR (Round Robin Schedule) Vantagens – Não permitir que um processo monopolize a CPU (redução do tempo de espera). – Muito adequado para sistemas interativos Desvantagens – Processos CPU-bound são mais beneficiados no uso do processador do que os I/O-bound, pois tendem a utilizar por completo a fatia de tempo. 22 ESCALONAMENTO POR PRIORIDADES Escalonamento Preemptivo (preempção por prioridade) Existe filas com prioridades definidas. Os processos em estado de pronto estarão na fila correspondente à sua própria prioridade (os processos possuem uma prioridade). Preempção por prioridade: – Implementada por interrupção gerada em determinados intervalos de tempo Caso haja um processo na fila de pronto com prioridade maior de que o processo em execução, o sistema operacional realiza a preempção. – O processo com maior prioridade em estado de pronto é escolhido para execução (escalonado). 23 ESCALONAMENTO POR PRIORIDADES Prioridade de Execuçãocaracterística do Contexto de Software do Processo – Prioridade Estática (a prioridade do processo não é alterada durante a existência do processo) – Prioridade Dinâmica (a prioridade do processo pode ser alterada de acordo com critérios do sistema operacional) 24 ESCALONAMENTO POR PRIORIDADES Tempo Médio de Espera (3 + 13 + 0 )/3 = 5,3 u.t Tempo Médio de Turnaround (13 + 17 + 3 )/3 = 11 u.t 25 ESCALONAMENTO POR PRIORIDADES Vantagens – Permite diferenciar processos de acordo com sua importância. – Útil em sistemas de tempo real Desvantagens – Starvation • Processos com baixa prioridade podem ficar indefinidamente na fila de pronto • Solução: incremento gradual da prioridade de processos que ficam muito tempo na fila de pronto 26 ESCALONAMENTO CIRCULAR POR PRIORIDADES Escalonamento Preemptivo (por prioridade ou por fatia de tempo) Corresponde ao Escalonamento por prioridade onde a preempção ocorre por prioridade ou por término da fatia de tempo 27 ESCALONAMENTO POR MÚLTIPLAS FILAS Existem várias filas de processos em estado de pronto com uma prioridade específica. As filas estão associadas aos tipos de processos (ex: sistema, iterativos, batch). Os processos em estado de pronto estarão na fila correspondente ao tipo de processo que ele representa (o processo não possui prioridade, ficando esta característica associada a fila) Cada fila possui um mecanismo próprio de tipo de escalonamento. Sistema Operacional só pode escalonar processo de uma fila caso todas as outras filas de maior prioridade estejam vazias Escalonamento por prioridade Escalonamento Circular Escalonamento Circular 28 ESCALONAMENTO POR MÚLTIPLAS FILAS Vantagens – Diversos mecanismos de escalonamento em um mesmo sistema operacional Desvantagens – Um processo não pode ser redirecionado para uma outra fila mais adequada (caso altere seu comportamento no decorrer do tempo) 29 POLÍTICAS DE ESCALONAMENTO EM SISTEMAS DE TEMPO COMPARTILHADO 30 Os sistemas de tempo real caracterizam-se pelo processamento interativo (exigem tempo de espera pequeno) A MAIORIA DOS SISTEMAS OPERACIONAIS DE TEMPO COMPARTILHADO UTILIZAM O ESCALONAMENTO CIRCULAR COM PRIORIDADES DINÂMICAS 31 POLÍTICAS DE ESCALONAMENTO EM SISTEMAS DE TEMPO REAL 32 POLÍTICAS DE ESCALONAMENTO EM SISTEMAS DE TEMPO REAL O escalonamento por prioridade é o mais adequado desde que a cada processo é associado uma prioridade em função da importância do processo dentro da aplicação 33 Exercício 01 Exercício 01 P1 P2 P3 P4 P1 P2 P3 P4 P1 P3 P4 P1 P4 P4 35 Estados de um Processo Exercício Mudança de Estados de um Processo Escalonamento 37 Vamos supor que temos a seguinte situação: – Processos na fila estado de pronto: • J-> I-> H->G->F->E->D->C – Processo B em execução – Processos na fila do estado de espera: •A Indique como ficarão as filas e o processo em execução de acordo com os eventos discriminados Escalonamento Escalonamento Escalonamento