A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Gerência do processador

Apresentações semelhantes


Apresentação em tema: "Gerência do processador"— Transcrição da apresentação:

1 Gerência do processador
(Escalonamento) Faculdade PITÁGORAS – Outubro de 2012 Prof. Robert Gans

2 Objetivos Este capítulo apresenta:
Os objetivos do escalonamento de processador. Escalonamento preemptivo versus escalonamento não preemptivo. O papel das prioridades no escalonamento. Critérios de escalonamento. Algoritmos de escalonamento comuns. Os conceitos de escalonamento por prazo e de tempo real.

3 8.1 Introdução Política de escalonamento de processador
Determina que processo é executado em um determinado momento. Escalonadores diferentes terão metas distintas: Maximizar o rendimento. Minimizar a latência. Evitar o adiamento indefinido. Concluir o processo de acordo com o prazo estabelecido. Maximizar a utilização do processador. Privilegiar a execução de aplicações críticas Balancear o uso da CPU entre processos Oferecer tempos de resposta razoáveis aos usuários interativos.

4 8.1 Introdução Conceitos Importantes:
Utilização do processador: corresponde a uma taxa de utilização, que na maioria dos sistemas varia entre 30 e 90%. Uma utilização abaixo dos 30% indicaria um sistema ocioso, enquanto uma taxa de utilização acima dos 90% pode indicar um sistema bastante carregado, próximo da sua capacidade máxima (em alguns casos tal situação pode levar a um crash – travamento do sistema). Throughput: é o número de processos executados em um determinado intervalo de tempo. Quanto maior o throughput, maior o número de tarefas executadas em função do tempo. A maximização do throughput é desejada na maioria dos sistemas. Tempo de Processador: é o tempo que um processo leva no estado de execução, durante seu processamento. As políticas de escalonamento não interferem neste parâmetro, sendo este tempo função apenas do código executável e da entrada/saída de dados.

5 8.1 Introdução Conceitos Importantes:
Tempo de Espera (pela CPU): é todo o tempo que o processo permanece na fila de pronto, aguardando a liberação da CPU para ser executado. A redução deste tempo de espera é desejada pela maioria das políticas de escalonamento. Tempo de Turnaround: é o tempo total que o processo permaneceu no sistema, desde sua criação até o momento em que é encerrado. São contados os tempos de: alocação de memória. espera na fila de pronto. interrupção (E/S). Tempo de Resposta: é o tempo decorrido entre uma requisição ao sistema e o instante em que a resposta começa a ser exibida. Em sistemas interativos, como aplicações on-line ou acesso à Web, os tempos de resposta devem ser da ordem de apenas poucos segundos.

6 8.2 Níveis de escalonamento
Escalonamento de alto nível Determina que serviços podem disputar os recursos. Controla o número de processos admitidos por vez no sistema. Escalonamento de nível intermediário Determina quais processos terão permissão de competir por processadores. Responde a flutuações na carga do sistema. Escalonamento de baixo nível Atribui prioridades. Designa processadores a processos.

7 8.2 Níveis de escalonamento

8 8.3 Escalonamento preemptivo versus escalonamento não preemptivo
Processos preemptivos Podem ser removidos do processador em que estiverem sendo executados. Podem melhorar o tempo de resposta. São importantes para ambientes interativos. Os processos que sofrem preempção permanecem na memória. Processos não preemptivos São executados até o fim ou até que passem o controle a um processador. Processos insignificantes podem bloquear processos importantes indefinidamente.

9 8.4 Prioridades Prioridades estáticas Prioridades dinâmicas
Prioridades permanentes atribuídas a um processo. São fáceis de implementar. Sua sobrecarga é relativamente baixa. Não respondem a mudanças no ambiente. Prioridades dinâmicas Respondem a mudanças. Promovem interatividade estável. Sua sobrecarga é maior que a das prioridades estáticas. Isso ocorre por causa de sua maior responsividade.

10 8.5 Objetivos de escalonamento
Objetivos diferentes, dependendo do sistema: Maximizar o rendimento. Maximizar o número de processos interativos cujo tempo de resposta seja aceitável. Minimizar a utilização de recursos. Evitar o adiamento indefinido. Impor prioridades. Minimizar a sobrecarga. Garantir previsibilidade.

11 8.5 Objetivos de escalonamento
Várias metas são comuns à maioria dos escalonadores: Imparcialidade. Previsibilidade. Escalabilidade.

12 8.6 Critérios de escalonamento
Processo orientado a processador Usa todo o tempo disponível do processador. Processo orientado a E/S Gera uma solicitação de E/S rapidamente e devolve o processador. Processo em lote Abrange trabalhos que o sistema executará sem interagir com o usuário. Processos interativos Exige continuamente informações do usuário.

13 8.7 Algoritmos de escalonamento
Determinam quando e por quanto tempo cada processo é executado. Tomam decisões sobre: Preemptividade. Prioridade. Tempo de execução. Tempo até a conclusão. Imparcialidade.

14 8.7.1 Escalonamento primeiro-a-entrar-primeiro-a-sair (FIFO)
Escalonamento FIFO (First In First Out) É o esquema mais simples. Os processos são despachados de acordo com a hora de chegada e permanece utilizando o processador até terminar sua execução ou ser interrompido por E/S. Não é preemptível. Raramente é usado como algoritmo de escalonamento principal devido às suas deficiências : Dificuldade de se prever o início da execução de um processo, já que a ordem de chegada à fila de pronto deve ser observada à risca. Outro problema é quanto aos tipos de processo, onde os CPU-bound levam vantagem no uso do processador em relação aos do tipo I/O-bound, pois o sistema não trata este tipo de diferença. O escalonamento FIFO foi inicialmente implementado em sistemas monoprogramáveis, sendo ineficiente se aplicado em sistemas interativos de tempo compartilhado.

15 8.7.1 Escalonamento primeiro-a-entrar-primeiro-a-sair (FIFO)
Figura 8.2 Escalonamento primeiro-a-entrar-primeiro-a-sair. Abaixo, um exemplo de escalonamento utilizando o método FIFO: a ordem de chegada dos processos (A, B, C) na fila de pronto foi obedecida, e, não tendo sido interrompidos por E/S, os processos executaram inteiramente até terminar, de acordo com seus tempos necessários para execução. OBS: u.t. = Unidades de Tempo

16 8.7.2 Escalonamento por processo-mais-curto-primeiro (SPF ou SJF Shortest Job First)
O escalonador seleciona o processo cujo tempo de finalização é o menor. Tempo de espera médio menor que no FIFO. Reduz o número de processos em espera. Variação possivelmente grande dos tempos de espera. Não é preemptivo. A velocidade do tempo de resposta diminui para as solicitações interativas que estão chegando. Baseia-se na estimativa do tempo de execução até a conclusão. Pode ser impreciso ou inválido. Não é adequado para os modernos sistemas interativos. Como exemplo, vamos utilizar os mesmos processos executados no escalonamento FIFO, com seus respectivos tempos de execução em u.t. (unidades de tempo): processo A com 10 u.t., processo B com 8 u.t, e o processo C com 9 u.t. Como neste escalonamento o que importa é o tempo de execução, a nova ordem de escalonamento para utilização da CPU será B, C e A, como segue:

17 8.7.3 Escalonamento por alternância circular (RR)
Escalonamento por alternância circular (Round-Robin — RR) Baseia-se no FIFO. Projetado especialmente para sistemas de tempo compartilhado. Os processos são executados apenas durante um determinado período denominado intervalo de tempo ou quantum. É preemptível. (É conhecido como preempção por tempo) Exige que o sistema mantenha vários processos na memória para diminuir a sobrecarga. É usado com freqüência como parte de algoritmos mais complexos. A principal vantagem deste escalonamento é não permitir que um processo monopolize a CPU uma desvantagem é que os processos CPU-bound são beneficiados no uso do processador em relação aos processos I/O-bound, pois tendem a utilizar totalmente a fatia de tempo recebida.

18 8.7.3 Escalonamento por alternância circular (RR)
Figura 8.3 Escalonamento por alternância circular. A figura a seguir mostra o escalonamento circular com 3 processos, onde a fatia de tempo é igual a 2 u.t. No exemplo não estão sendo levados em consideração tempos de troca de contexto entre os processos, nem o tempo perdido em operações de E/S. Os processos A, B e C, gastam 10 u.t, 6 u.t e 3 u.t., respectivamente.

19 8.7.3 Escalonamento por alternância circular (RR)
Tamanho do quantum Determina o tempo de resposta a solicitações interativas. Quantum muito grande Os processos são executados durante longos períodos. Degenera o FIFO. Quantum muito pequeno O sistema despende mais tempo chaveando o contexto do que executando os processos. Tamanho médio Longo o suficiente para que os processos interativos lancem solicitações de E/S. Processos em lote continuam consumindo maior parte do tempo processado.

20 8.7.4 Filas multiníveis de retorno
Processos diferentes têm necessidades diferentes. Os processos interativos curtos orientados a E/S geralmente devem ser executados antes dos processos em lote orientados a processador. Os padrões de comportamento não são imediatamente evidentes para o escalonador. Filas multiníveis de retorno Os processos que chegam entram na fila de nível superior e sua prioridade de execução é maior que a dos processos nas filas inferiores. Os processos longos são continuamente transferidos para os níveis inferiores. Atribuem maior prioridade aos processos curtos e aos processos orientados a E/S. Os processos longos serão executados quando da conclusão dos processos curtos e orientados a E/S. Os processos de cada fila são atendidos por meio do escalonamento por alternância circular. Os processos que entram na fila de nível superior provocam preempção nos processos em execução.

21 8.7.4 Filas multiníveis de retorno
O algoritmo precisa responder a mudanças no ambiente. Muda os processos para diferentes filas à medida que eles alternam entre o procedimento interativo e em lote. Exemplo de mecanismo adaptativo: Os mecanismos adaptativos provocam uma sobrecarga em geral compensada por uma percepção mais precisa do comportamento do processo.

22 8.7.5 Escalonamento por fração justa ou Fair Share Scheduling (FSS)
O FSS controla o acesso do usuário aos recursos do sistema. Alguns grupos usuários são mais importantes que outros. Garante que os grupos menos importantes não monopolizem os recursos. Os recursos que não estão sendo usados são distribuídos de acordo com a proporção de recursos que cada grupo alocou. Atribui-se maior prioridade aos grupos que não atendem às metas de utilização de recursos. Considera não os processos em si, mas os usuários, para que a divisão de CPU seja justa entre eles. As frações de tempo de CPU são dadas aos usuários, independentemente do número de processos cada um vai executar Ex. Usuário 1 roda processos A, B, C e D Usuário 2 roda processo E Se cada um tiver 50% da CPU, por round-robin A E B E C E D E A E A E B E ... Se Usuário 1 tiver 66% e Usuário 2 34% A B E C D E A B E C D E A B ...

23 8.7.5 Escalonamento por fração justa
Figura 8.5 Exempo de não FSS; Escalonador do processo-padrão do UNIX. O escalonador concede o processador aos usuários, cada um deles pode ter muitos processos. (Propriedade da AT&T Archives. Reproduzido com a permissão da AT&T.)

24 8.7.5 Escalonamento por fração justa
Figura 8.6 Escalonador por fração justa. O escalonador por fração justa divide a capacidade de recursos dos sistema em porções, as quais são alocadas por escalonadores de processo designados a vários grupos de fração justa. (Propriedade da AT&T Archives. Reproduzido com a permissão da AT&T.)

25 8.8 Escalonamento por prioridade
Funciona com base num valor associado a cada processo, denominado prioridade de execução. O processo com maior prioridade na fila de PRONTO é sempre o escolhido para ocupar o processador, sendo os processos com prioridades iguais escalonados pelo critério FIFO. Neste escalonamento o conceito da fatia de tempo não existe. Como conseqüência disto, um processo em execução não pode sofrer preempção por tempo. Neste escalonamento a perda do uso do processador somente ocorrerá no caso de uma mudança voluntária para o estado de espera (interrupção por E/S), ou quando um outro processo de prioridade maior passa (ou chega) para o estado de pronto. Neste caso o sistema operacional interrompe o processo em execução, salva seu contexto e o coloca na fila de pronto, dando lugar na CPU ao processo prioritário. Este mecanismo é chamado de preempção por prioridade.

26 8.8 Escalonamento por prioridade
A figura a seguir mostra a execução dos processos A, B e C, com tempos de execução de 10, 4 e 3 u.t. respectivamente, e valores de prioridades de 2, 1 e 3, também respectivamente. Na maioria dos sistemas, valores menores correspondem à MAIOR prioridade. Assim, a ordem de execução será invertida para B, A e C.

27 8.8 Escalonamento por prioridade
A prioridade de execução faz parte do contexto de software do processo, e pode ser estática (quando não pode ser alterada durante a existência do processo) ou dinâmica (quando pode ser alterada durante a existência do processo). Este escalonamento é muito usado em sistemas de tempo real, com aplicações de controle de processos, controle de tráfego (sinais de trânsito, de trens/metrô, aéreo), robótica, entre outros.

28 8.9 Escalonamento por prazo
O processo precisa ser concluído em um prazo específico. É usado quando um processo precisa ser concluído a tempo, pois do contrário seria inútil. É difícil de implementar. Deve programar as solicitações de recursos com antecedência. Sua sobrecarga é significativa. O atendimento a outros processos pode degradar.

29 8.10 Escalonamento de tempo real
Está relacionado com o escalonamento por prazo. Os processos têm restrição de tempo. Engloba também tarefas que são executadas periodicamente. Duas categorias: (Crítico e não crítico) A severidade da pena pelo não cumprimento das tarefas num determinado intervalo de tempo é o fator que os distingüe. Escalonamento de tempo real não crítico Não garante que as restrições de tempo serão cumpridas. Por exemplo, reprodução de multimídia. Escalonamento de tempo real crítico As restrições de tempo sempre serão cumpridas. O não cumprimento do prazo pode ter resultados catastróficos. Por exemplo, controle de tráfego aéreo. Outra classificação: (Estático e Dinâmico)

30 8.10 Escalonamento de tempo real (Estático)
Antes de avançarmos veremos alguns conceitos importantes em relação a estes escalonamentos:

31 8.10 Escalonamento de tempo real (Estático)
Não ajusta as prioridades ao longo do tempo. Sua sobrecarga é baixa. É adequado para sistemas cujas condições mudam raramente. Exemplos de Escalonadores de tempo real estático: Escalonamento por taxa monotônica (rate monotonic scheduling – RMS) A prioridade do processo eleva-se monotonicamente (linearmente) de acordo com a freqüência com que deve ser executado. (Quanto mais frequente, maior a prioridade) Escalonamento por taxa monotônica com prazo Útil para um processo periódico cujo prazo não é o mesmo que o do seu período.

32 8.10 Escalonamento de tempo real (Dinâmico)
Ajusta as prioridades em resposta a situações variáveis. Não atribuem prioridades fixas aos processos. As decisões de escalonamento são tomadas em tempo de execução e as prioridades dos processos podem mudar. Sua sobrecarga pode ser significativa, mas deve garantir que essa sobrecarga não interfira no cumprimento dos prazos. As prioridades baseiam-se normalmente no prazo dos processos. Prazo-mais-curto-primeiro (Earliest Deadline First - EDF) Algoritmo preemptivo que sempre despacha primeiro o processo cujo prazo é o mais curto. Folga-mínima-primeiro Semelhante ao EDF, mas baseia sua prioridade na folga, que, por sua vez, é baseada no prazo do processo e no tempo de execução restante até sua conclusão.


Carregar ppt "Gerência do processador"

Apresentações semelhantes


Anúncios Google