Gerência de Processador



Documentos relacionados
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 4 Gerência do Processador. O que sabemos é uma gota, o que ignoramos é um oceano. Isaac Newton

Gerência do Processador

Sistemas Operacionais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

03 GERÊNCIA DO PROCESSADOR

Gerência do Processador

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Sistemas Operacionais Processos e Threads

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

Sistemas Operacionais

GERENCIAMENTO DO PROCESSADOR. Prof. Maicon A. Sartin

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

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

Fundamentos de Sistemas Operacionais. Processos. Prof. Edwar Saliba Júnior Março de Unidade Processos

Gerência de processos Requisitos fundamentais

Escalonamento no Linux e no Windows NT/2000/XP

Organização e Arquitetura de Computadores

Gerência de Processador

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Capítulo 4 Gerência de Processador

Arquitetura de Computadores. Sistemas Operacionais IV

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

Gerência de processos Estudos de caso - BSD Unix

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

Introdução aos Sistemas

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

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura Exemplo

Sistemas Operacionais

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN

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

Sistema Operacional Correção - Exercício de Revisão

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

Sistemas Operacionais

Estrutura, Processos e Threads

SISTEMAS OPERACIONAIS

Arquitetura de Sistemas Operacionais

Programação Concorrente Processos e Threads

Gerenciamento de memória

Fundamentos de Sistemas Operacionais. Sistema de Arquivos. Prof. Edwar Saliba Júnior Março de Unidade Sistemas de Arquivos

Escalonamento de CPU 2 Quadrimestre

Memória Virtual. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Arquitetura e Organização de Computadores

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Algoritmos de Escalonamento

Sistemas Operacionais

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

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Sistemas Operacionais. Prof. André Y. Kusumoto

Organização de Computadores 1

Escalonamento de processos

Sistemas Operacionais

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

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

Sistemas Operacionais

Sistemas Operacionais

8 Threads. 8.1 Introdução

SISTEMAS OPERACIONAIS 2007

Memória - Gerenciamento. Sistemas Operacionais - Professor Machado

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

7 Processos. 7.1 Introdução

Gerenciamento de Memória

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Everson Scherrer Borges João Paulo de Brito Gonçalves

Sistemas Operacionais. Prof. André Y. Kusumoto

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

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

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

Processos e Threads (partes I e II)

Capítulo 4 Gerenciamento de Memória

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

Organização e Arquitetura de Computadores

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Processos. Adão de Melo Neto

Fundamentos de Sistemas Operacionais

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

Sistemas Operacionais Introdução. Professora: Michelle Nery

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais

SOsim: Simulador para o Ensino de Sistemas Operacionais Guia de Utilização

1.2 Tipos de Sistemas Operacionais

TI Básico. Sistemas Operacionais. Professor: Ricardo Quintão Site:

Capítulo 2 Processos e Threads Prof. Fernando Freitas

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais

Transcrição:

Gerência de Processador Prof. Edwar Saliba Júnior Junho de 2009 Unidade 03-003 Gerência de Processador 1

Introdução Com o surgimento dos sistemas multiprogramáveis, onde múltiplos processos poderiam permanecer na memória principal compartilhando o uso da CPU, a gerência do processador tornou-se uma das atividades mais importantes em um sistema operacional; A partir do momento em que diversos processos podem estar no estado de pronto, devem ser estabelecidos critérios para determinar qual processo será escolhido para fazer uso do processador; Os critérios utilizados para esta seleção compõem a chamada política de escalonamento, que é a base da gerência do processador e da multiprogramação em um sistema operacional. Unidade 03-003 Gerência de Processador 2

Escalonamento de Processos Unidade 03-003 Gerência de Processador 3

Funções Básicas Manter o processador ocupado a maior parte do tempo; Balancear o uso da CPU entre processos; Privilegiar a execução de aplicações críticas; Maximizar o throughput do sistema; Oferecer tempos de respostas razoáveis para usuários interativos. Unidade 03-003 Gerência de Processador 4

Considerações A política de escalonamento varia de acordo com o propósito do sistema operacional (Sistemas de Tempo Real x Sistemas de Tempo Compartilhado x Sistemas Batch); O escalonador (scheduler) implementa a política de escalonamento; Dispatcher: rotina que realiza a troca do processo em execução após a decisão do escalonador; Latência do dispatcher: tempo gasto para a troca de processos; Em ambientes multithread, a unidade escalonada é a thread (somente as que estiverem no estado pronto ); Para simplificar o entendimento, chamamos sempre a unidade escalonada de processo. Unidade 03-003 Gerência de Processador 5

Preempção Interrupção de um processo em execução para ser substituído por outro; O escalonamento de processos pode ser: Não preemptivo: processamento batch; Preemptivo: possibilidade de interrupção de um processo em execução. Unidade 03-003 Gerência de Processador 6

Escalonamento Preemptivo Sistemas mais complexos; Priorização de tarefas; Sistemas de Tempo Real ou Tempo Compartilhado. Unidade 03-003 Gerência de Processador 7

Definições Importantes Throughput: representa o número de processos executados em um determinado intervalo de tempo. Quanto maior o throughput, maior o número de tarefas executadas em função do tempo. A maximização do throughput é desejada na maioria dos sistemas; Tempo de processador: é o tempo que um processo leva no estado de execução durante seu processamento. As políticas de escalonamento não influenciam o tempo de processador de um processo, sendo este tempo função apenas do código da aplicação e da entrada de dados; Tempo de espera: é o tempo total que um processo permanece na fila de pronto durante seu processamento, aguardando para ser executado. Unidade 03-003 Gerência de Processador 8

Definições Importantes Tempo de turnaround: é o tempo que um processo leva desde a sua criação até ao seu término, levando em consideração todo o tempo gasto na espera para alocação de memória, espera na fila de pronto, processamento na CPU e na fila de espera, como nas operações de E/S; Tempo de resposta: é o tempo decorrido entre uma requisição ao sistema ou à aplicação e o instante em que a resposta é exibida. Em sistemas interativos, podemos entender tempo de resposta como o tempo decorrido entre a última tecla digitada pelo usuário e o início da exibição do resultado no monitor. Unidade 03-003 Gerência de Processador 9

Sistemas Operacionais - Características As características de cada sistema operacional determinam quais são os principais aspectos para a implementação de uma política de escalonamento adequada; Exemplos: sistemas de tempo compartilhado exigem que o escalonamento trate todos os processos de forma igual, evitando, assim, a ocorrência de starvation, ou seja, que um processo fique indefinidamente esperando pela utilização do processador; Já em sistemas de tempo real, o escalonamento deve priorizar a execução de processos críticos em detrimento da execução de outros processos. Unidade 03-003 Gerência de Processador 10

Política de Escalonamento - Principais Critérios Ser justo: um algoritmo de escalonamento é justo se todos os processos são tratados igualmente e nenhum processo pode sofrer postergação indefinida; Maximizar o desempenho do sistema: um algoritmo de escalonamento deve tentar servir o maior número possível de processos por unidade de tempo; Maximizar o número de usuários interativos: cada qual recebendo tempos de resposta aceitáveis (no máximo alguns segundos); Ser previsível: uma dada tarefa deveria rodar a mesma quantidade de tempo e sobre o mesmo custo independente da carga do sistema. Unidade 03-003 Gerência de Processador 11

Política de Escalonamento - Principais Critérios Minimizar o overhead: nem sempre este objetivo é considerado o mais importante. Overhead é comumente visto como excesso, seja de: processamento, memória, largura de banda e etc.; Balancear o uso de recursos: os mecanismos de escalonamento deveriam manter os recursos do sistema ocupados. Processos que usariam recursos sutis (simples, pequenos) deveriam ser favorecidos; Utilização do processador: na maioria dos sistemas, é desejável que o processador permaneça ocupado a maior parte do tempo. Uma utilização na faixa de 30% indica um sistema com uma carga de processamento baixa, enquanto que na faixa de 90% indica um sistema muito carregado, próximo de sua capacidade máxima. Unidade 03-003 Gerência de Processador 12

Política de Escalonamento - Principais Critérios Alcançar o equilíbrio entre resposta e utilização o melhor modo de garantir bons tempos de resposta é ter suficientes recursos disponíveis sempre que eles forem necessários. O preço a ser pago por esta estratégia é que a utilização total dos recursos será pobre. Em sistemas de tempo real, respostas rápidas são essenciais e a utilização dos recursos é menos importante. Em outros tipos de sistemas, a economia faz muitas vezes a efetiva utilização de recursos imperativa; Evitar a espera indefinida (starvation): em muitos casos, a espera indefinida pode ser tão ruim quanto o deadlock. Evitar a espera indefinida é melhor realizada pelo aging (envelhecimento controla a postergação aumentando a prioridade do processo postergado); Garantir prioridades: em ambientes nos quais os processos recebem prioridades, o mecanismo de escalonamento deveria favorecer os processos de maior prioridade. Unidade 03-003 Gerência de Processador 13

Algoritmos de Escalonamento FIFO: não preemptivo; Simples. Unidade 03-003 Gerência de Processador 14

FIFO Tempo Médio de Espera Caso 1: (0+10+14)/ 3 = 8 u.t. Caso 2: (0+4+7)/3= 3.7 u.t. Unidade 03-003 Gerência de Processador 15

Algoritmos de Escalonamento Shortest Job First: Seleciona o processo em estado pronto que necessitar de menos tempo de execução; O tempo de execução atribuído ao processo é uma estimativa baseada em execuções passadas; Reduz o tempo médio de espera dos processos; Problema: estimar tempo gasto por processos interativos (dependem da ação do usuário); Pode ser não preemptivo ou preemptivo (se entrar na fila um processo com tempo de execução menor do que o que está sendo executado). Unidade 03-003 Gerência de Processador 16

Shortest Job First Tempo de Médio de Espera Caso único: (0+3+7)/3 =3.3 u.t. Unidade 03-003 Gerência de Processador 17

Algoritmos de Escalonamento Escalonamento colaborativo ou cooperativo: O próprio processo em execução determina se poderá ou não haver preempção, através da consulta a uma fila de mensagens enviadas por outros processos; Não pode ser utilizado em Sistemas de Tempo Real; Problema: um processo pode dominar o uso do processador caso não esteja apto a verificar a fila de mensagens e provocar a preenpção; Primeiros sistemas operacionais da família Windows (conhecido como multitarefa cooperativo). Unidade 03-003 Gerência de Processador 18

Algoritmos de Escalonamento Escalonamento circular ou Round Robin: Preemptivo; Sistemas de Tempo Compartilhado com o uso de time slice (ou quantum); Utiliza FIFO para escalonamento da fila; Time Slice: Grande: mesmos problemas do FIFO (tempo médio de espera alto); Pequeno: alto custo de preempção, perde-se muito tempo com troca de contexto (10 a 100 milissegundos); Utilizado em sistemas que executam processos interativos. Unidade 03-003 Gerência de Processador 19

Escalonamento Circular Unidade 03-003 Gerência de Processador 20

Esc. Circular Exemplo Unidade 03-003 Gerência de Processador 21

Algoritmos de Escalonamento Escalonamento circular ou Round Robin: Problema: processos CPU-Bound são beneficiados no uso do processador em relação aos I/O-Bound. Devido as suas características os processos CPU-Bound tendem a usar integralmente as suas fatias de tempo de processamento. Enquanto os I/O-Bound têm mais chance de passar par a o estado de espera antes de sofrer preenpção por tempo; Minimização do problema: conhecido como escalonamento circular virtual. Nesse esquema, processos que saem do estado de espera vão para uma fila de pronto auxiliar. Os processos da fila auxiliar possuem preferência no escalonamento em relação a fila de pronto, e o escalonador seleciona processos na fila de pronto quando a fila auxiliar estiver vazia. Unidade 03-003 Gerência de Processador 22

Esc. Circular - Refinamento Unidade 03-003 Gerência de Processador 23

Algoritmos de Escalonamento Escalonamento com prioridade: Prioridade de execução: valor associado ao processo (contexto de software); Escalonador sempre escolhe o de maior prioridade (FIFO para desempate); De tempos em tempos a rotina de escalonamento reavalia as prioridades dos processos em pronto. Se for detectado algum com prioridade de execução maior do que o que está sendo executado, pode ocorrer a preempção, ou simplesmente o rearranjo da fila de entrada; Para que processos de menor prioridade não deixem de ser executados, alguns sistemas podem incrementar a prioridade dos processos que estão a mais tempo na fila. Unidade 03-003 Gerência de Processador 24

Escalonamento com Prioridade Unidade 03-003 Gerência de Processador 25

Esc. com Prioridade - Exemplo Unidade 03-003 Gerência de Processador 26

Algoritmos de Escalonamento Escalonamento circular com prioridade: Fatia de tempo + prioridade de execução; Utilizado na maioria dos sistemas de tempo compartilhado; O Windows 2000 utiliza 32 níveis de prioridade. Unidade 03-003 Gerência de Processador 27

Esc. Circular com Prioridade Unidade 03-003 Gerência de Processador 28

Algoritmos de Escalonamento Escalonamento por Múltiplas Filas: Existem diversas filas de processos no estado de pronto, cada qual com uma prioridade específica; Processos são associados as filas em função de características próprias: importância, tipo de processamento ou área de memória necessária; Como os processos possuem características de processamento distintas, é difícil que um único mecanismo de escalonamento seja adequado a todos. A principal vantagem de múltiplas filas é a possibilidade da convivência de mecanismos de escalonamento distintos em um mesmo sistema operacional. Unidade 03-003 Gerência de Processador 29

Esc. por Múltiplas Filas Unidade 03-003 Gerência de Processador 30

Algoritmos de Escalonamento Escalonamento por Múltiplas Filas com Realimentação: Semelhante ao escalonamento por múltiplas filas, porém os processos podem trocar de fila durante seu processamento; Vantagem: permite ao sistema operacional identificar dinamicamente o comportamento de cada processo, direcionando-o para fila com prioridade de execução e mecanismo de escalonamento mais adequado ao longo de seu processamento. Unidade 03-003 Gerência de Processador 31

Esc. Por Múltiplas Filas com Realimentação Unidade 03-003 Gerência de Processador 32

Escalonamento em Dois Níveis Até agora temos assumido que todos os processos estão na memória principal. Se não houver memória disponível para todos, alguns de tais processos devem ser mantidos em disco. Esta situação tem grande impacto sobre o escalonador, uma vez que o tempo gasto na troca de contexto envolvendo o disco, é algumas ordens de magnitude maior do que quando ambos os processos estão na memória principal; Uma forma mais prática de tratar com o swap de processos é usando um escalonador de dois níveis; onde um subconjunto dos processos prontos é carregado inicialmente na memória principal. O escalonador então se limita a escolher processos deste subconjunto; Periodicamente, um escalonador de mais alto nível entra em cena, para remover processos que já tenham ficado tempo suficiente na memória principal, carregando nesta, processos que estão há muito no disco. Unidade 03-003 Gerência de Processador 33

Escalonamento em Dois Níveis Uma vez completada a troca, o escalonador de baixo nível entra novamente em cena, limitando suas escolhas aos processos armazenados na memória principal; O escalonador de baixo nível coloca para rodar um dos processos que estiverem na memória no momento da ativação do escalonador, enquanto que cabe ao de alto nível movimentar periodicamente processos entre a memória principal e o disco. Unidade 03-003 Gerência de Processador 34

Escalonamento em Dois Níveis O escalonador de alto nível pode usar os seguintes critérios na sua tomada de decisão: quanto tempo se passou desde que o processo foi colocado no disco ou na memória principal; quanto tempo de processador o processo usou recentemente; qual o tamanho do processo; qual a prioridade do processo. Unidade 03-003 Gerência de Processador 35

Bibliografia MACHADO, F. B.; MAIA, L. P. Arquitetura de Sistemas Operacionais, 3ª Ed., Rio de Janeiro: LTC Editora, 2002. SILVA, Guilherme Baião S. Slides da disciplina de Sistemas Operacionais de Arquitetura Fechada. Faculdade INED, 2005. Unidade 03-003 Gerência de Processador 36