Escalonamento de Processos Mtodos de escalonamento de processos
- Slides: 37
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 – 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
Conceitos Básicos Tipos 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
Conceitos Básicos: Tipos de S. O. Multiprocessamento • 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 Memória Regs da CPU Índ. Processo . . . Lista de proc. . . . Contexto Proc. A. Dados Código Contexto Proc. B. PC Dados Código Base Limite Outros regs
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
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
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
Conceitos Básicos Operação Básica da CPU Busca instrução e dados Incrementa PC Executa a instrução Com interrupção Não Interrupção? Sim 1) Pára o processo atual 2) Salta p/ rotina de interrupção
Conceitos Básicos Interrupção do Programa
Conceitos Básicos Processo de Interrupção Dispositivo pede interrupção Hardware Salva resto da Informação do contexto do processo Processador salva PSW e PC na pilha de controle Processa rotina Processador carrega novo valor do PC baseado na interrupção Restaura Informação do estado do processo em execução antes da interrupção *PSW = Program Status Word *PC = Program Counter de Interrupção Restaura PSW e PC do processo em execução antes da interrupção Software
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 –. . .
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
Escalonamento de Processos Tipos 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/Obound) Ø processos I/O-bound devem ter prioridade sobre processos CPUbound • Batch (lote) x Interativos
Escalonamento Tipos de Processos • Surtos de uso da CPU se alternam com períodos de espera por E/S – tipos de processo: a) orientado à CPU (CPU-bound) b) orientado à E/S (I/O-bound)
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
Escalonamento de Processos Abstração • Uma máquina para cada processo • Paralelismo real m. P 1 T 12 m. P 3 T 0 m. P 3 T 22
Escalonamento de Processos Realidade • Compartilhamento do tempo • Pseudo-paralelismo T 11 m. P 1 1 T 12 T 0 41 51 T 22 70 T 0 90 121 t
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
Filas de Escalonamento Short-term scheduling Process request Longterm queue High-level scheduling Interrupt of process Interrupt from I/O Interrupt Handler Shortterm queue CPU I/O I/O queue FIM I/O scheduling
Exemplo Sist. Operacional Contr. Serviços Escalonador contr. interrupção A Rodando Executando B Pronto Outros processos Execu Sist. Operacional -tando Sist. Operacional Contr. Serviços Escalonador contr. interrupção A Bloqueado B Pronto Outros processos Escalonador contr. interrupção A Bloqueado 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 B Rodando Executando Outros processos tempo
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
Objetivos do algoritmo de escalonamento
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
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 T 11 m. P 1 1 T 12 T 0 41 51 T 22 70 T 0 90 121 t
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. . .
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
“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
Escalonamento – Parte II Algoritmos
Políticas de Escalonamento Round-Robin FIFO Híbrido SJF SRJN Round-Robin • • Uso de uma lista de processos sem prioridade Escalonamento preemptivo Simples e justo Bom para sistemas interativos CPU: Runnin Tar. g. A Contexto Tar. B Contexto Tar. C Contexto Tar. A Contexto
Round-Robin FIFO Híbrido SJF SRJN Políticas de Escalonamento First-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 A FIM B C D E F … N
Políticas de Escalonamento Híbridos Round-Robin FIFO Híbrido SJF SRJN 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. . .
Escalonamentos Híbridos Round-Robin FIFO Híbrido SJF SRJN 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 A B C D E F …
Escalonamentos Híbridos Round-Robin FIFO Híbrido SJF SRJN 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 Segue…
Escalonamentos Híbridos Round-Robin FIFO Híbrido SJF SRJN 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 . . . Fila 1 . . . Fila 2 . . . Fila n Q u a n t u m P r i o r i d a d e
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)
Conclusões Como funcionam dois ou mais programas ao mesmo tempo? • Conceitos – Processos x Threads (processos leves) • Interrupção – Cooperação hardwaresoftware • 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
- Diagrama de gantt round robin
- Mtodos
- Mtodos
- Mtodos
- Mtodos
- Mtodos
- Hormonales inyectables combinados estrógeno y progestina
- Mtodos
- Mtodos
- Mtodos
- Mtodos
- Algoritmos de escalonamento
- Preemptivo
- Escalonamento por prioridades
- Sistemas lineares escalonamento
- Deadlock
- Escalonamento
- Etapas de formação dos fósseis
- Processos vitais das plantas
- Priscila facciolli
- Color 05112004
- Processos de eletrização
- Diagrama p&id cerveza
- Processos de jobbing exemplos
- Processos interpretativos inferenciais
- Ufpr 2017 os processos industriais nao imitam a natureza
- Como fazer a conclusão de um trabalho
- Enem 2014 a utilização de processos de biorremediação
- Dr andr
- Uva idj
- Processos de soldagem por fusão
- Processos gerenciais
- Sistema de virtualização de processos viproc
- Resposta inversa controle de processos
- Fluxogramas de processos industriais
- Processo irregular de palavras
- Pessoas, processos e tecnologia
- Processos de enfermagem