Gerência do Processador Adão de Melo Neto 1 Introdução Q Sistemas Multiprogramáveis: – Múltiplos processos podem permanecer na memória principal compartilhando o uso da CPU. – POLÍTICA DE ESCALONAMENTO Como diversos processos podem estarem estado de pronto devem ser estabelecidos critérios para determinar qual processo será escolhido para fazer uso do processador Programa Processo 2 Processo/Memória Principal (revisão) 3 Critérios de Escalonamento Q Utilização do Processador – 30% (sistema com carga baixa) e 90% (sistema bastante carregado) Q Throughput – Número de processos executados em determinado intervalo de tempo Q 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 Q Tempo de espera – Tempo que um processo fica no estado de pronto aguardando ser executado Q Tempo de Turnaround – Tempo que leva desde a criação até seu término Q Tempo de Resposta – Tempo decorrido desde a requisição ao sistema ou aplicação até o instante que a resposta é exibida Busca-se maximizar Busca-se minimizar 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 4 Funções 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. - Maximizar o tempo de resposta Rotina SCHEDULER Implementar a política de escalonamento do processador Rotina DISPATCHER Implementar a troca de contexto entre processos 5 Escalonamentos Preemptivos Não-Preemptivos PREEMPÇÃO Capacidade de um sistema operacional interromper um processo em execução e substituí-lo por um outro ESCALONAMENTOS NÃOPREEMPTIVOS (nenhum evento externo 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 na CPU) 6 Mudança de Estados de um Processo (revisão) (B) EXECUÇÃO → ESPERA (gerada por eventos do processo como operações de E/S) (gerada por eventos externo: Sistema operacional suspende por um período de tempo a execução do processo) (A) PRONTO → EXECUÇÃO ( depende da política de escalonamento do Sistema Operacional) (D) EXECUÇÃO → PRONTO (término da fatia de tempo que processo possui para sua execução) (C) ESPERA → PRONTO (operação solicitada é atendida ou recurso esperado é concedido 7 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 8 ESCALONAMENTO FIRST-IN_FIRST-OUT (FIFO) Q Q Q Q Não-preemptivo Os processos que passam para o estado de pronto ⇒ entram no final de uma fila e são escalonados quando chegam ao seu início. Processo em execução termina o seu processamento ou vai para o estado de espera ⇒ o primeiro processo da fila é escalonado. Processos que saem da fila de estado de espera ⇒ entram no final da fila de pronto. Final Início 1o processo Processo em execução Escalonamento FIFO 9 ESCALONAMENTO FIRST-IN_FIRST-OUT (FIFO) Q Q Duas situações distintas que 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 Médio de Espera (7 + 0 + 4 )/3 = 3,7 u.t A→C→B 10 ESCALONAMENTO FIRST-IN_FIRST-OUT (FIFO) Q Vantagens – Simples Q Desvantagens – Impossibilidade de se prever quando um processo terá sua execução iniciada (não se preocupa em melhorar o tempo médio do processo) – Processos CPU-bound levam vantagem em relação aos processos I/O-bound 11 ESCALONAMENTO SHORSTEST-JOB-FIRST (SJF) Q Q Q Não-preemptivo em sua concepção original 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) Como será executado Ordem na Fila (exemplo) 12 ESCALONAMENTO SHORSTEST-JOB-FIRST (SJF) Q Tempo de Processador – A (10), B (4) e C (3) Tempo Médio de Espera (7 + 3 + 0 )/3 = 3,3 u.t 13 ESCALONAMENTO SHORSTEST-JOB-FIRST (SJF) Q Vantagens – Redução do tempo médio de turnaround (desde da criação do processo até o seu fim)dos processos. Q Desvantagens – Impossibilidade de se estimar o tempo de processador para processo interativos (entrada de dados é uma ação imprevisível). – Possibilidade de starvation para processos do tipo CPU-Bound 14 ESCALONAMENTO COOPERATIVO Q Q Q Escalonamento preemptivo (preempção controlada pelo processo) Um processo em execução pode voluntariamente liberar o processador retornando à fila de pronto, possibilitando que outro processo possa ser escalonado. Um processo em execução verifica periodicamente a fila de mensagens para determinar se existem outros processos na fila de pronto. 15 ESCALONAMENTO COOPERATIVO Q Vantagens – Aumenta o grau de multiprogramação em políticas de escalonamento que não possuem mecanismo de preempção. Q Desvantagens Q – Caso um processo não verifique a fila de mensagens, os demais não terão chance de serem executados. Exemplo de Uso – Primeiros sistemas operacionais Microsoft Windows ( multitarefa cooperativa ) 16 ESCALONAMENTO CIRCULAR (Round Robin Schedule) Q Q Q Q Escalonamento preemptivo Projetado para sistemas de tempo compartilhado. Semelhante ao FIFO, porém quando passa para o estado de execução existe um tempo limite para o uso do processados (timeslice). Fim do time-slice, o sistema operacional interrompe o processo, salva seu contexto e o direciona ao final da fila de pronto. 17 ESCALONAMENTO CIRCULAR (Round Robin Schedule) Exemplo onde a fatia de tempo é igual a 2 u.t 18 ESCALONAMENTO CIRCULAR (Round Robin Schedule) Q Vantagens – Não permitir que um processo monopolize a CPU. Q Desvantagens Q – 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. Exemplo de Uso – Muito adequado para sistemas interativos 19 ESCALONAMENTO POR PRIORIDADES Q Q Q Escalonamento Preemptivo (implementável de forma não-preemptiva) Um valor (prioridade de execução) é associado a cada processo e para cada prioridade existe uma fila Reavaliação das Prioridades Periodicamente: – O processo com maior prioridade em estado de pronto é escolhido para execução (escalonado). – Processo com valores iguais de prioridade são escolhido de acordo com FIFO Q Preempção por prioridade: – Não existe o conceito de time-slice (não existe preempção por tempo) 20 ESCALONAMENTO POR PRIORIDADES PREEMPÇÃO POR PRIORIDADE Implementada por interrupção de clock gerada em determinados intervalos de tempo a fim de que a rotina de escalonamento reavalie as prioridades dos processos na fila de estado de pronto. Caso haja processos na fila de pronto com maior prioridade que o processo em execução, o sistema operacional realiza a preempção 21 ESCALONAMENTO POR PRIORIDADES IBM-AIX prioridade: 1 a 127 Prioridade de 1 a 5 22 ESCALONAMENTO POR PRIORIDADES Q Prioridade de Execução→característica do Contexto de Software do Processo – Prioridade Estática (não alterada durante a existência do processo) – Prioridade Dinâmica (pode ser alterada de acordo com critérios do sistema operacional) 23 ESCALONAMENTO POR PRIORIDADES Q Vantagens – Permite diferenciar processos de acordo com sua importância. Q Desvantagens – Starvation • Processos com baixa prioridade podem ficar indefinidamente na fila de pronto • Solução: mecanismo de aging (incremento gradual da prioridade de processos que ficam muito tempo na fila de pronto) Q Exemplo de Uso – Útil em sistemas de tempo real e aplicações de controle de processo. 24 ESCALONAMENTO CIRCULAR POR PRIORIDADES Q Q Q Escalonamento Preemptivo Um valor (prioridade de execução) é associado a cada processo e para cada prioridade existe uma fila Preempção por prioridade ou por tempo (time-slice) 25 ESCALONAMENTO POR MÚLTIPLAS FILAS Q Q Q Q Q Existem várias filas de processos em estado de pronto com uma prioridade específica. O processo não possui prioridade, ficando esta característica associada a fila As filas estão associadas aos tipos de processos (ex: sistema, iterativos, batch). Cada fila possui um mecanismo próprio de escalonamento (isto permite que alguns sejam escalonados pelo mecanismo FIFO enquanto outros pelo outro pelo circular) 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 26 ESCALONAMENTO POR MÚLTIPLAS FILAS Q Vantagens – Diversos mecanismos de escalonamento em um mesmo sistema operacional Q Desvantagens – Um processo não pode ser redirecionado para uma outra fila mais adequada (caso altere seu comportamento no decorrer do tempo) 27 POLÍTICAS DE ESCALONAMENTO EM SISTEMAS DE TEMPO COMPARTILHADO Q Q Q Caracterizam pelo processamento interativo (exigem tempo de resposta rápidos) A escolha da política para atingir este propósito deve levar em consideração o compartilhamento da CPU de forma interativa Comportamento dos processos CPU-Bound e I/O-Bound nos escalonamentos apresentados 28 POLÍTICAS DE ESCALONAMENTO EM SISTEMAS DE TEMPO COMPARTILHADO Comportamento dos processos CPU-Bound e I/O-Bound no Escalonamento FIFO Muitas operações I/O Grande parte do tempo em estado de espera Processador distribuído de forma bastante desigual 29 Mudança de Estados de um Processo (revisão) 30 POLÍTICAS DE ESCALONAMENTO EM SISTEMAS DE TEMPO COMPARTILHADO Comportamento dos processos CPU-Bound e I/O-Bound no Escalonamento Circular com time-slice igual a 5 Melhoria da distribuição do tempo de processador em relação ao FIFO 31 POLÍTICAS DE ESCALONAMENTO EM SISTEMAS DE TEMPO COMPARTILHADO Comportamento dos processos CPU-Bound e I/O-Bound no Escalonamento Circular com Prioridades Há uma melhoria do compartilhamento do uso do processador pois foi possível associar maior prioridade ao processo B (I/O-Bound) 32 POLÍTICAS DE ESCALONAMENTO EM SISTEMAS DE TEMPO COMPARTILHADO A MAIORIA DOS SISTEMAS OPERACIONAIS DE TEMPO COMPARTILHADO UTILIZAM O ESCALONAMENTO CIRCULAR COM PRIORIDADES DINÂMICAS 33 POLÍTICAS DE ESCALONAMENTO EM SISTEMAS DE TEMPO REAL Sistemas de Tempo Real É garantida a execução de processos dentro de limites rígidos de tempo, sem o risco da aplicação ficar comprometida. Escalonamento O escalonamento deve levar em consideração a importância de cada tarefa na aplicação Escalonamento mais Adequado 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 34