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

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

Prof. Alexandre Monteiro Recife

Apresentações semelhantes


Apresentação em tema: "Prof. Alexandre Monteiro Recife"— Transcrição da apresentação:

1 Prof. Alexandre Monteiro Recife
Escalonamento Prof. Alexandre Monteiro Recife

2 Contatos Prof. Guilherme Alexandre Monteiro Reinaldo
Apelido: Alexandre Cordel /gtalk: Site: Celular: (81)

3 Introdução a Escalonamento
O escalonador é a entidade do SO responsável por selecionar um processo apto para executar no processador O objetivo é dividir o tempo de CPU entre os processos aptos de forma justa Típicos de sistemas multiprogramados: batch, time-sharing multiprogramado ou tempo real. Requisitos e restrições diferentes em relação a utilização da CPU Duas partes Escalonador: política de seleção Dispatcher: efetua a troca de contexto OBS: A parte do SO responsável por essa decisão é chamada escalonador, e o algoritmo usado para tal é chamado de algoritmo de escalonamento

4 Escalonamento de Processos Abstração
10/04/2017 Escalonamento de Processos Abstração Uma máquina para cada processo Paralelismo real mP1 T11 T12 mP2 T0 mP3 mP3 T22

5 Escalonamento de Processos Realidade
10/04/2017 Escalonamento de Processos Realidade Compartilhamento do tempo Pseudo-paralelismo (Concorrência) Troca de Contexto T12 T22 T0 T11 mP1 T0 1 41 51 70 90 121 t

6 Objetivos do Escalonamento
Maximizar a utilização do processador Maximizar o nº de processos executados por unidade de tempo (throughput) Minimizar o tempo total de execução de um processo (turnaround) Minimizar o tempo de espera (na lista de processos aptos) Minimizar o tempo de resposta decorrido entre a requisição e sua realização

7 Características de Escalonamento
10/04/2017 Características de Escalonamento Justiça (fairness) Todos os processos têm chances iguais de uso dos processador Eficiência Taxa de ocupação do processador ao longo do tempo Tempo de Resposta Tempo entre a ocorrência de um evento e o término da ação correspondente Turnaround “Tempo de resposta” para usuários em batch Minimizar o tempo que usuários batch devem esperar pelo resultado Throughput No. de “jobs” (processos) executados por unidade de tempo

8 Objetivos do algoritmo de escalonamento
Resumindo Objetivos Objetivos do algoritmo de escalonamento

9 Escalonamento Introdução ao Escalonamento (1)
Surtos de uso da CPU alternam-se com períodos de espera por E/S um processo orientado à CPU um processo orientado à E/S

10 A importância da Interrupção
10/04/2017 A importância da Interrupção Ex: escrita em disco Num sistema simples, CPU deve esperar a execução do comando de E/S A cada chamada do comando write a CPU fica esperando o dispositivo executar o comando. SO HD

11 A importância da Interrupção
10/04/2017 A importância da Interrupção Um sistema com interrupção não fica esperando A CPU solicita o write e fica executando outras tarefas até ser interrompida pelo disco. Ex: escrita em disco SO HD

12 Conceitos Básicos Operação Básica da CPU
10/04/2017 Conceitos Básicos Operação Básica da CPU Busca instrução e dados Incrementa PC 1) Pára o processo atual 2) Salta p/ rotina de interrupção Sim Não Interrupção? Executa a instrução Com interrupção

13 Interrupção do Programa
10/04/2017 Interrupção do Programa

14 Conceitos Básicos Processo de Interrupção
10/04/2017 Conceitos Básicos Processo de Interrupção Dispositivo pede interrupção Salva resto da Informação do contexto do processo Processador salva PSW e PC na pilha de controle Processa rotina de Interrupção Hardware Software Restaura Informação do estado do processo em execução antes da interrupção Processador carrega novo valor do PC baseado na interrupção Restaura PSW e PC do processo em execução antes da interrupção PSW = Program Status Word PC = Program Counter

15 Situações típicas para execução do escalonador
Depende se o escalonador é preemptivo ou não- preemptivo, se considera prioridades ou não: Sempre que a CPU estiver livre e houver um processo apto para executar Criação e término de processos Um processo de mais alta prioridade ficar pronto para executar Interrupção de tempo Processo executou por um período de tempo máximo permitido Interrupção de E/S Interrupção de Falta de Página em Memória Endereço acessado não está carrego na memória (memória virtual) Interrupção por erro

16 Chaveamento de Contexto (Dispatcher)

17 Níveis de escalonamento
Longo Prazo Médio Prazo Curto Prazo

18 Longo Prazo Executado quando um novo processo é criado
Determina quando um processo novo passa a ser considerado no sistema, isto é, quando após sua criação passa a ser apto. Controle de admissão Controla o grau de multiprogramação do sistema Quanto maior o número de processos ativos, menor a porcentagem de tempo de uso do processador por processo

19 Médio Prazo Associado a gerencia de memória Participa do mecanismo de swapping (memória principal -> disco [swap out] | disco -> memória principal [swap in]) Suporte adicional a multiprogramação Grau de multiprogramação efetiva (diferencia aptos dos aptos-suspensos)

20 Curto Prazo Interrupções (de relógio, E/S) Chamada de Sistemas
Mais importante, pois determina qual processo apto irá utilizar o processador Executado sempre que ocorre eventos importantes: Interrupções (de relógio, E/S) Chamada de Sistemas Sinais (interrupções de software)

21 Diagrama de Escalonamento

22 Filas de Escalonamento
10/04/2017 Filas de Escalonamento High-level (Longo Prazo) Decide quantos programas são admitidos no sistema Aloca memória e cria um processo Controla a long-term queue Short-term (Curto prazo) Decide qual processo deve ser executado Controla a short-term queue I/O (Médio prazo) Decide qual processo (com I/O) pendente deve ser tratado pelo dispositivo de I/O Controla a I/O queue

23 Filas de Escalonamento
10/04/2017 Filas de Escalonamento Short-term scheduling Long- term queue Short- term queue Process request FIM CPU High-level scheduling I/O queue I/O I/O scheduling I/O I/O queue Interrupt of process from I/O Interrupt Handler I/O I/O queue

24 Exemplo tempo Processo A parou. Por que? Req. serviço ao S.O.
10/04/2017 Exemplo Execu-tando Sist. Operacional Sist. Operacional Sist. Operacional Processo A parou. Por que? Req. serviço ao S.O. Interrupção de A Ex. erro Interrupção de outra fonte. Ex. I/O Tempo acabou Contr. Serviços Contr. Serviços Escalonador contr. interrupção Contr. Serviços Escalonador contr. interrupção Escalonador contr. interrupção A Bloqueado A Rodando A Bloqueado Execu- tando B Rodando B Pronto B Pronto Execu- tando Outros processos Outros processos Outros processos tempo

25 Algoritmo de Escalonamento
Algoritmo de escalonamento escolhe qual processo deve executar em um determinado instante de tempo Existem vários algoritmos para atingir os objetivos do escalonamento Os algoritmos buscam: Obter bons tempos médios (independente de critérios) Privilegiar a variância em relação aos tempos médios Os algoritmos estão categorizados em: Lote Interativo Tempo Real

26 Tipos de Escalonador Uma vez escalonado, o processo utiliza o processador até que: Não-preemptivo (não troca de contexto): Término de execução do processo Execução de uma requisição de E/S ou sincronização Liberação voluntário do processador para outro processo (yield) Preemptivo (troca de contexto) Interrupção de relógio Processo de mais alta prioridade esteja pronto para executar

27 Tipos de Escalonamento
10/04/2017 Tipos de Escalonamento Mecanismos de Escalonamento Preemptivo x Não-preemptivo Políticas de Escalonamento Round-Robin FIFO (First-In First-Out) Híbridos Partições de Lote (Batch) MFQ - Multiple Feedback Queue SJF – Shortest Job First SRJN – Shortest Remaining Job Next Se diz que um algoritmo/sistema operacional é preemptivo quando um processo entra na CPU e o mesmo pode ser retirado da CPU antes do término da sua execução

28 Algoritmos de Escalonamento
Algoritmos Não-Preemptivos (cooperativos) First-In-First-Out (FIFO) ou First-Come-First-Served (FCFS) Shortest Job First (SJF) ou Shortest Processo Next (SPN) Algortimos Preemptivos Round Robin (Circular) Baseado em Prioridades Existem outros algoritmos de escalonamento High Response Ratio Next (HRRN) Shortest Remaining Time (SRT) Ect...

29 Escalonamento Preemptivo
10/04/2017 Escalonamento Preemptivo Permite a suspensão temporária de processos Quantum ou time-slice: período de tempo durante o qual um processo usa o processador a cada vez Preempção T12 T22 T0 T11 mP1 T0 1 41 51 70 90 121 t

30 Quantum Quando uma tarefa recebe o processador, o núcleo ajusta um contador de ticks que essa tarefa pode usar, ou seja, seu quantum é definido em número de ticks. A cada tick, o contador é decrementado; quando ele chegar a zero, a tarefa perde o processador e volta à fila de prontas.

31 Nova visão dos Estados do Processo

32 Problema das trocas de processos
10/04/2017 Problema das trocas de processos Mudar de um processo/tarefa para outro requer um certo tempo para a administração — salvar e carregar registradores e mapas de memória, atualizar tabelas e listas do SO, etc Isto se chama troca de contexto Suponha que esta troca dure 5 ms Suponha também que o quantum está ajustado em 20 ms Com esses parâmetros, após fazer 20 ms de trabalho útil, a CPU terá que gastar 5 ms com troca de contexto. Assim, 20% do tempo de CPU (5 ms a cada 25 ms) é gasto com o overhead administrativo...

33 Troca de Contexto 5 ms

34 10/04/2017 Solução? Para melhorar a eficiência da CPU, poderíamos ajustar o quantum para 500 ms Agora o tempo gasto com troca de contexto é menos do que 1% - “desprezível”... Considere o que aconteceria se dez usuários apertassem a tecla <ENTER> exatamente ao mesmo tempo, disparando cada um processo: Dez processos serão colocados na lista de processo aptos a executar Se a CPU estiver ociosa, o primeiro começará imediatamente, o segundo não começará cerca de ½ segundo depois, e assim por diante O “azarado” do último processo somente começará a executar 5 segundos depois do usuário ter apertado <ENTER>, isto se todos os outros processos tiverem utilizado todo o seu quantum Muitos usuários vão achar que o tempo de resposta de 5 segundos para um comando simples é “muita” coisa

35 “Moral da estória” Quantum grande:
10/04/2017 “Moral da estória” Ajustar um quantum muito pequeno causa muitas trocas de contexto e diminui a eficiência da CPU, ... ...mas ajustá-lo para um valor muito alto causa um tempo de resposta inaceitável para pequenas tarefas interativas A duração atual do quantum depende muito do tipo de sistema operacional; no Linux ela varia de 10 a 200 milissegundos, dependendo do tipo e prioridade da tarefa [Love, 2004]. Quantum grande: Diminui número de mudanças de contexto e overhead do S.O. X Ruim para processos interativos

36 Políticas de Escalonamento Round-Robin
10/04/2017 Round-Robin FIFO Híbrido SJF SRJN Políticas de Escalonamento Round-Robin Uso de uma lista de processos sem prioridade Escalonamento preemptivo Simples e justo Bom para sistemas interativos CPU:Running Tar. A Contexto Tar. A Contexto Tar. B Contexto Tar. C Contexto Tar. A Contexto

37 Round Robin Cada processo recebe um tempo limitado (time slice = quantum) para executar um ciclo de processador Fila de processos aptos é circular Necessita de relógio para delimitar as fatias de tempo (interrupção de tempo/relógio) Se o (quantum = ∞) obtem-se o comportamento de um escalonador FIFO. Tamanho do quantum igual prejudica processos I/O bound (prioridade)

38 Políticas de Escalonamento First-In First-Out (FIFO)
10/04/2017 Round-Robin FIFO Híbrido SJF SRJN Políticas de Escalonamento First-In First-Out (FIFO) Uso de uma lista de processos sem prioridade (Fila) Escalonamento não-preemptivo Simples e justo Bom para sistemas em batch (lote) CPU B C D E F … N A Processo aptos inseridos no final da fila Processo no início da fila é o próximo. Processo executa até terminar, libere o processador ou realize um chamada de sistema FIM

39 Políticas de Escalonamento First-In First-Out (FIFO)

40 Políticas de Escalonamento Híbridos
10/04/2017 Round-Robin FIFO Híbrido SJF SRJN Políticas de Escalonamento Híbridos Partições de Lote (Batch) MFQ - Multiple Feedback Queue Como combinar processos batch com interativos? Uso de Partições de Lote (batch) O sistema aceita tantos processos batch quantas forem as partições de lote O sistema aceita todos os processos interativos Escalonamento em dois níveis

41 Escalonamentos Híbridos Partições de Lote
10/04/2017 Round-Robin FIFO Híbrido SJF SRJN Escalonamentos Híbridos Partições de Lote Memória Processos interativos são ativados imediatamente Processos Interativos Processos batch esperam a liberação do lote Partição de Lote B C D E F … N A

42 Escalonamentos Híbridos Multiple Feedback Queue
10/04/2017 Round-Robin FIFO Híbrido SJF SRJN Escalonamentos Híbridos Multiple Feedback Queue Como saber a priori se o processo é CPU-bound ou I/O-bound? MFQ usa abordagem de prioridades dinâmicas Adaptação baseada no comportamento de cada processo Usado no VAX / VMS (arquiteturas de computadores)

43 Escalonamentos Híbridos Multiple Feedback Queue
10/04/2017 Round-Robin FIFO Híbrido SJF SRJN Escalonamentos Híbridos Multiple Feedback Queue Novos processos entram na primeira fila (prioridade mais alta) Se acabar o quantum desce um nível Se requisitar E/S sobe um nível Lembrando: I/O-bound são prioritários ... P r i o r i d a d e Fila 1 Q u a n t u m ... Fila 2 ... Fila n

44 Escalonamentos baseados no tempo de execução
10/04/2017 Round-Robin FIFO Híbrido SJF SRJN Escalonamentos baseados no tempo de execução Shortest Job First (não-preemptivo) Shortest Remaining Job Next (preemptivo) Melhora o tempo de resposta Não é justo: pode causar estagnação (starvation) Pode ser resolvida alterando a prioridade dinamicamente Exemplo de escalonamento job mais curto primeiro (Shortest Job First – SJF)

45 Shortest Job First

46 Shortest Job First Algoritmo ótimo, fornece o menor tempo médio de espera para um conjunto de processos Processos I/O bound são favorecidos Dificuldade é determinar o tempo do próximo ciclo de CPU de cada processo, porém: Pode ser empregado em processos batch (long term scheduler) Prever o futuro com base no passado

47 Escalonamento em Sistemas Interativos
Um algoritmo de escalonamento com quatro classes de prioridade

48 Como definir a Prioridade?
Prioridade Estática: Processo é criado com determinada prioridade e esta é mantida durante todo o processo. Prioridade Dinâmica: Prioridade é ajustada de acordo com o estado de execução do processo e/ou sistema. Ex. ajustar a prioridade em função da fração de quantum que foi realmente utilizada pelo processo. q = 100ms Processo A = 2ms -> nova prioridade = 1/0.02 = 50 Processo B = 50ms -> nova prioridade = 1/0.5 = 2

49 Problemas com prioridades
Processos de baixa prioridade podem não ser executados Postergação indefinida (starvation) Processo com prioridade estática pode ficar mal classificado e ser penalizado ou favorecido em relação aos demais Solução: múltiplas filas de realimentação.

50 Conclusões Como funcionam dois ou mais programas ao mesmo tempo?
10/04/2017 Conclusões Como funcionam dois ou mais programas ao mesmo tempo? Conceitos Processos x Threads (processos leves) Interrupção Cooperação hardware-software Escalonamento Tipos de processos CPU-bound x I/O-bound Lote (batch) x interativo Filas de escalonamento Long-term (admissão) Short-term I/O Escalonamento (cont.) Objetivos Justiça Eficiência Tempo de Resposta Conceitos Preempção Quantum (time-slice) Troca de contexto Algoritmos Propósito x Complexidade x Eficiência

51 Referências Sistemas Operacionais Modernos – 3ª Edição. A. Tanenbaum, 2008. Modern Operating Systems 3 e. Prentice-Hall, 2008.


Carregar ppt "Prof. Alexandre Monteiro Recife"

Apresentações semelhantes


Anúncios Google