1 / 37

Escalonamento de Processos

Escalonamento de Processos. Métodos de escalonamento de processos em Sistemas Operacionais. Parte I - Fundamentos. Tipos de SO Interrupção Tipos de Processos Filas de Escalonamento Tipos de Escalonamento. O que é um Sistema Operacional?. É uma máquina estendida

calixte
Download Presentation

Escalonamento de Processos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais

  2. Parte I - Fundamentos Tipos de SO Interrupção Tipos de Processos Filas de Escalonamento Tipos de Escalonamento

  3. O que é um Sistema Operacional? • É uma máquina estendida • Oculta os detalhes complicados que têm quer ser executados • Apresenta ao usuário uma máquina virtual, mais fácil de usar • É um gerenciador de recurso (ex. CPU) • Cada programa tem um tempo com o recurso • Cada programa tem um espaço no recurso

  4. Conceitos BásicosTipos de S.O. • Monotarefa • Multitarefa • Monousuário • Multiusuário Como evitar que um processo monopolize o sistema? Sistemas de tempo compartilhado (Time Sharing Systems) • Permite sistemas interativos (entrada/saída) • Requer temporizadores (timers) • Interrupções

  5. Memória ... ... ... Contexto Dados Código Contexto Dados Código Conceitos Básicos: Tipos de S.O.Multiprocessamento Regs da CPU • O índice do processo contém o apontador para a lista de processos • PC (Program Counter) = contador de programas • Uma troca de processos consiste em trocar o valor dos registradores de contexto da CPU Índ. Processo PC Lista de proc. Base Limite Outros regs Proc. A. Proc. B.

  6. Conceitos Básicos: Tipos de S.O.O que é necessário para haver multiprocessamento? • Suporte do Hardware • Temporizadores (timers) • Interrupções • Proteção de memória • Suporte do S.O. • Escalonamento dos processos • Alocação de memória • Gerenciamento dos periféricos

  7. Conceitos Básicos:A importância da Interrupção • 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. Ex: escrita em disco

  8. Conceitos Básicos: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

  9. Não Interrupção? Sim 1) Pára o processo atual 2) Salta p/ rotinade interrupção Conceitos BásicosOperação Básica da CPU Busca instrução e dados Incrementa PC Executa a instrução Com interrupção

  10. Conceitos BásicosInterrupção do Programa

  11. Conceitos BásicosProcesso de Interrupção Salva resto da Informação do contexto do processo Dispositivo pede interrupção Processa rotina de Interrupção Processador salva PSW e PC na pilha de controle Hardware Software Restaura Informação do estado do processoemexecuçãoantes dainterrupção Processador carrega novo valor do PC baseado na interrupção Restaura PSW e PC do processo em execuçãoantes dainterrupção • PSW = Program Status Word • PC = Program Counter

  12. Conceitos Básicos: Tipos de S.O.Como identificar e tratar erros? • Uso de exceções Interrupções causadas por: • Divisão por zero • Erro de código de instrução • Acesso indevido à memória • Acesso indevido a dispositivos de E/S • ...

  13. Processos X Threads • Tipos de sistemas • 1 processo com 1 thread: MSDOS • N processos, cada um com 1 thread: OS/386, VAX/VMS, Windows 3.1, UNIX antigo • 1 processo com N threads: kernels para sistemas embarcados • N processos, cada um com N threads: Windows 95/98,NT, UNIX

  14. Escalonamento de ProcessosTipos de Processos • CPU-bound: • Se o processo gasta a maior parte do seu tempo usando a CPU ele é dito orientado à computação (compute-bound ou CPU-bound) • processos com longos tempos de execução e baixo volume de comunicação entre processos • ex: aplicações científicas, engenharia e outras aplicações que demandam alto desempenho de computação • I/O-bound: • Se um processo passa a maior parte do tempo esperando por dispositivos de E/S, diz-se que o processo é orientado à E/S (I/O-bound) • processos I/O-bound devem ter prioridade sobre processos CPU-bound • Batch (lote) x Interativos

  15. EscalonamentoTipos de Processos • Surtos de uso da CPU se alternam com períodos de espera por E/S – tipos de processo: • orientado à CPU (CPU-bound) • orientado à E/S (I/O-bound)

  16. Escalonamento de processos • Quando um ou mais processos estão prontos para serem executados, o sistema operacional deve decidir qual deles vai ser executado primeiro • A parte do sistema operacional responsável por essa decisão é chamada escalonador, e o algoritmo usado para tal é chamado de algoritmo de escalonamento

  17. T12 Escalonamento de ProcessosAbstração • Uma máquina para cada processo • Paralelismo real T11 mP1 mP2 T0 mP3 T22 mP3

  18. T12 T22 T0 T11 T0 Escalonamento de ProcessosRealidade • Compartilhamento do tempo • Pseudo-paralelismo mP1 1 41 51 70 90 121 t

  19. Filas de Escalonamento • High-level • Decide quantos programas são admitidos no sistema • Aloca memória e cria um processo • Controla a long-term queue • Short-term • Decide qual processo deve ser executado • Controla a short-term queue • I/O • Decide qual processo (com I/O) pendente deve ser tratado pelo dispositivo de I/O • Controla a I/O queue

  20. I/O I/O Interrupt of process I/O Interrupt from I/O Filas de Escalonamento Short-term scheduling Long- term queue Short- term queue Process request FIM CPU High-level scheduling I/O queue I/O scheduling I/O queue Interrupt Handler I/O queue

  21. Contr. Serviços Contr. Serviços Escalonador Escalonador contr. interrupção contr. interrupção Exemplo Execu-tando Sist. Operacional Sist. Operacional Sist. Operacional • Processo A parou. Por que? • Req. serviço ao S.O. • Interrupção de AEx. erro • Interrupção de outra fonte. Ex. I/O • Tempo acabou Contr. Serviços 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

  22. 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 termino 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

  23. Objetivos do algoritmo de escalonamento

  24. 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

  25. T12 T22 T0 T11 T0 Preempção 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 mP1 1 41 51 70 90 121 t

  26. Problema das trocas de processos • Mudar de um processo 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...

  27. 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

  28. “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 • Quantum grande: • Diminui número de mudanças de contexto e overhead do S.O. X Ruim para processos interativos

  29. Escalonamento – Parte II Algoritmos

  30. Round-RobinFIFOHíbridoSJFSRJN Tar. B Contexto Tar. C Contexto Tar. A Contexto Tar. A Contexto Tar. A Contexto Políticas de EscalonamentoRound-Robin • Uso de uma lista de processos sem prioridade • Escalonamento preemptivo • Simples e justo • Bom para sistemas interativos CPU:Running

  31. Round-RobinFIFOHíbridoSJFSRJN Políticas de EscalonamentoFirst-In First-Out (FIFO) • Uso de uma lista de processos sem prioridade • Escalonamento não-preemptivo • Simples e justo • Bom para sistemas em batch (lote) CPU B C D E F … N A FIM

  32. Round-RobinFIFOHíbridoSJFSRJN Políticas de EscalonamentoHí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 Segue...

  33. Round-RobinFIFOHíbridoSJFSRJN Escalonamentos HíbridosPartições de Lote Memória Processos interativos são ativados imediatamente Processos Interativos Processos batch esperam a liberação do lote B C D E F … N Partição de Lote A

  34. Round-RobinFIFOHíbridoSJFSRJN Escalonamentos HíbridosMultiple 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 Segue…

  35. Round-RobinFIFOHíbridoSJFSRJN Escalonamentos HíbridosMultiple 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 Prioridade ... Fila 1 Quantum ... Fila 2 ... Fila n

  36. Round-RobinFIFOHíbridoSJF SRJN Exemplo de escalonamento job mais curto primeiro (Shortest Job First – SJF) Escalonamentosbaseados 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

  37. 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 ConclusõesComo funcionam dois ou mais programas ao mesmo tempo?

More Related