Prof. Kleber R. Rovai

Documentos relacionados
Agendador. Agendador de Processos (Escalonador de Processos) Critérios de Agendamento. Agendador

Escalonamento de processos

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

Escalonamento. Pedro Cruz. EEL770 Sistemas Operacionais

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

SOP - TADS Escalonamento de Processos

Infra-Estrutura de Software. Escalonamento

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

Capítulo 2 Processos e Threads

SSC0640 Sistemas Operacionais I

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais

Sistemas Operacionais Escalonamento. Carlos Ferraz Jorge Cavalcanti Fonsêca

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

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

Sistemas Operacionais. Escalonamento de processos

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

Escalonamento de Processos

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

Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Sistemas de Computação. Processos e escalonamento

Escalonamento de Processos Uniprocessador

Sistemas Operacionais Aula 7

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

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

Prof. Kleber R. Rovai

SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (

SSC0640 Sistemas Operacionais I

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

Algoritmos de escalonamento

Escalonamento de Processos Estratégias de Escalonamento de Processos

Estratégias de Escalonamento de Processos

Escalonamento de Processos

Sistemas Operacionais

SEM 544 Desenvolvimento de Produtos Mecatrônicos

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais: Escalonamento de processos

Processos. Escalonamento de Processos

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

Processos. Escalonamento de Processos

Sistemas Operacionais

Escalonamento no Unix. Sistemas Operacionais

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

Davidson Rodrigo Boccardo

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

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

Gerência de Recursos. Gerência do Processador

Questões de Provas de Períodos Anteriores

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

}Escalonamento. Parte III - Sistemas Operacionais. Cap. 2 Processos. Escalonamento de Processos. Quando escalonar? Comportamento de Processos

Sistemas Operacionais. Gerência de Processador

Escalonamento no Unix. Sistemas Operacionais

Processos. Escalonamento de Processos

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

Escalonamento da CPU

Escalonamento da CPU

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

Sistemas Operacionais. Processos IC - UFF

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

SISTEMAS OPERACIONAIS

Resumo: Sistemas Operacionais Abertos

Sistemas de Informação. Sistemas Operacionais

Escalonamento de Tarefas

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

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

Sistemas Operacionais

Davidson Rodrigo Boccardo

PROCESSOS. Sistemas Operacionais. Vinícius Pádua

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

4 Políticas de Comunicação

Sistemas Operacionais. Escalonamento de Processos

Sistemas Operacionais Gerenciamento de Processos

Sistemas Operativos. Objetivo. Entrega do Questionário. Exercício 1. Exercício 2. Exercício 3. Exercício 4. Grupo 1 Introdução

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

Sistemas Operacionais II. Linux 2: Threads, Escalonamento, Gerenciamento de Memória e Sistemas de Arquivos

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Sistemas Operacionais

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Escalonamento de Processos. Ciclo 3 AT1. Prof. Hermes Senger

Sistemas Operacionais

Questões de Múltipla escolha

6 ESCALONAMENTO DE CPU

Sistemas Operacionais Aula 07: Scheduling da CPU. Ezequiel R. Zorzal

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

SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU

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

Escalonamento no Unix. Sistemas Operacionais

Notas da Aula 8 - Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Escalonamento de Processos

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

Escalonamento do CPU

Unix Processos. Geraldo Braz Junior

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Transcrição:

Prof. Kleber R. Rovai Msn: klrovai@hotmail.com E-mail: kleber@einstein-net.com.br Skype: klrovai Prof. Kleber R. Rovai kleber@einstein-net.com.br 2 1

Algoritmos dos Sistemas Interativos também ser usados como escalonadores de CPU em sistemas em lote. Escalonamento em três níveis não é adequado para sistemas interativos. Escalonamento em dois níveis (escalonador de memória e de CPU) não só é possível como também comum. 4 2

Escalonamento por alternância circular (round-robin) Um dos algoritmos mais antigos, mais simples, justos e amplamente usados; A cada processo é atribuído um intervalo de tempo, chamado quantum, no qual ele é permitido executar. Se, ao final do quantum o processo estiver ainda executando, a CPU sofrerá preempção e será dada a outro Processo. Se o processo foi bloqueado ou terminou antes que o quantum tenha decorrido, a CPU é alternada para outro Processo. Quando o processo usa todo o seu quantum, ele é colocado no final da lista. 5 Mais importante no escalonamento circular é o tamanho do quantum. A alternância de um Processo para outro requer salvar e carregar registradores e mapas de memória, atualizar várias listas e tabelas, carregar e descarregar a memória cache etc. Suponha que essa alternância de processo dure 1 ms, incluindo a alternância dos mapas de memória, descarga e recarga da cache etc. Suponha também que o quantum seja de 4 ms. Com esses parâmetros, depois de fazer 4 ms de trabalho útil, a CPU terá de gastar 1 ms para alternar o processo. 6 3

Escalonamento por alternância circular (roundrobin) a) lista de processos executáveis; b) lista de processos executáveis depois que B usou todo o seu quantum; 7 Escalonamento por prioridades Em uma universidade, uma ordem hierárquica seria encabeçada pelo reitor, e então viriam os professores, os secretários, os porteiros e finalmente os estudantes. Devido a fatores externos resulta-se o escalonamento por prioridades. A cada processo é atribuída uma prioridade Ao processo executável com a prioridade mais alta é permitido executar. 8 4

Para evitar que Processos de alta prioridade executem indefinidamente, o escalonador pode reduzir a prioridade do processo em execução a cada tique de relógio (isto é, a cada interrupção de relógio). Caso sua prioridade caia abaixo da prioridade do próximo processo com prioridade mais alta, então ocorrerá uma alternância de processo. A cada processo pode ser atribuído um quantum máximo no qual ele pode executar. Quando esse quantum estiver esgotado, será dada a oportunidade para que o próximo processo com prioridade mais alta execute. 9 O sistema Unix tem um comando, nice, que permite que um usuário reduza voluntariamente a prioridade de seu processo. Agrupar processos em classes de prioridade e usar o escalonamento por prioridades entre as classes. Entretanto, dentro de cada classe, usa-se o escalonamento circular. 10 5

Um algoritmo de escalonamento com quatro classes de prioridade 11 Filas múltiplas Um dos primeiros escalonadores por prioridades foi implementado no CTSS (Corbató et al-, 1962). O CTSS tinha um problema: a alternância de processo era muito lenta porque o 7094 só podia manter na memória um processo por vez. Cada alternância significava trocar o processo, ou seja, enviálo para o disco e ler outro do disco. Os projetistas do CTSS logo perceberam que era mais eficiente dar de vez em quando um quantum grande para os processos orientados a CPU do que fornecer frequentemente um quantum pequeno. 12 6

A solução, então, foi definir classes de prioridade. Os processos na classe de prioridade mais alta eram executados por um quantum. Os processos na classe seguinte de prioridade mais alta executavam por dois quantum. Os processos na próxima classe executavam por quatro quantum e assim por diante. Se um processo terminasse, todos os quantum a ele alocados iriam para uma classe abaixo. 13 Próximo processo mais curto (shortest process next) Processos interativos geralmente seguem o padrão de esperar por comando, executar comando, esperar por comando, executar comando e assim por diante. Se a execução de cada comando fosse como um job isolado, então poderíamos minimizar o tempo de resposta geral executando o job mais curto primeiro. Problema é saber qual dos processos atualmente executáveis é o mais curto. 14 7

Uma saída é realizar uma estimativa com base no comportamento passado e, então, executar o processo cujo tempo de execução estimado seja o menor. A técnica de estimar o valor seguinte da série, tomando a média ponderada do valor sendo medido e a estimativa anterior, é algumas vezes chamada de aging. 15 Escalonamento garantido Um método de escalonamento é fazer promessas reais sobre o desempenho aos usuários e então satisfazê-los. Uma promessa realista e fácil de cumprir é esta: Se houver n usuários conectados enquanto você estiver trabalhando, você receberá cerca de 1 / n de CPU. De modo semelhante, em um sistema monousuário com n processos em execução, todos iguais, cada um deve receber 1 / n ciclos de CPU. 16 8

Escalonamento por loteria Implementação mais simples. A ideia básica é dar bilhetes de loteria aos processos, cujos prêmios são vários recursos do sistema, como tempo de CPU. Se houver uma decisão de escalonamento, um bilhete de loteria será escolhido aleatoriamente e o processo que tem o bilhete conseguirá o recurso. Quando aplicado ao escalonamento de CPU, o sistema pode fazer um sorteio 50 vezes por segundo e, portanto, cada vencedor terá 20 ms de tempo de CPU como prêmio. 17 Escalonamento por fração justa (fair-share) Até o momento cada processo é escalonado por si próprio, sem nos preocuparmos com quem é o dono do processo. Com isso se o usuário 1 inicia 9 processos e o usuário 2 inicia 1 processo, com alternância circular ou com prioridades iguais, o usuário 1 obterá 90% da CPU e o usuário 2 terá somente 10% dela. 18 9

Nesse modelo, a cada usuário é alocada uma fração da CPU, e o escalonador escolhe os processos de modo que garanta essa fração. Assim, se dois usuários tiverem 50% da CPU prometida a cada um deles, cada um obterá os 50%, não importando quantos processos eles tenham gerado. 19 Ex: Usuário 1 tem 4 processos, A, B, C e D, e o usuário 2 tem somente um processo, E: A E B E C E D E A E B E C E D E... Ex: Se ao usuário 1 se destinar duas vezes mais tempo de CPU que para o usuário 2: A B E C D E A B E C D E... 20 10

Em geral, um ou mais dispositivos físicos externos ao computador geram estímulos, e o computador deve reagir apropriadamente a eles dentro de um dado intervalo de tempo. Exemplos ao sistemas de tempo real incluem: monitoração de pacientes em unidades de terapia intensiva de hospitais, piloto automático de aeronaves e robôs de controle em fábricas automatizadas. 21 Sistemas de tempo real são em geral categorizados como tempo real crítico, isto é, há prazos absolutos que devem ser cumpridos ou, então, como tempo real não crítico, no qual o descumprimento ocasional de um prazo é indesejável, contudo tolerável. Os eventos aos quais um sistema de tempo real pode precisar responder podem ser categorizados ainda como periódicos (ocorrem em intervalos regulares) ou aperiódicos (acontecem de modo imprevisível). 22 11

O comportamento de tempo real é implementado dividindo-se o programa em vários processos cujos comportamentos são previamente conhecidos. Esses processos tem vida curta e podem executar em bem menos de um segundo. 23 Dados m eventos periódicos evento i ocorre dentro do período P i e requer C i segundos Então a carga poderá ser tratada somente se m i 1 Ci P i 1 24 12

Um sistema de tempo real que satisfaça esse critério é chamado de escalonável. Os algoritmos de escalonamento de tempo real podem ser estáticos ou dinâmicos. O escalonamento estático tomam suas decisões de escalonamento antes de o sistema começar a executar. Os algoritmos de escalonamento dinâmico fazem em tempo de execução, não apresentando restrições. 25 Separa o que é permitido ser feito do como é feito: um processo sabe quais de seus threads filhos são importantes e precisam de prioridade. nenhum dos escalonadores aceita qualquer entrada proveniente de processos do usuário sobre decisões de escalonamento. o escalonador raramente faz a melhor escolha. 26 13

A solução para esse problema é separar o mecanismo de escalonamento da política de escalonamento. Algoritmo de escalonamento parametrizado mecanismo no núcleo, mas que os parâmetros podem ser preenchidos pelos processos dos usuários. 27 Ex: Banco de Dados núcleo use o algoritmo de escalonamento por prioridades. mas que faça uma chamada ao sistema na qual um processo seja capaz de configurar (e alterar) as prioridades e seus filhos. Desse modo, o pai pode controlar em detalhes como seus filhos são escalonados, mesmo que ele próprio não faça o escalonamento. Nesse exemplo, o mecanismo de escalonamento está no núcleo, mas a política é estabelecida por um processo de usuário. 28 14

Quando cada um de vários Processos tem múltiplos threads, ocorrem dois níveis de paralelismo: processos e threads. O escalonamento nesses sistemas diferem de modo substancial dependendo de os threads serem de usuário ou de núcleo (ou ambos). 29 Threads de usuário. Como o núcleo não sabe da existência de threads, ele opera como sempre faz, escolhendo um processo e dando a ele o controle de seu quantum. O escalonador do thread decide qual thread deve executar. Como não há interrupções de relógio para multiprogramar threads, esse thread pode continuar executando enquanto quiser. Se ele usar todo o quantum do processo, o núcleo selecionará um outro processo para executar. 30 15

Threads de usuário. Quando o processo finalmente voltar a executar, o thread permanecerá executando. Ele continuará a consumir todo o tempo do processo até que termine. Contudo, seu comportamento antissocial não afetará outros processos: eles obterão aquilo que o escalonador considerar uma fração apropriada, não importando o que esteja acontecendo dentro do processo. 31 Threads de núcleo. O núcleo escolhe um thread para executar. Ele não precisa levar em conta a qual processo o thread pertence, mas, se quiser, ele pode considerar esse fato. Ao thread é dado um quantum, e ele será suspenso se exceder o quantum. 32 16

Uma importante diferença entre os threads de usuário e os threads de núcleo é o desempenho. A alternância de thread com threads de usuário usa poucas instruções de máquina. Para os threads de núcleo, a alternância requer um chaveamento completo do contexto, com alteração do mapa de memória e invalidação da cache. 33 Possível escalonamento de threads de usuário processo com quantum de 50-mseg threads executam 5 mseg por surto de CPU 34 17

1) Um algoritmo de escalonamento de CPU determina uma ordem de execução de seus processos escalonados. Dados n processos a serem escalonados em um processador, quantas maneiras diferentes de escalonar estes processos são possíveis? 2) Defina a diferença entre escalonamento preemptivo e não-preemptivo. Explique por que o escalonamento não-preemptivo é improvável de ser utilizado em um centro de computação. 35 3) A solução de Peterson para o problema da exclusão mútua, mostrado na Figura 2.21, pág. 78 funciona quando o escalonamento do processo é preemptivo? E quando o escalonamento não for preemptivo? 4) Explique por que o escalonamento em dois níveis é bastante usado. 5) O que é uma condição de disputa? 36 18