Sistemas Operacionais. Gerência de Processador

Documentos relacionados
Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Gerência de Recursos. Gerência do Processador

Gerência do Processador. Adão de Melo Neto

Gerência do Processador. Adão de Melo Neto

Gerência de Recursos. Gerência do Processador

Sistemas de Informação. Sistemas Operacionais

Ar qu it e t u r a a de e Sist e m a s Ope r a cion a is Fa bia n o o Ut iy a m a Ca pít u lo o 8 Ge r ê n cia a do o Pr oce ssa dor

Sistemas Operacionais Gerenciamento de Processos

Sistemas Operacionais. Capítulo 8 Gerência do Processador

Sistemas Operacionais

Sistemas Operacionais Aula 7

Sistemas Operacionais. Escalonamento de processos

Definição. ? Algoritmo de Escalonamento de CPU. ? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU

Davidson Rodrigo Boccardo

Sistemas Operacionais

Estratégias de Escalonamento de Processos

Escalonamento de Processos Estratégias de Escalonamento de Processos

Processos. Aula Passada. Aula Passada (2) Ciclos de CPU e de I/O (1)

Escalonamento de Processos

Processos. Escalonamento de Processos

Processos. Escalonamento de Processos

Processos. Objetivos do Escalonamento. Políticas de Escalonamento. Algoritmos de Escalonamento. Maximizar a taxa de utilização da UCP.

Lista de Exercícios Escalonamento de CPU. 1. Considere o seguinte conjunto de processos, com o tamanho do tempo de burst de CPU dado em milissegundos:

Escalonamento de Processos Uniprocessador

Processos. Escalonamento de Processos

Sistemas Operacionais. Prof. André Y. Kusumoto

Algoritmos de escalonamento

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III. Escalonamento de Processos. 24/04/2014 Prof. Valeria M. Bastos

Sistemas Operacionais

Sistemas de Computação. Processos e escalonamento

Sistemas Operacionais

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 3. Escalonamento

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 09. Escalonadores. Conceito, escalonamento, filas de escalonamento e tipos de escalonadores.

Infra-Estrutura de Software. Escalonamento

Na Aula Anterior... Escalonamento de Processos. Nesta Aula. Escalonamento. Comportamento de um Processo. Historicamente...

Introdução a Arquitetura de Sistemas Operacionais. Parte 02

Escalonamento de Processos. Estratégia de atribuição do Processador aos Processos

Sistemas Operacionais: Escalonamento de processos

Escalonamento do CPU

Questões de Múltipla escolha

Fundamentos de Sistemas Operacionais

6 ESCALONAMENTO DE CPU

Temporização (Scheduling) de Processos

Infra-estrutura de Software. Escalonamento. Decidindo qual processo vai executar

SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Escalonamento da CPU

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

Escalonamento. Decidindo qual processo vai executar. Infra-estrutura de Software

SOP - TADS Escalonamento de Processos

1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU?

Sistemas Operacionais

Sistemas Operacionais

( ) Sistemas de Computação - Unifacs Professor : Marco Antônio C. Câmara - Lista de Exercícios II - Dia 18/10/2009

Davidson Rodrigo Boccardo

Responsável pelo Conteúdo: Profª. Dr. Luciano Silva. Revisão Técnica: Prof. Ms. Fábio Peppe Beraldo. Revisão Textual: Profª. Esp.

Sistemas Operacionais. Processos e Threads

SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES

Sistemas Operacionais. Prof. André Y. Kusumoto

Capítulo 5: Escalonamento da CPU. Operating System Concepts 8th Edition

LICENCIATURA EM COMPUTAÇÃO. Resenha Livro Sistemas Operacionais 4ª edição Capítulo quatro: Gerencia do processador

Escalonamento de Processos

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA GABRIEL BOJKO LUIZ OTÁVIO OYAMA

Notas da Aula 8 - Fundamentos de Sistemas Operacionais

Escalonamento de Processos

Questões de Provas de Períodos Anteriores

Temporização(Scheduling) de Processos. TemporobjectivomaximizarousodoCPU,i.e.tersempre um processo a executar.

Sistemas de Informação. Sistemas Operacionais

Matriz Discursiva do MÓDULO C FASE II 23/11 até 18/12

LabSO Gerência de Processos. Retrospectiva da aula passada... Na aula passada... Na aula passada...

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais Escalonamento. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais. Gerência de Memória

Resumo: Sistemas Operacionais Abertos

Aula 10: Escalonamento da CPU

Sistemas Operativos. Sumário. Escalonador da CPU. Por Prioridades Round Robin. ! Algoritmos de escalonamento

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

SSC0640 Sistemas Operacionais I

Sistemas Operacionais

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Gerência da Memória Memória Virtual. Adão de Melo Neto

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

Bacharelado em Ciência da Computação Sistemas Operacionais

Escalonamento de processos

Sistemas Operacionais

Sistemas Operacionais

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

Programação de Sistemas em Tempo Real

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06.

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. Padrão de Execução dum Processo

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Processos. Adão de Melo Neto

Transcrição:

Sistemas Operacionais Gerência de Processador

Sumário 1. Introdução 2. Funções Básicas do Escalonamento 3. Critérios de Escalonamento 4. Escalonamento 1. Não-Preemptivo 2. Preemptivo 5. Políticas de Escalonamento 1. Fila 2. Menor Trabalho 3. Menor Tempo Restante 4. Cooperativo 5. Circular 6. Circular Virtual 7. Prioridades 8. Circular com Prioridades 9. Múltiplas Filas 10. Múltiplas Filas com Realimentação 6. Escalonamento do Sistema 1. Sistemas de Tempo Compartilhado 2. Sistemas de Tempo Real

1. Introdução A gerência do processador tornou-se uma das atividades mais importantes em um sistema operacional. Diversos processos podem estar no estado de pronto. Critérios devem ser estabelecidos para determinar qual o processo será escolhido para fazer uso do processador. Os critérios utilizados para esta seleção compõem a chamada política de escalonamento. A política de escalonamento é a base da gerência do processador e da multiprogramação em um sistema operacional.

2. Funções Básicas do Escalonamento A política de escalonamento de um sistema operacional tem diversas funções básicas, como: Manter o processador ocupado a maior parte do tempo. Maximizar o throughput do sistema. Balancear o uso da CPU entre processos (equidade). Privilegiar a execução de aplicações críticas. Oferecer tempos de resposta razoáveis para usuários interativos.

2. Funções Básicas do Escalonamento A política de escalonamento depende do propósito e das características do sistema operacional (SO). Sistemas de tempo compartilhado: devem considerar um escalonamento que trate todos os processos de forma igual. Sistemas de tempo real: devem considerar um escalonamento capaz de priorizar a execução de processos críticos. O escalonador (scheduler) é a rotina do SO que tem como principal função implementar os critérios da política de escalonamento. O dispatcher é responsável pela troca de contexto dos processos após o escalonador determinar qual processo deve fazer uso do processador.

2. Funções Básicas do Escalonamento Em ambientes que implementam apenas processos, o escalonamento é realizado com base nos processos prontos para execução. Em sistemas que implementam threads, o escalonamento é realizado entre threads no estado de pronto - independentemente do processo. Podemos considerar o processo como sendo a unidade de alocação de recursos, enquanto o thread é a unidade de escalonamento. O termo processo será utilizado de forma genérica como sendo o elemento selecionado pelo escalonador.

2. Funções Básicas do Escalonamento

3. Critérios de Escalonamento Os principais critérios que devem ser considerados em uma política de escalonamento são: 1. Taxa de utilização do processador Na maioria dos sistemas é desejável que o processador permaneça a maior parte do seu tempo ocupado. Uma utilização na faixa de 30% indica um sistema com uma carga de processamento baixa. Na faixa de 90% indica um sistema bastante carregado, próximo de sua capacidade máxima.

3. Critérios de Escalonamento 2. Throughput 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.

3. Critérios de Escalonamento 3. Tempo de Processador 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. 4. Tempo de Espera Tempo de espera é o tempo total que um processo permanece na fila de pronto, aguardando para ser executado.

3. Critérios de Escalonamento 5. Tempo de Turnaround Tempo de Turnaround é o tempo que um processo leva desde a sua criação até seu término, levando em consideração: Todo o tempo gasto na espera para alocação de memória, Espera na fila de pronto (tempo de espera), Processamento na UCP (tempo de processador) e Na fila de espera (por algum recurso ou resposta), como nas operações de E/S. As políticas de escalonamento buscam minimizar esse tempo.

3. Critérios de Escalonamento 6. Tempo de Resposta 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 : O tempo de resposta é o tempo decorrido entre a última tecla digitada pelo usuário e o início da exibição do resultado no monitor. O tempo de resposta deve ser de poucos segundos. Em geral, o tempo de resposta não é limitado pela capacidade de processamento do sistema computacional, mas pela velocidade dos dispositivos de E/S.

3. Critérios de Escalonamento De uma maneira geral, qualquer política de escalonamento busca otimizar: A taxa de utilização do processador e O throughput. Ao mesmo tempo em que tenta diminuir: Tempo de Turnaround; Tempo Espera e Tempo de Resposta. Naturalmente, a importância de um critério em detrimento de outros depende do tipo de sistema operacional. Nos sistemas interativos o tempo de resposta tem grande relevância.

4.1. Formas de Escalonamento Não Preemptivo No escalonamento não preemptivo, quando um processo está em execução nenhum evento externo pode ocasionar a perda do uso do processador. Esse foi o primeiro tipo de escalonamento implementado nos sistemas multiprogramáveis. O processo só sai do estado de execução: Se terminar seu processamento ou; Executar instruções do próprio código que ocasionem uma mudança para o estado de espera.

4.2. Formas de Escalonamento Preemptivo No escalonamento preemptivo, o sistema operacional pode interromper um processo em execução e passá-lo para o estado de pronto, com o objetivo de alocar outro processo no processador. Com o uso da preempção, é possível ao sistema: 1. Priorizar a execução de processos. 2. Implementar políticas de escalonamento que compartilhem o processador de maneira mais uniforme. A maioria dos sistemas operacionais atuais implementam políticas de escalonamento preemptivas.

5.1. Políticas de Escalonamento Fila Não Preemptivo O processo que chegar primeiro ao estado de pronto é selecionado para execução na fila. Processo em estado de espera o próximo da fila é escalonado. Todos os processos quando saem do estado de espera entram no final da fila de pronto. First-In-First-Out - FIFO scheduling

5.1. Políticas de Escalonamento Algumas características: Fila Simples e não-preemptivo. Não é possível prever quando um processo terá sua execução iniciada. O algoritmo de escalonamento não se preocupa em melhorar o tempo médio de espera. Utiliza apenas a ordem de chegada dos processos à fila de pronto. Processo CPU-Bound levam vantagem no uso do processador sobre processos I/O-Bound.

5.2. Políticas de Escalonamento Menor Trabalho Escalonamento de menor trabalho (Shortest-Job-First - SJF scheduling) O processo em estado de pronto que necessitar de menos tempo de UCP para terminar seu processamento é selecionado para execução. Na sua concepção inicial, o escalonamento SJF é não-preemptivo. A sua vantagem sobre o escalonamento em fila está na redução do tempo médio de turnaround dos processos. Porém no SJF é possível haver starvation para processos com tempo de processador muito longo ou do tipo CPU-Bound.

5.3. Políticas de Escalonamento Menor Tempo Restante Escalonamento de menor tempo restante (Shortest Remaining Time - SRT Scheduling) O escalonamento de menor trabalho com preempção é conhecido como escalonamento de menor tempo restante. Toda vez que um processo no estado de pronto tem um tempo de processador estimado menor do que o processo em execução, o sistema operacional realiza uma preempção. O sistema operacional também deve ser o responsável por estimar os tempos de processador dos processos e o risco de starvation continua presente.

5.4. Políticas de Escalonamento Cooperativo O escalonamento cooperativo busca aumentar o grau de multiprogramação em políticas de escalonamento não preemptivos. Um processo em execução pode voluntariamente liberar o processador, retornando à fila de pronto e possibilitando que um novo processo seja escalonado, permitindo uma melhor distribuição no uso do processador. A principal característica desse escalonamento é que um processo libera a CPU de maneira cooperativa para um outro processo: O processador é liberado exclusivamente pelo processo em execução. O processo em execução verifica periodicamente uma fila de mensagens para ver se existem outros processos na fila de pronto.

5.5. Políticas de Escalonamento Circular Preemptivo Similar ao escalonamento fila. Existe um tempo limite para o uso contínuo do processador denominado fatia de tempo (time-slice).

5.5. Políticas de Escalonamento Algumas características: Circular Não permite que um processo monopolize a CPU, sendo o tempo máximo alocado continuamente igual à fatia de tempo. Processos CPU-Bound são beneficiados no uso do processador em relação a processos I/O-Bound. Devido às suas características, os processos CPU-Bound tendem a utilizar por completo a fatia de tempo. Enquanto os processos I/O-Bound têm mais chances de passar para o estado de espera antes de sofrerem preempção por tempo.

5.6. Políticas de Escalonamento Circular Virtual Preemptivo Busca reduzir esse benefício de processos CPU-Bound com relação a processos I/O-Bound. Os processos da fila auxiliar têm preferência em relação à fila de pronto.

5.7. Políticas de Escalonamento Prioridades Preemptivo Os processos não podem sofrer preempção por tempo. Pode ser implementado de uma maneira não preemptiva.

5.7. Políticas de Escalonamento Prioridades Um dos principais problemas desse escalonamento é o starvation. Processos de baixa prioridade podem não ser escalonados, permanecendo indefinidamente na fila de pronto. Uma solução para este problema é a técnica de aging. Este mecanismo incrementa gradualmente a prioridade de processos que permanecem por muito tempo na fila de pronto. O escalonamento por prioridades é bastante útil em sistemas de tempo real e nas aplicações de controle de processos, como também pode ser em aplicações de tempo compartilhado, onde, às vezes, é necessário priorizar o escalonamento de determinados processos.

5.8. Políticas de Escalonamento Circular com Prioridades Preemptivo Os processos podem sofrer preempção por tempo ou prioridade.

5.8. Políticas de Escalonamento Circular com Prioridades A principal vantagem desse escalonamento é permitir melhor balanceamento no uso do processador em sistemas de tempo compartilhado: Processos com perfil I/O-bound devem receber do administrador do sistema prioridades maiores que as dos processos CPU-bound. Isso permite ao sistema operacional praticar uma política compensatória entre processos de perfis distintos, compartilhando o processador de forma mais igualitária, daí proporcionando melhor balanceamento.

5.8. Políticas de Escalonamento Circular com Prioridades O escalonamento circular com prioridades possui duas variações: 1. Prioridades estáticas A prioridade definida no contexto de software de cada processo permanece inalterada ao longo de sua existência. 2. Prioridades dinâmicas É possível que a prioridade de um processo seja alterada dinamicamente pelo administrador do sistema ou, em algumas políticas, pelo próprio sistema operacional.

5.9. Políticas de Escalonamento Múltiplas Filas Preemptivo Os processos não têm prioridades, mas as filas sim. Possibilidade de escalonamentos distintos em um mesmo sistema.

5.9. Políticas de Escalonamento Múltiplas Filas Uma desvantagem deste escalonamento é que: No caso de um processo alterar seu comportamento no decorrer do tempo, o processo não poderá ser redirecionado para uma outra fila mais adequada. A associação de um processo à fila é determinada na criação do processo, permanecendo até o término do seu processamento.

5.10. Políticas de Escalonamento Múltiplas Filas com Realimentação Um processo criado, entra no final da fila de maior prioridade. A troca de filas ocorre quando há preempção por tempo. Fila adaptado com fatia de tempo. Fila de menor prioridade, que utiliza o escalonamento circular.

5.10. Políticas de Escalonamento Múltiplas Filas com Realimentação Pontos interessantes a serem considerados são: Processos I/O bound tendem a permanecer em filas de alta prioridade, pois tendem a não sofrer preempção por tempo. Processos CPU-bound vão progressivamente perdendo prioridade, pois vão sofrendo preempção por tempo. A complexidade de implementação pode ocasionar um grande overhead ao sistema.

6.1. Escalonamento do Sistema Sistemas de Tempo Compartilhado Em geral, os sistemas de tempo compartilhado caracterizam-se pelo processamento interativo. Os usuários interagem com as aplicações exigindo tempos de respostas baixos. A escolha da política de escalonamento deve levar em consideração o compartilhamento dos recursos de forma equitativa. Para possibilitar o uso balanceado do processador entre processos. A maioria dos sistemas operacionais de tempo compartilhado utiliza o escalonamento circular com prioridades dinâmicas.

6.2. Escalonamento do Sistema Sistemas de Tempo Real O escalonamento em sistemas de tempo real deve levar em consideração a importância relativa de cada tarefa na aplicação, não sendo admitidas variações no tempo de resposta. O escalonamento por prioridades é o mais adequado, já que, para cada processo, uma prioridade é associada em função da importância do processo dentro da aplicação. Não deve existir o conceito de fatia de tempo. A prioridade de cada processo deve ser estática.

[Fim] Gerência de Processador Até cortar os próprios defeitos pode ser perigoso. Nunca se sabe qual é o defeito que sustenta nosso edifício inteiro. Clarice Lispector Próximo Módulo: Gerência de Memória