Escalonamento de Processos

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Escalonamento de Processos Uniprocessador
Sistemas Operacionais
Infra-estrutura de Software - Aula de Revisão -
Sistemas Operacionais Gerência de Processador
Sistema Operacional Introdução
Sistemas Operacionais
INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Sistemas Operacionais Gerência de Processador WebDesign Redes de Computadores.
Escalonamento de Processos
Processos.
Gerência do Processador
Gerência do Processador
Sistemas Operacionais
Escalonamento Linux.
Arquitetura de Sistemas Operacionais
Sistemas Operacionais
Problemas com Entrada e Saída
SSC SISTEMAS OPERACIONAIS I Aulas 6 – Escalonamento de Processos
SSC SISTEMAS OPERACIONAIS I Aulas 5 – Escalonamento de Processos
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
SSC SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Escalonamento de Processos
Processos Conceitos Básicos.
Escalonamento Aula 7.
Arquitetura de Sistemas Operacionais
Curso Técnico em Manutenção e Suporte em Informática
Threads.
Sistemas Operacionais Adriana Vettorazzo
Arquitetura de computadores
Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU.
Sistemas Operacionais
Sistemas Operacionais Aula 4
Unidade 1-1 Processos e Threads
Sistemas Operacionais
Sistemas Operacionais
Gerência de Recursos Processador
Sistemas Operacionais Profª Adriana Vettorazzo
GESTÃO DE SISTEMAS OPERACIONAIS II
Unidade 2 - Parte 1 Programação Concorrente
Conteúdo Processos e threads Partes do processo
Escalonamento de Tempo Real
Introdução aos Sistemas de Tempo Real
Prof. Alexandre Monteiro Recife
SISTEMAS OPERACIONAIS I
SISTEMAS OPERACIONAIS I
Computação L1: Infra-Estrutura Básica
Sistemas Operacionais
Escalonamento com prioridades
Prof. Alexandre Monteiro Recife
Sistemas Operacionais
Escalonamento de Processos e Threads
GERÊNCIA DE PROCESSOS Disciplina: Sistemas Operacionais II.
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Sistemas Operacionais
S ISTEMAS OPERACIONAIS PROCESSOS Horácio Ribeiro.
Escalonamento de Processos
Multiprocessamento Sérgio Cavalcante CIn GRECO - CIn / UFPE.
Infra-Estrutura de Software
SISTEMAS OPERACIONAIS
Engenharia de Sistemas Embarcados Aula 9: Salvo RTOS.
Bruno Affonso Diego Chiquito Ruan Berté.   O código de Escalonamento no Windows é implementado no Kernel.  A rotina que desempenha as tarefas do Escalonador.
Gerenciamento de Memória Sistemas Recentes
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Sistemas Operacionais
Sistemas Operacionais
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais Prof.: Gustavo Wagner
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentação:

Escalonamento de Processos 05/04/2017 Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais

Parte I - Fundamentos Tipos de SO Interrupção Tipos de Processos 05/04/2017 Parte I - Fundamentos Tipos de SO Interrupção Tipos de Processos Filas de Escalonamento Tipos de Escalonamento

O que é um Sistema Operacional? 05/04/2017 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. 05/04/2017 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 05/04/2017 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 Memória ... Contexto Dados Código Índ. Processo PC Lista de proc. Base Limite Outros regs Proc. A. Proc. B.

Suporte do Hardware Suporte do S.O. Temporizadores (timers) 05/04/2017 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 05/04/2017 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 05/04/2017 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 05/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

Conceitos Básicos Interrupção do Programa 05/04/2017 Conceitos Básicos Interrupção do Programa

Conceitos Básicos Processo de Interrupção 05/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

Conceitos Básicos: Tipos de S.O. Como identificar e tratar erros? 05/04/2017 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 05/04/2017 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 05/04/2017 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/O-bound) processos I/O-bound devem ter prioridade sobre processos CPU-bound Batch (lote) x Interativos

Escalonamento Tipos de Processos 05/04/2017 Escalonamento Tipos 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)

Escalonamento de processos 05/04/2017 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 05/04/2017 Escalonamento de Processos Abstração Uma máquina para cada processo Paralelismo real mP1 T11 T12 mP2 T0 mP3 mP3 T22

Escalonamento de Processos Realidade 05/04/2017 Escalonamento de Processos Realidade Compartilhamento do tempo Pseudo-paralelismo T12 T22 T0 T11 mP1 T0 1 41 51 70 90 121 t

Filas de Escalonamento 05/04/2017 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 05/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

Exemplo tempo Processo A parou. Por que? Req. serviço ao S.O. 05/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

Características de Escalonamento 05/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 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 05/04/2017 Objetivos do algoritmo de escalonamento

Tipos de Escalonamento 05/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

Escalonamento Preemptivo 05/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

Problema das trocas de processos 05/04/2017 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...

05/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

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

Escalonamento – Parte II 05/04/2017 Escalonamento – Parte II Algoritmos

Políticas de Escalonamento Round-Robin 05/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

Políticas de Escalonamento First-In First-Out (FIFO) 05/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 Escalonamento não-preemptivo Simples e justo Bom para sistemas em batch (lote) CPU B C D E F … N A FIM

Políticas de Escalonamento Híbridos 05/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 Segue...

Escalonamentos Híbridos Partições de Lote 05/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

Escalonamentos Híbridos Multiple Feedback Queue 05/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 Segue…

Escalonamentos Híbridos Multiple Feedback Queue 05/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

Escalonamentos baseados no tempo de execução 05/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)

Conclusões Como funcionam dois ou mais programas ao mesmo tempo? 05/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