Escalonamento de processos



Documentos relacionados
Escalonamento de CPU 2 Quadrimestre

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Sistemas Operacionais. Roteiro. Tipos de Tarefas (temporal) Marcos Laureano

Gerência do Processador

Capítulo 4 Gerência do Processador. O que sabemos é uma gota, o que ignoramos é um oceano. Isaac Newton

Algoritmos de Escalonamento

Sistemas Operacionais

GERENCIAMENTO DO PROCESSADOR. Prof. Maicon A. Sartin

Capítulo 4 Gerência de Processador

Sistemas Operacionais

Sistemas Operacionais

Escalonamento no Linux e no Windows NT/2000/XP

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados.

Gerenciamento de memória

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

Capítulo 5: Escalonamento da CPU

SISTEMAS OPERACIONAIS

Classificação Quanto. Sistemas de Lotes (2) Sistemas de Lotes (3)

Gerência de Processador

Arquitetura de Computadores II

SISTEMAS OPERACIONAIS

Sistemas Operacionais. Escalonamento de Processo. Prof. Dr. Márcio Andrey Teixeira

Arquitetura e Organização de Computadores

Processos. Paulo Sérgio Almeida 2005/2006. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

8 Threads. 8.1 Introdução

Gerência do Processador

Nível do Sistema Operacional

Sistemas Operacionais Conceitos Básicos

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador

Capítulo 5: Escalonamento da CPU

Sistemas Operacionais

Prof.: Roberto Franciscatto. Capítulo 1 Introdução

Sistemas Operacionais Processos e Threads

Gerência de processos Requisitos fundamentais

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

Programação Concorrente Processos e Threads

Sistemas Operacionais Introdução

Universidade Federal do Rio de Janeiro Pós-Gradução em Informática. Microarquiteturas de Alto Desempenho. Multithreading. Gabriel P. Silva.

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;

Guilherme Pina Cardim. Pesquisa de Sistemas Operacionais I

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS PLANO DE ENSINO

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS. 2º TRIMESTRE Patrícia Lucas

Processos. Estruturas de Controle

Gerência de Processador

Introdução a Sistemas Operacionais Aula 04. Prof. Msc. Ubirajara Junior biraifba@gmail.com

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

Sistemas Operativos. Sumário. Escalonador da CPU. ! Filas Multinível. ! Filas Multinível com Feedback. ! Escalonamento em multiprocessadores

Sistemas Operacionais. Professor Leslier Soares Corrêa

SO: Gerenciamento de Processos

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade

Sistemas Operativos I

Introdução à Computação: Sistemas de Computação

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Sistemas Operacionais

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

FTL066 Programação em Tempo Real Segunda Lista de Exercícios

Gerenciamento Básico B de Memória Aula 07

Symmetric Multiprocessing Simultaneous Multithreading Paralelismo ao nível dos dados

3) Considerando a tabela abaixo, usando a política de atribuição de prioridades Deadline Monotonic:

Fundamentos de Sistemas Operacionais

Arquitetura dos Sistemas Operacionais

MODELAGEM E SIMULAÇÃO

Impressoras. Para acessar a pasta impressoras, entre em MeuComputador e clique no ícone abaixo. Instrutor Antonio F. de Oliveira

Sistemas Operacionais

É importante que nos atenhamos a alguns aspectos importantes sobre banco de dados:

Sistemas Operacionais

Sistemas Operacionais

Professor: Gládston Duarte

Capítulo 4 Gerenciamento de Memória

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento

Sistemas Operacionais Aula 2

Manual Banco de dados MySQL

Sistemas de Tempo Real: Conceitos Básicos

Introdução a Computação 07 Sistemas operacionais. Márcio Daniel Puntel marcio.puntel@ulbra.edu.br

03 GERÊNCIA DO PROCESSADOR

4. GERÊNCIA DE PROCESSADOR (Escalonamento de processos)

CARTOSOFT GUIA PRÁTICO PROCART SISTEMAS

Sistemas Operacionais. Introdução

Módulo 12 Gerenciamento Financeiro para Serviços de TI

Leitora Perto Smart. Guia de Instalação. Leitora Perto Smart Guia de Instalação. Janeiro/2010. Instalação da leitora Perto Smart.

Sistemas Operacionais. Prof. André Y. Kusumoto

Edeyson Andrade Gomes.

PROCESSOS. Prof. Maicon A. Sartin

Avaliação de Desempenho de Sistemas

Tipos de sistemas operacionais

(Aula 15) Threads e Threads em Java

Banco de Dados I. Construindo modelos de dados confiáveis

Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos - 2º Ano

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Capítulo 2. Processos e Threads. Processos e threads

ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 13

Gerenciamento de Entrada e Saída (E/S)

REDES DE COMPUTADORES HISTÓRICO E CONCEITOS

ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC. Prof. Almeida Jr

Métodos de Sincronização do Kernel

Transcrição:

Escalonamento de processos Adriano J. Holanda http://holanda.xyz 24/8/2015

Conceitos básicos

Políticas Processos limitados por E/S x processador E/S processos limitados por E/S gastam a maior parte do tempo submetendo ou esperando requisições de E/S. Exemplo: Interface Gráfica (interação com mouse, teclado, disco). Processador processos limitados por processador gastam a maior parte do seu tempo executando código. Exemplo: geradores de chave para criptografia, Matlab. Esta classificação não é mutuamente exclusiva, pois um processo pode exibir ambos comportamentos, como o servidor X Window por exemplo. A política de escalonamento em um SO deve satisfazer dois objetivos conflitantes: tempo de resposta rápido ao processo (baixa latência) e máxima utilização do SO (alta vazão).

Sequência de atividade processador x E/S

Escalonamento preemptivo Condições para a tomada de decisão de escalonamento de um processo: 1. Processo passa do estado executando para o estado esperando. Por exemplo, como resultado de uma requisição de E/S, ou uma chamada de espera pelo término de um dos processos filho. 2. Quando um processo passa do estado executando para o estado pronto. Por exemplo, quando ocorre uma interrupção. 3. Quando um processo passa do estado esperando para o estado pronto. Por exemplo, no término da E/S. 4. Quando o processo termina. Para as situações 1 e 4 não há escolha em termos de escalonamento. Este esquema de escalonamento é chamada de não-preemptivo ou cooperativo, foi usado no Windows 3.x e Mac OS anterior ao X.

Escalonamento preemptivo Condições para a tomada de decisão de escalonamento de um processo: 1. Processo passa do estado executando para o estado esperando. Por exemplo, como resultado de uma requisição de E/S, ou uma chamada de espera pelo término de um dos processos filho. 2. Quando um processo passa do estado executando para o estado pronto. Por exemplo, quando ocorre uma interrupção. 3. Quando um processo passa do estado esperando para o estado pronto. Por exemplo, no término da E/S. 4. Quando o processo termina. Para as situações 1 e 4 não há escolha em termos de escalonamento. Este esquema de escalonamento é chamada de não-preemptivo ou cooperativo, foi usado no Windows 3.x e Mac OS anterior ao X.

Despachante Dispatcher Despachante componente envolvido no escalonamento do processador realizando as seguintes funções: 1. Troca de contexto; 2. Troca para o modo usuário; 3. Desvio para o local apropriado no programa do usuário para reiniciar o processo. O despachante utiliza um ou vários algoritmos de escalonamento que normalmente buscam: 1. Otimizar a utilização do processador; 2. Aumentar a vazão (throughput); 3. Reduzir o tempo de espera (não leva em conta tempo de espera devido a requisição de E/S).

Despachante Dispatcher Despachante componente envolvido no escalonamento do processador realizando as seguintes funções: 1. Troca de contexto; 2. Troca para o modo usuário; 3. Desvio para o local apropriado no programa do usuário para reiniciar o processo. O despachante utiliza um ou vários algoritmos de escalonamento que normalmente buscam: 1. Otimizar a utilização do processador; 2. Aumentar a vazão (throughput); 3. Reduzir o tempo de espera (não leva em conta tempo de espera devido a requisição de E/S).

Algoritmos de escalonamento

Primeiro a chegar, primeiro a ser servido (FIFO) FIFO first in first out Pior caso processo tempo de surto (ms) p 1 24 p 2 3 p 3 3 p 1 24 p 2 27 p 3 30 t e = (0 + 24 + 27)/3 = 17ms

Primeiro a chegar, primeiro a ser servido (FIFO) FIFO first in first out Melhor caso processo tempo de surto (ms) p 1 3 p 2 3 p 3 24 p 1 3 p 2 6 p 3 30 t e = (0 + 3 + 6)/3 = 3ms

Tarefa mais curta primeiro SJF shortest job first processo tempo de surto (ms) p 1 6 p 2 8 p 3 7 p 4 3 p 4 3 p 1 9 p 3 16 p 2 24 t e = (0 + 3 + 9 + 16)/4 = 7ms

Escalonamento por prioridade processo tempo de surto(ms) prioridade p 1 10 3 p 2 1 1 p 3 2 4 p 4 1 5 p 5 5 2 p 2 1 p 5 6 p 1 16 p 3 18 p 4 19 t e = (1 + 6 + 16 + 18 + 19 + 0)/5 = 8, 2ms

Escalonamento por Round-Robin (revezamento) quantum = 4 ms processo tempo de surto (ms) p 1 24 p 2 3 p 3 3 p 1 4 p 2 7 p 3 10 p 1 14 p 1 18 p 1 22 p 1 26 p 1 30 t e = ((10 4) + 4 + 7)/3 = 17/3 = 5, 66ms

Quantum x troca de contexto tempo do processo = 10 ms 10 quantum trocas de contexto 12 0 6 10 6 1 1 2 3 4 5 6 7 8 9 10 1 9

Exercício 1 Fonte: Sistemas Operacionais com Java, Silberschatz, Galvin, Gagne. Ed. Campus, 2008. Considere os seguintes processos com o tempo de execução (burst) no processador data em milisegundos: Processo tempo de execução prioridade p 1 10 3 p 2 1 1 p 3 2 3 p 4 1 4 p 5 5 2 Considere que os processos chegaram na ordem p 1, p 2, p 3, p 4, p 5, todos no momento 0. Desenhe quatro gráficos de Gantt para a utilização dos seguintes algoritmos de escalonamento: FIFO, SJF, prioridade preemptivo e revezamento (Round-Robin) com quantum igual a 1 ms. Qual o tempo de espera para cada processo para cada um dos algoritmos? Qual o tempo de espera médio?

Escalonamento com fila de multinível Escalonamento multilevel queue Nível mais alto sistema interativo edição interativa lote (batch) Nível mais baixo

Escalonamento multilevel feedback-queue entrada fila 0 quantum=8 fila 1 quantum=16 fila 2 FCFS 1. Fila 0 quantum processo 8; 2. Fila 1 quantum processo 24; 3. Fila 2 quantum processo > 24.

Escalonamento em múltiplos processadores

Técnicas de escalonamento com multiprocessadores Multiprocessamento assimétrico todas as atividades de escalonamento, processamento de E/S são tratadas por um processador único, o servidor mestre. Simples pelo fato de possibilitar acesso único aos dados compartilhados. Multiprocessamento simétrico (SMP 1 ) cada processador é auto-escalonado, podendo ter sua própria fila de processos prontos ou compartilhar uma fila comum. O escalonador, porém, é específico para cada processador devendo examinar as filas de pronto e tomar cuidado com as estruturas de dados compartilhadas com outros processadores. Ex: Windows XP, Linux, Solaris, Mac OS X. 1 Symmetric Multiprocessing

Técnicas de escalonamento com multiprocessadores Multiprocessamento assimétrico todas as atividades de escalonamento, processamento de E/S são tratadas por um processador único, o servidor mestre. Simples pelo fato de possibilitar acesso único aos dados compartilhados. Multiprocessamento simétrico (SMP 1 ) cada processador é auto-escalonado, podendo ter sua própria fila de processos prontos ou compartilhar uma fila comum. O escalonador, porém, é específico para cada processador devendo examinar as filas de pronto e tomar cuidado com as estruturas de dados compartilhadas com outros processadores. Ex: Windows XP, Linux, Solaris, Mac OS X. 1 Symmetric Multiprocessing

Afinidade do processador SMP Atribui um processo específico a um processador reduzindo o custo de transferência dos dados da memória cache de um processador para outro, além da invalidação dos dados na memória cache do primeiro processador. Afinidade flexível processo pode migrar; Afinidade rígida processo não pode migrar (Ex: Linux).

Multithreading simétrico SMT A tecnologia de Multithreading simétrico(smt 2 ) fornece vários processadores lógicos em um único processador físico. Cada processador possui seu próprio estado arquitetônico que inclui registradores de uso geral e de estado de máquina. Como SMT é um recurso implementado em hardware, o sistema operacional não precisa necessariamente gerenciar o escalonamento dos processos. 2 Symmetric Multithreading

Exemplos

Escalonamento no Windows XP Escalonamento com base em prioridade e preemptivo; Thread de maior prioridade sempre será executada. O despachante pode interromper a thread em execução de acordo com as seguintes condições: Término de execução da thread; Término de quantum de tempo da thread; Requisição de execução de uma thread de maior prioridade; Invocação de uma chamada de sistema bloqueante (E/S, por exemplo). Esquema de prioridade: 0 31. 1. Classe variável: 1 15. 2. Classe de tempo real: 16 31. 3. Prioridade 0: usada pelo sistema para gerenciamento de memória.

Escalonamento no Windows XP Escalonamento com base em prioridade e preemptivo; Thread de maior prioridade sempre será executada. O despachante pode interromper a thread em execução de acordo com as seguintes condições: Término de execução da thread; Término de quantum de tempo da thread; Requisição de execução de uma thread de maior prioridade; Invocação de uma chamada de sistema bloqueante (E/S, por exemplo). Esquema de prioridade: 0 31. 1. Classe variável: 1 15. 2. Classe de tempo real: 16 31. 3. Prioridade 0: usada pelo sistema para gerenciamento de memória.

Escalonamento no Windows XP Escalonamento com base em prioridade e preemptivo; Thread de maior prioridade sempre será executada. O despachante pode interromper a thread em execução de acordo com as seguintes condições: Término de execução da thread; Término de quantum de tempo da thread; Requisição de execução de uma thread de maior prioridade; Invocação de uma chamada de sistema bloqueante (E/S, por exemplo). Esquema de prioridade: 0 31. 1. Classe variável: 1 15. 2. Classe de tempo real: 16 31. 3. Prioridade 0: usada pelo sistema para gerenciamento de memória.

Escalonamento no Windows XP Classes de prioridades despachante Classes de proridade TIME_CRITICAL Valores relativos HIGHEST ABOVE_NORMAL REALTIME_PRIORITY_CLASS 31 26 25 HIGH_PRIORITY_CLASS 15 15 14 ABOVE_NORMAL_PRIORITY 15 12 11 NORMAL_PRIORITY_CLASS 15 10 9 BELOW_NORMAL_PRIORITY_CLASS 15 8 7 IDLE_PRIORITY_CLASS 15 6 5

Escalonamento no Windows XP Classes de prioridades despachante Classes de proridade Valores relativos NORMAL BELOW_NORMAL LOWEST IDLE REALTIME_PRIORITY_CLASS 24 23 22 16 HIGH_PRIORITY_CLASS 13 12 11 1 ABOVE_NORMAL_PRIORITY 10 9 8 1 NORMAL_PRIORITY_CLASS 8 7 6 1 BELOW_NORMAL_PRIORITY_CLASS 6 5 4 1 IDLE_PRIORITY_CLASS 4 3 2 1 prioridade básica

Regras de escalonamento Windows XP Processos são membros de NORMAL_PRIORITY_CLASS, exceto: Quando o processo pai pertence a IDLE_PRIORITY_CLASS ou; Quando foi especificada outra classe na criação do processo. Quando o quantum de tempo de uma thread se esgota, esta é interrompida e se a classe de prioridade for variável, sua prioridade é reduzida, porém, nunca menos do que a prioridade básica. Quando um processo pertence à classe NORMAL_PRIORITY_CLASS, e está atualmente selecionado na tela (primeiro plano), seu quantum é aumentado, obtendo mais tempo de execução antes de ser preemptado. A classe REALTIME_PRIORITY_CLASS é invariante e provoca preempção de outros processos quando volta para a fila pronto.

Regras de escalonamento Windows XP Processos são membros de NORMAL_PRIORITY_CLASS, exceto: Quando o processo pai pertence a IDLE_PRIORITY_CLASS ou; Quando foi especificada outra classe na criação do processo. Quando o quantum de tempo de uma thread se esgota, esta é interrompida e se a classe de prioridade for variável, sua prioridade é reduzida, porém, nunca menos do que a prioridade básica. Quando um processo pertence à classe NORMAL_PRIORITY_CLASS, e está atualmente selecionado na tela (primeiro plano), seu quantum é aumentado, obtendo mais tempo de execução antes de ser preemptado. A classe REALTIME_PRIORITY_CLASS é invariante e provoca preempção de outros processos quando volta para a fila pronto.

Regras de escalonamento Windows XP Processos são membros de NORMAL_PRIORITY_CLASS, exceto: Quando o processo pai pertence a IDLE_PRIORITY_CLASS ou; Quando foi especificada outra classe na criação do processo. Quando o quantum de tempo de uma thread se esgota, esta é interrompida e se a classe de prioridade for variável, sua prioridade é reduzida, porém, nunca menos do que a prioridade básica. Quando um processo pertence à classe NORMAL_PRIORITY_CLASS, e está atualmente selecionado na tela (primeiro plano), seu quantum é aumentado, obtendo mais tempo de execução antes de ser preemptado. A classe REALTIME_PRIORITY_CLASS é invariante e provoca preempção de outros processos quando volta para a fila pronto.

Regras de escalonamento Windows XP Processos são membros de NORMAL_PRIORITY_CLASS, exceto: Quando o processo pai pertence a IDLE_PRIORITY_CLASS ou; Quando foi especificada outra classe na criação do processo. Quando o quantum de tempo de uma thread se esgota, esta é interrompida e se a classe de prioridade for variável, sua prioridade é reduzida, porém, nunca menos do que a prioridade básica. Quando um processo pertence à classe NORMAL_PRIORITY_CLASS, e está atualmente selecionado na tela (primeiro plano), seu quantum é aumentado, obtendo mais tempo de execução antes de ser preemptado. A classe REALTIME_PRIORITY_CLASS é invariante e provoca preempção de outros processos quando volta para a fila pronto.

Exercício 2 Fonte: Sistemas Operacionais. Oliveira, Carissimi, Toscani. Ed. Bookman, 2008. Quatro programas devem ser executados em um computador. Todos os programas são compostos por 2 ciclos de processador e 2 ciclos de E/S. A entrada e saída de todos os programas é feita sobre a mesma unidade de disco. Os tempos para cada ciclo de cada programa são mostrados abaixo: programa processador disco processador disco p 1 3 10 3 12 p 2 4 12 6 8 p 3 7 8 8 10 p 4 6 14 2 10 Construa um diagrama de tempo mostrando qual programa está ocupando o processador e o disco a cada momento, até que os 4 programas terminem. Suponha que o algoritmo utilizado seja o de revezamento (Round-Robin), com quantum de 4 unidades. Qual a taxa de ocupação do processador e do disco?