Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante...

35
Sistemas Operacionais Gerência de Processador

Transcript of Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante...

Page 1: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

Sistemas

Operacionais Gerência de Processador

Page 2: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

Sumário

1. Introdução

2. Funções Básicas do Escalonamento

3. Critérios de Escalonamento

4. Escalonamento

1. Não-Preemptivo

2. Preemptivo

5. Políticas de Escalonamento

1. Fila

2. Menor Trabalho

3. Menor Tempo Restante

4. Cooperativo

5. Circular

6. Circular Virtual

7. Prioridades

8. Circular com Prioridades

9. Múltiplas Filas

10. Múltiplas Filas com Realimentação

6. Escalonamento do Sistema

1. Sistemas de Tempo Compartilhado

2. Sistemas de Tempo Real

Page 3: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

1. Introdução

A gerência do processador tornou-se uma das atividades mais importantes em um sistema operacional.

Diversos processos podem estar no estado de pronto.

Critérios devem ser estabelecidos para determinar qual o processo será escolhido para fazer uso do processador.

Os critérios utilizados para esta seleção compõem a chamada política de escalonamento.

A política de escalonamento é a base da gerência do processador e da multiprogramação em um sistema operacional.

Page 4: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

2. Funções Básicas do Escalonamento

A política de escalonamento de um sistema operacional tem diversas funções básicas, como:

Manter o processador ocupado a maior parte do tempo.

Maximizar o throughput do sistema.

Balancear o uso da CPU entre processos (equidade).

Privilegiar a execução de aplicações críticas.

Oferecer tempos de resposta razoáveis para usuários interativos.

Page 5: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

2. Funções Básicas do Escalonamento

A política de escalonamento depende do propósito e das características do sistema operacional (SO).

Sistemas de tempo compartilhado: devem considerar um escalonamento que trate todos os processos de forma igual.

Sistemas de tempo real: devem considerar um escalonamento capaz de priorizar a execução de processos críticos.

O escalonador (scheduler) é a rotina do SO que tem como principal função implementar os critérios da política de escalonamento.

O dispatcher é responsável pela troca de contexto dos processos após o escalonador determinar qual processo deve fazer uso do processador.

Page 6: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

2. Funções Básicas do Escalonamento

Em ambientes que implementam apenas processos, o escalonamento é realizado com base nos processos prontos para execução.

Em sistemas que implementam threads, o escalonamento é realizado entre threads no estado de pronto - independentemente do processo.

Podemos considerar o processo como sendo a unidade de alocação de recursos, enquanto o thread é a unidade de escalonamento.

O termo processo será utilizado de forma genérica como sendo o elemento selecionado pelo escalonador.

Page 7: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

2. Funções Básicas do Escalonamento

Page 8: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

3. Critérios de Escalonamento

Os principais critérios que devem ser considerados em uma política de escalonamento são:

1. Taxa de utilização do processador

Na maioria dos sistemas é desejável que o processador permaneça a maior parte do seu tempo ocupado.

Uma utilização na faixa de 30% indica um sistema com uma carga de processamento baixa.

Na faixa de 90% indica um sistema bastante carregado, próximo de sua capacidade máxima.

Page 9: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

3. Critérios de Escalonamento

2. Throughput

Throughput representa 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.

Page 10: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

3. Critérios de Escalonamento

3. Tempo de Processador

Tempo de processador é o tempo que um processo leva no estado de execução durante seu processamento.

As políticas de escalonamento não influenciam o tempo de processador de um processo, sendo este tempo função apenas do código da aplicação e da entrada de dados.

4. Tempo de Espera

Tempo de espera é o tempo total que um processo permanece na fila de pronto, aguardando para ser executado.

Page 11: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

3. Critérios de Escalonamento

5. Tempo de Turnaround

Tempo de Turnaround é o tempo que um processo leva desde a sua criação até seu término, levando em consideração:

Todo o tempo gasto na espera para alocação de memória,

Espera na fila de pronto (tempo de espera),

Processamento na UCP (tempo de processador) e

Na fila de espera (por algum recurso ou resposta), como nas operações de E/S.

As políticas de escalonamento buscam minimizar esse tempo.

Page 12: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

3. Critérios de Escalonamento

6. Tempo de Resposta

Tempo de resposta é o tempo decorrido entre uma requisição ao sistema ou à aplicação e o instante em que a resposta é exibida.

Em sistemas interativos :

O tempo de resposta é o tempo decorrido entre a última tecla digitada pelo usuário e o início da exibição do resultado no monitor.

O tempo de resposta deve ser de poucos segundos.

Em geral, o tempo de resposta não é limitado pela capacidade de processamento do sistema computacional, mas pela velocidade dos dispositivos de E/S.

Page 13: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

3. Critérios de Escalonamento

De uma maneira geral, qualquer política de escalonamento busca otimizar:

A taxa de utilização do processador e

O throughput.

Ao mesmo tempo em que tenta diminuir:

Tempo de Turnaround;

Tempo Espera e

Tempo de Resposta.

Naturalmente, a importância de um critério em detrimento de outros depende do tipo de sistema operacional.

Nos sistemas interativos o tempo de resposta tem grande relevância.

Page 14: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

4.1. Formas de Escalonamento Não Preemptivo

No escalonamento não preemptivo, quando um processo está em execução nenhum evento externo pode ocasionar a perda do uso do processador.

Esse foi o primeiro tipo de escalonamento implementado nos sistemas multiprogramáveis.

O processo só sai do estado de execução:

Se terminar seu processamento ou;

Executar instruções do próprio código que ocasionem uma mudança para o estado de espera.

Page 15: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

4.2. Formas de Escalonamento Preemptivo

No escalonamento preemptivo, o sistema operacional pode interromper um processo em execução e passá-lo para o estado de pronto, com o objetivo de alocar outro processo no processador.

Com o uso da preempção, é possível ao sistema:

1. Priorizar a execução de processos.

2. Implementar políticas de escalonamento que compartilhem o processador de maneira mais uniforme.

A maioria dos sistemas operacionais atuais implementam políticas de escalonamento preemptivas.

Page 16: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.1. Políticas de Escalonamento Fila

O processo que chegar primeiro ao estado de pronto é selecionado para execução na fila.

Processo em estado de espera o próximo da fila é escalonado.

Todos os processos quando saem do estado de espera entram no final da fila de pronto.

Não Preemptivo

First-In-First-Out - FIFO scheduling

Page 17: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.1. Políticas de Escalonamento Fila

Algumas características:

Simples e não-preemptivo.

Não é possível prever quando um processo terá sua execução iniciada.

O algoritmo de escalonamento não se preocupa em melhorar o tempo médio de espera.

Utiliza apenas a ordem de chegada dos processos à fila de pronto.

Processo CPU-Bound levam vantagem no uso do processador sobre processos I/O-Bound.

Page 18: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.2. Políticas de Escalonamento Menor Trabalho

Escalonamento de menor trabalho (Shortest-Job-First - SJF scheduling)

O processo em estado de pronto que necessitar de menos tempo de UCP para terminar seu processamento é selecionado para execução.

Na sua concepção inicial, o escalonamento SJF é não-preemptivo.

A sua vantagem sobre o escalonamento em fila está na redução do tempo médio de turnaround dos processos.

Porém no SJF é possível haver starvation para processos com tempo de processador muito longo ou do tipo CPU-Bound.

Page 19: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.3. Políticas de Escalonamento Menor Tempo Restante

Escalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling)

O escalonamento de menor trabalho com preempção é conhecido como escalonamento de menor tempo restante.

Toda vez que um processo no estado de pronto tem um tempo de processador estimado menor do que o processo em execução, o sistema operacional realiza uma preempção.

O sistema operacional também deve ser o responsável por estimar os tempos de processador dos processos e o risco de starvation continua presente.

Page 20: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.4. Políticas de Escalonamento Cooperativo

O escalonamento cooperativo busca aumentar o grau de multiprogramação em políticas de escalonamento não preemptivos.

Um processo em execução pode voluntariamente liberar o processador, retornando à fila de pronto e possibilitando que um novo processo seja escalonado, permitindo uma melhor distribuição no uso do processador.

A principal característica desse escalonamento é que um processo libera a CPU de maneira cooperativa para um outro processo:

O processador é liberado exclusivamente pelo processo em execução.

O processo em execução verifica periodicamente uma fila de mensagens para ver se existem outros processos na fila de pronto.

Page 21: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.5. Políticas de Escalonamento Circular

Similar ao escalonamento fila.

Existe um tempo limite para o uso contínuo do processador denominado fatia de tempo (time-slice).

Preemptivo

Page 22: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.5. Políticas de Escalonamento Circular

Algumas características:

Não permite que um processo monopolize a CPU, sendo o tempo máximo alocado continuamente igual à fatia de tempo.

Processos CPU-Bound são beneficiados no uso do processador em relação a processos I/O-Bound.

Devido às suas características, os processos CPU-Bound tendem a utilizar por completo a fatia de tempo.

Enquanto os processos I/O-Bound têm mais chances de passar para o estado de espera antes de sofrerem preempção por tempo.

Page 23: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.6. Políticas de Escalonamento Circular Virtual

Busca reduzir esse benefício de processos CPU-Bound com relação a processos I/O-Bound.

Os processos da fila auxiliar têm preferência em relação à fila de pronto.

Preemptivo

Page 24: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.7. Políticas de Escalonamento Prioridades

Os processos não podem sofrer preempção por tempo.

Pode ser implementado de uma maneira não preemptiva.

Preemptivo

Page 25: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.7. Políticas de Escalonamento Prioridades

Um dos principais problemas desse escalonamento é o starvation.

Processos de baixa prioridade podem não ser escalonados, permanecendo indefinidamente na fila de pronto.

Uma solução para este problema é a técnica de aging.

Este mecanismo incrementa gradualmente a prioridade de processos que permanecem por muito tempo na fila de pronto.

O escalonamento por prioridades é bastante útil em sistemas de tempo real e nas aplicações de controle de processos, como também pode ser em aplicações de tempo compartilhado, onde, às vezes, é necessário priorizar o escalonamento de determinados processos.

Page 26: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.8. Políticas de Escalonamento Circular com Prioridades

Os processos podem sofrer preempção por tempo ou prioridade.

Preemptivo

Page 27: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.8. Políticas de Escalonamento Circular com Prioridades

A principal vantagem desse escalonamento é permitir melhor balanceamento no uso do processador em sistemas de tempo compartilhado:

Processos com perfil I/O-bound devem receber do administrador do sistema prioridades maiores que as dos processos CPU-bound.

Isso permite ao sistema operacional praticar uma política compensatória entre processos de perfis distintos, compartilhando o processador de forma mais igualitária, daí proporcionando melhor balanceamento.

Page 28: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.8. Políticas de Escalonamento Circular com Prioridades

O escalonamento circular com prioridades possui duas variações:

1. Prioridades estáticas

A prioridade definida no contexto de software de cada processo permanece inalterada ao longo de sua existência.

2. Prioridades dinâmicas

É possível que a prioridade de um processo seja alterada dinamicamente pelo administrador do sistema ou, em algumas políticas, pelo próprio sistema operacional.

Page 29: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.9. Políticas de Escalonamento Múltiplas Filas

Os processos não têm prioridades, mas as filas sim.

Possibilidade de escalonamentos distintos em um mesmo sistema.

Preemptivo

Page 30: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.9. Políticas de Escalonamento Múltiplas Filas

Uma desvantagem deste escalonamento é que:

No caso de um processo alterar seu comportamento no decorrer do tempo, o processo não poderá ser redirecionado para uma outra fila mais adequada.

A associação de um processo à fila é determinada na criação do processo, permanecendo até o término do seu processamento.

Page 31: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.10. Políticas de Escalonamento Múltiplas Filas com Realimentação

Um processo criado, entra no final da fila de maior prioridade.

A troca de filas ocorre quando há preempção por tempo.

Fila adaptado com fatia de tempo.

Fila de menor prioridade, que utiliza o escalonamento circular.

Page 32: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

5.10. Políticas de Escalonamento Múltiplas Filas com Realimentação

Pontos interessantes a serem considerados são:

Processos I/O bound tendem a permanecer em filas de alta prioridade, pois tendem a não sofrer preempção por tempo.

Processos CPU-bound vão progressivamente perdendo prioridade, pois vão sofrendo preempção por tempo.

A complexidade de implementação pode ocasionar um grande overhead ao sistema.

Page 33: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

6.1. Escalonamento do Sistema Sistemas de Tempo Compartilhado

Em geral, os sistemas de tempo compartilhado caracterizam-se pelo processamento interativo.

Os usuários interagem com as aplicações exigindo tempos de respostas baixos.

A escolha da política de escalonamento deve levar em consideração o compartilhamento dos recursos de forma equitativa.

Para possibilitar o uso balanceado do processador entre processos.

A maioria dos sistemas operacionais de tempo compartilhado utiliza o escalonamento circular com prioridades dinâmicas.

Page 34: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

6.2. Escalonamento do Sistema Sistemas de Tempo Real

O escalonamento em sistemas de tempo real deve levar em consideração a importância relativa de cada tarefa na aplicação, não sendo admitidas variações no tempo de resposta.

O escalonamento por prioridades é o mais adequado, já que, para cada processo, uma prioridade é associada em função da importância do processo dentro da aplicação.

Não deve existir o conceito de fatia de tempo.

A prioridade de cada processo deve ser estática.

Page 35: Sistemas Operacionais - s3-sa-east-1. · PDF fileEscalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção

[Fim] Gerência de Processador

“Até cortar os próprios defeitos pode ser perigoso. Nunca se sabe qual é o defeito que sustenta nosso edifício inteiro.”

Clarice Lispector

Próximo Módulo: Gerência de Memória