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

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

Arquitetura de Sistemas Operacionais

Apresentações semelhantes


Apresentação em tema: "Arquitetura de Sistemas Operacionais"— Transcrição da apresentação:

1 Arquitetura de Sistemas Operacionais
Francis Berenger Machado Luiz Paulo Maia Complementado por Sidney Lucena (Prof. UNIRIO) Capítulo 8 Gerência do Processador

2 Escalonamento Uma vez que há diversos processo na fila de pronto, qual deles selecionar para o estado de execução? Política de Escalonamento! Base da gerência do processador

3 Escalonamento Funções básicas da política de escalonamento:
Manter a CPU a mais ocupada possível Balancear o uso da CPU entre os processos Privilegiar aplicações críticas Maximizar throughput (vazão) do sistema Possibilitar tempos de resposta razoáveis para aplicações interativas (SO de tempo real)

4 Escalonamento Cada SO possui sua política de escalonamento
Escalonador (scheduler): rotina responsável por implementar a política de escalonamento Dispatcher: rotina responsável pela troca de contexto depois que o escaclonador determina qual processo vai para o estado de execução Tempo gasto para troca de contexto é chamado de latência do dispatcher Comportamento é o mesmo tanto para processos quanto para threads no estado de pronto

5 Escalonamento Critérios considerados na política de escalonamento:
Utilização da CPU Desejável maximizar Abaixo de 30%, carga baixa; acima de 90%, próximo da saturação (atenção!) Throughput Número de processos / tempo, desejável maximizar Tempo de CPU Tempo do processo no estado de execução durante todo seu processamento Não é afetado pela política de escalonamento

6 Escalonamento Critérios considerados na política de escalonamento:
Tempo de Espera Tempo total do processo na fila de pronto durante todo seu processamento, desejável minimizá-lo Tempo de Turnaround Tempo total do processo (início a fim), desejável minimizá-lo Tempo de Resposta Tempo entre uma requisição ao sistema e sua resposta (p/ex., digitação e saída no monitor) Muitas vezes limitado pelos dispositivos de E/S

7 Escalonamento Escalonamento não preemptivo:
Primeira forma de implementação Processo em execução não pode ser interrompido por evento externo e sai do estado de execução somente quando termina ou quando executa instrução que o coloque no estado de espera Escalonamento preemptivo: SO pode interromper um processo em execução e passá-lo para o estado de pronto, colocando outro em execução Permite implementar políticas de escalonamento e priorizar processos

8 Escalonamento FIFO First-In-First-Out
Primeiro a entrar na fila de pronto é selecionado para execução

9 Escalonamento FIFO ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) No ex., tempo médio de espera é diferente p/ cada caso

10 Escalonamento FIFO Simples, porém apresenta deficiências:
Impossibilidade de se prever início da execução de determinado processo Não se preocupa em otimizar critérios de escalonamento (p/ex., tempo de turnaround de processos que demandam menos CPU) Processos CPU-bound dominam o processador frente a processos I/O-bound Escalonamento do tipo não-preemptivo, atualmente adotado com algumas variações

11 Escalonamento SJF Shortest-Job-First
Processo com menor tempo de processador a executar é selecionado para execução Tende a reduzir o tempo médio de espera (ver ex.) ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)

12 Escalonamento SJF Implementação se vale de estimativas para o tempo de execução restante para os processo na fila de pronto Estimativas levam em consideração execuções anteriores de cada processo Tende a reduzir o tempo médio de espera (ver ex.) Impossibilidade de estimar tempo de processador para aplicações interativas Escalonamento considera apenas tempo de CPU na próxima vez que o processo for escalonado, não mais o tempo total até o término Estimativa baseada em média exponencial dos últimos tempos de CPU ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)

13 Escalonamento SJF Escalonamento não-preemptivo
Em relação ao escalonamento FIFO, reduz o tempo médio de turnaround dos processos Possibilidade de starvation para processos com tempo de CPU muito longos ou CPU-bound ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)

14 Escalonamento Cooperativo
Processo em execução pode, voluntariamente, liberar processador e retornar à fila de pronto Liberação do processador é tarefa exclusiva do processo em execução Processo em execução verifica periodicamente se há processos na fila de pronto para saber quando deve liberar a CPU Demais processos não serão executados se processo em execução não liberar a CPU ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)

15 Escalonamento circular
Ou Round-Robin Scheduling Escalonamento semelhante ao FIFO, porém preemptivo, onde é dada uma fatia de tempo de execução para cada processo e, ao final deste período, o processo vai para o final da fila de pronto

16 Escalonamento circular
Exemplo com fatia de tempo igual a 2 u.t.:

17 Escalonamento circular
Especialmente projetado para uso em sistemas de tempo compartilhado Fatia de tempo é chamada de time-slice ou quantum Em geral, varia de 10 a 100 ms, dependendo do SO Se o quantum for muito grande, comportamento será semelhante à política FIFO Se quantum for muito pequeno, desempenho será comprometido pelo número excessivo de preempções e conseqüentes atrasos para troca de contexto

18 Escalonamento circular
Principal vantagem é impedir o monopólio da CPU por algum processo Tempo máximo de CPU igual ao time-slice definido no sistema Processos CPU-bound levam vantagem em relação a processos I/O-bound Processos I/O-bound têm mais chance de entrar no estado de espera antes de usarem todo o time-slice

19 Escalonamento circular virtual
Refinamento do escalonamento circular, visa reduzir desbalanceamento entre processos I/O e CPU-bound Processos que saem do estado de espera vão para uma fila de pronto auxiliar e preferencial

20 Escalonamento circular virtual
Processos na fila de pronto serão escalonados apenas se a fila preferencial (auxiliar) estiver vazia Fatia de tempo para processos escalonados a partir da fila preferencial calculada de forma diferenciada Time-slice do sistema menos tempo de CPU que o processo usou da última vez que foi escalonado a partir da fila de pronto Ou seja, o tempo que faltava para o processo usar todo o time-slice no momento que este foi para o estado de espera

21 Escalonamento por prioridades
Escalonamento preemptivo com base na prioridade de execução de cada processo Processos são organizados em filas separadas de acordo com seu nível de prioridade Processos são escalonados somente quando as filas dos processos de maior prioridade estiverem vazias Processos com mesmo nível de prioridade são escalonados segundo uma política FIFO Não existe conceito de time-slice, não há preempção por tempo e sim por prioridade

22 Escalonamento por prioridades

23 Escalonamento por prioridades

24 Escalonamento por prioridades
Implementação através de interrupção de clock, a intervalos de tempo determinados, para que o escalonador verifique as filas de prioridade Também pode ser implementado de forma não-preemptiva: Processos com prioridade maior vão para o início da fila de pronto, sem causar preempção de processos com menor prioridade Cada SO implementa sua faixa de valores para as prioridades de execução P/ex., no OpenVMS, de 0 a 31; no AIX, de 127 a 0

25 Escalonamento por prioridades
Prioridade de execução do processo definida em seu contexto de software, podendo ser estática ou dinâmica Prioridade dinâmica pode ser ajustada ao longo da existência do processo segundo critérios do SO Permite ajustar critérios de escalonamento em função do comportamento dos processos Principal problema: possibilidade de Starvation! Processos com baixa prioridade podem nunca ser escalonados Uma solução é o aging: aumentar gradativamente prioridade de processos há muito na fila de pronto

26 Escalonamento por prioridades
Útil em sistemas de tempo real Útil para aplicações de controle de processos Útil para priorizar processos em sistemas de tempo compartilhado

27 Escalonamento circular com prioridades
Implementa conceito de fatia de tempo junto com prioridade Processo em execução pode sofrer preempção por tempo ou por prioridade Permite melhor balanceamento no uso da CPU Amplamente usado em sistemas de tempo compartilhado **Não** evita o starvation

28 Escalonamento circular com prioridades

29 Escalonamento por múltiplas filas
Ou Multilevel Queue Scheduling Diversas filas de pronto, cada qual com sua prioridade específica Processos associam-se às filas de acordo com suas características Se dá na criação do processo e assim permanece até seu término Mecanismos de escalonamento distintos para cada fila Prioridade não está associada ao processo, mas sim à fila

30 Escalonamento por múltiplas filas

31 Escalonamento por múltiplas filas com realimentação
Ou Multilevel Feedback Queues Scheduling Semelhante ao MQS, porém processos podem trocar de fila durante seu processamento Este ajuste é denominado mecanismo adaptativo Filas implementam FIFO com fatia de tempo, excetuando a de menor prioridade, que implementa fila circular Quanto maior a prioridade, menor o time-slice Preempção por fatia de tempo joga processo para fila com prioridade imediatamente menor Na criação, processos vão para fila mais prioritária

32 Escalonamento por múltiplas filas com realimentação

33 Escalonamento por múltiplas filas com realimentação
Complexo, mas bom para processos I/O-bound Ficam mais tempo nas filas de maior prioridade já que sofrem poucas preempções por tempo Muito tempo no estado de espera, pouco tempo no estado de execução Processos CPU-bound tendem a ser direcionados para filas com menor prioridade Quanto maior o tempo de CPU, menor sua prioridade Mudança de comportamento para I/O-bound compromete o desempenho

34 Escalonamento em Sistemas de Tempo Compartilhado
Sistemas de tempo compartilhado caracterizam-se pelo uso de processamento interativo Usuários exigem tempos de resposta baixo para as aplicações Política de escalonamento deve considerar compartilhamento eqüitativo de recursos, principalmente do tempo de CPU Maioria dos SOs de tempo compartilhado utiliza escalonamento circular com prioridades dinâmicas

35 Escalonamento FIFO (exemplo)

36 Escalonamento circular (exemplo)

37 Escalonamento circular com prioridades (exemplo)

38 Escalonamento em Sistemas de Tempo Real
Sistemas onde certas aplicações exigem respostas imediatas para a execução de determinadas tarefas SO de tempo real deve garantir a execução de processos dentro de limites rígidos de tempo Ex: controle de tráfego aéreo, controle de processos industriais Escalonamento deve considerar importância relativa de cada processo (tarefa) Escalonamento por prioridades estáticas é o mais adequado Não deve haver preempção por tempo!


Carregar ppt "Arquitetura de Sistemas Operacionais"

Apresentações semelhantes


Anúncios Google