Algoritmos de Escalonamento



Documentos relacionados
Capítulo 4 Gerência de Processador

Gerência do Processador

Sistemas Operacionais

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

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

Gerência do Processador

Escalonamento de processos

Sistemas Operacionais

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

Escalonamento de CPU 2 Quadrimestre

Gerência de Processador

GERENCIAMENTO DO PROCESSADOR. Prof. Maicon A. Sartin

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

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

Gerência de Processador

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

Sistemas Operacionais

Escalonamento no Linux e no Windows NT/2000/XP

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

Sistemas Operacionais Processos e Threads

Gerência de processos Requisitos fundamentais

Gerenciamento de memória

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Capítulo 5: Escalonamento da CPU

SISTEMAS OPERACIONAIS

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

Fundamentos de Sistemas Operacionais

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

Capítulo 5: Escalonamento da CPU

Fila de Prioridade. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC Estruturas de Dados

Notas da Aula 6 - Fundamentos de Sistemas Operacionais

Arquitetura e Organização de Computadores

Sumário. Deadlock. Definição. Recursos. M. Sc. Luiz Alberto

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

Sistemas Operacionais

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

Escalonamento de Processos

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

Planejamento do TEMPO Técnica de Redes PERT/CPM e Diagramas de GANTT

CURSO: Desenvolvimento Web e Comércio Eletrônico DISCIPLINA: Gestão da Qualidade Professor: Ricardo Henrique

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

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

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

22/05/2006. Discurso do Presidente da República

Processos e Threads (partes I e II)

Sistemas Operacionais

MINISTÉRIO DA SAÚDE. Secretária de Gestão Estratégica e Participativa da Saúde SGEP. Coordenação de Desenvolvimento dos Sistemas de Saúde - CDESS

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento

Sistemas Operacionais

Gerência de processos Estudos de caso - BSD Unix

INSTRUÇÕES DE INSTALAÇÃO

Sistemas Operacionais

Sistemas Operacionais. Escalonamento de processos

Gerenciamento de Riscos em Projetos Prof. Sérgio Ricardo do Nascimento Aula 1 Exercícios 13/05/14

Avaliação de Desempenho de Sistemas

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

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

Capítulo 4 Gerenciamento de Memória

SISTEMAS OPERACIONAIS

Processos. Escalonamento de Processos

Processos. Estruturas de Controle

Servidores de Aperiódicas

NOTIFICANDO USUÁRIOS SOBRE UMA NOVA EDIÇÃO

Gerenciamento de memória

Teoria de Filas Aula 15

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

Processos. Escalonamento de Processos

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

Resolvendo problemas com logaritmos

8 Threads. 8.1 Introdução

Sistemas Operacionais. Prof. André Y. Kusumoto

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

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

Usando o do-file editor Automatizando o Stata

Sistemas Operacionais

Sistemas Operativos I

Instalação licença Network SOLIDWORKS 2016

Conceito de processo como uma unidade de trabalho em um sistema moderno de tempo compartilhado. Estados de um processo.

Processos. Escalonamento de Processos

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

A Matemática do ENEM em Bizus

Aula 4 Estatística Conceitos básicos

Sistemas Operacionais

Exercícios de Filas de Espera Enunciados

ARQUITETURA DE COMPUTADORES

Objetivo principal: aprender como definir e chamar funções.

APÓS A INSTALAÇÃO, MÃOS À OBRA. E AO TECLADO. MANUAL DE INSTALAÇÃO

8 Cálculo da Opção de Conversão

Capítulo 4 Gerenciamento de Memória

Apresentação da disciplina. Sistemas Operacionais I N. A disciplina. O Professor. Áreas de atuação na pesquisa. Referências bibliográficas básicas

Memória cache. Prof. Francisco Adelton

Transcrição:

Na aula anterior lgoritmos de Escalonamento Marcelo Johann Threads Sincronização Semáforos ula : Slide ula : Slide Plano da aula de Hoje. FIFO. SJF. Prioridade. Round-Robin 5. Múltiplas Filas 6. Garantido 7. Lotérico 8. Tempo-Real Escalonamento Definição e critérios Quando ocorre?. o acontecer a transição executando para bloqueado (pergunta: quando isso acontece?). o acontecer a transição executando para pronto (pergunta: quando isso acontece?). o encerrar-se um processo. --: o processo para de executar, e isso dispara o escalonador.. o acontecer a transição bloqueado para pronto. Pode ter sido liberado um processo importante. ula : Slide ula : Slide Vários níveis de escalonamento Escalonador vs. dispachante Escalonador de curto prazo Decide da alocação da PU Tempo de resposta: faixa da ms Escalonador de médio prazo Decide do gerenciamento de memória Swap Tempo de resposta: faixa de ms Distingue-se duas partes: O escalonador é responsável pela escolha do processo eleito para usar a PU. O dispachante é responsável pelo lado técnico de Salvar o processo que estava usando a PU; Executar o processo eleito na PU. Isso se chama efetuar a troca de contexto. Escalonador de longo prazo Gerencia a criação dos processos Escalona os acessos ao disco Salvar ontexto Restaurar ontexto Salvar ontexto Restaurar ontexto ula : Slide 5 ula : Slide 6

Preemptar ou não preemptar? Não-preempção: quando um processo executa, ele não pode ser interrompido por um fator externo. Deixa a PU ou por vontade própria (sleep/yield), ou porque terminou. Windows., pple Mac. OS antigo (<8) Os casos -- tinham a ver com não-preempção. Preempção: ato de interromper a execução de um processo para executar um outro. Sis. Op. modernos (Windows 95+, Linux) Necessita sincronização! asos e implicam, potencialmente, em pre-empção. ula : Slide 7 lguns algoritmos não-preemptivos FIFO (First in, First out) Primeiro chegado, primeiro atendido; O mais simples; SJF (Shortest Job First) Necessita informações a respeito dos processos e de sua duração! Extremamente eficiente. Prioridades Generalização do SJF ula : Slide 8 lgoritmo First in First out O processo pronto há mais tempo passa a usar a PU. Exemplo: s Diagrama de GNTT hegada FIFO Limitações duração total não depende da ordem de escalonamento! Espera por processo: espera sec. espera sec. espera sec. Espera média: (++)/ = 5 sec. Que tal com a ordem de chegada --? espera sec. espera sec. espera 6 sec. Espera média: (++6)/ =,66 sec! FIFO não é nada igualitário, pelo contrário é muito ditatorial. Outro parâmetro: é inteligente escalonar primeiro os processos I/O bound! ula : Slide 9 ula : Slide lgoritmo Shortest Job First Existem sistemas onde se tem informação a respeito dos processos (jobs); Sistemas de batches não-interativos Em geral, quer-se minimizar o turnaround (tempo de espera dos clientes ); Seja t i o tempo de uso da PU do processo i (no momento da tomada de decisão!) O dono de i espera W i = Σ j=,,i t j sec. Mostra-se por indução que W i é mínimo quando os t j estão em ordem crescente. SJF em nosso exemplo s hegada Diagrama de GNTT ula : Slide ula : Slide

SJF: problema e paliativo Só tem um probleminha é preciso prever o futuro tempo de execução do processo! Pode-se tentar estimar o tempo t i baseando-se sobre o passado. Execução passada de um job; nalisando os surtos de PU no histórico do processo. Qual estimação? t i+ = t i : a história se repete constantemente Mais inteligente: ponderar o histórico global W i- = Σ j=,,i- t j com a última medição t j : t i+ = αt i + (- α) W i- Fala-se de média exponencial. Escalonamento por prioridades No caso do SJF, usou-se o critério duração para priorizar os processos. Versão mais geral: Decide-se uma prioridade por processo; s com mesma prioridade podem ser desempatados através do FIFO (por exemplo). Prioridades podem ser atribuídas por ordem crescente ( é a mais baixa) ou decrescente ( é a mais alta). prioridade pode ser determinada: Pelo Sis. Op. (a partir do histórico, de seus I/O, ); Pelo usuário (a partir da avaliação da importância do processo); Pelos dois juntos! ula : Slide ula : Slide Prioridades - limitações Preempção ou não-preempção? Starvation (postergação indefinida) Um processo de baixa prioridade pode sempre ser deixado para mais tarde. Não significa que ele nunca será executado, mas que ele PODE nunca ser executado. Solução: aumentar a prioridade com o passar do tempo (envelhecimento/aging) Inversão de prioridade que aguarda tem mais prioridade do que o que libera Sobretudo: faz sentido que um processo altamente prioritário tenha que esperar até o processo em execução deixe a PU? Ou seja, prioridade tem a ver com pre-empção! No fundo: Prioridades são mais compatíveis com preempção SJF pode ser usado com preempção! Se surgir um job mais curto, ele interrompe o que está executando. Diagrama de GNTT hegad a ula : Slide 5 ula : Slide 6 Escalonamento Round Robin O escalonador define um quantum (fatia de tempo) para cada processo. pós se encerrar a fatia, o processo escalonado deve ceder o lugar na PU a um outro. Também se perde a PU se terminar antes do fim do quantum, ou faz um pedido de E/S,! Mantém-se uma lista circular de processos prontos. lgoritmo R. R. Diagrama de Gantt Quantum de unidades de tempo. Exemplo: s Diagrama de GNTT hegada Deve-se usar um mecanismo de interrupção regular, ocorrendo a cada fatia de tempo. Usa o clock. ula : Slide 7 ula : Slide 8

Round-Robin: observações Deve-se ter um algoritmo de desempate entre os processos prontos quando há uma interrupção FIFO, SJF, prioridades Se o quantum aumenta muito, se obtém novamente um FIFO. Espera média: : 7 : 6 : 5 (7+6+5)/ = 6. (comparar com (SJF) e 7 (FIFO)) Round-Robin: limitações e problemas O grande interesse do R.R. é sua equidade Todos os processos acabam tendo uma chance regular de executar. omo definir o quantum? Muito grande: = FIFO! Muito pequeno: só se faz troca de contexto s I/O bound são prejudicados! Esperam tanto como os outros, mas não chegam a usar seu quantum todo! Solução: juntar Round Robin e prioridades com preempção ula : Slide 9 ula : Slide Múltiplas Filas: Prioridade preemptiva Define-se prioridades para os processos. 5 Logo que surgir um processo com maior prioridade que o que está executando, ele preempta o mesmo que volta para a fila dos prontos. aso haja mais de um processo com uma dada prioridade, se aplica um segundo algoritmo de desempate. Tipicamente Round-Robin; Também pode ser um FIFO ou SJF. Neste caso, obtém-se uma lista por nível de prioridades. Quando uma fila está vazia, considera-se a lista de prioridade inferior. Múltiplas filas, com realimentação. Pode ter um algoritmo distinto de desempate em cada fila. Definição das prioridades Estática: a prioridade é dada na criação do processo Pelo Sis. Op., pelo usuário Problema: há risco de postergação indefinida (starvação) para um processo com baixa prioridade. Dinâmica: a prioridade evolui durante o ciclo de vida do processo. omeça com um valor estático Evolui depois: umenta a medida que o processo usa a PU; umenta proporcionalmente à fração do quantum que não usou. ssim, os processos I/O bound voltam na fila de espera com alta prioridade! ula : Slide ula : Slide Escalonamento Garantido Em um sistema com n processos, idealmente cada processo deve receber /n do tempo Nenhum dos algoritmos anteriores oferece qualquer garantia ou tenta se aproximar disso Seja h o tempo total gasto por um processo na PU Seja t o tempo transcorrido desde sua criação Então t/n é o tempo que esse processo deveria ter usado ssim, f=h/(t/n) é um fator que determina se o processo usou mais ou menos do que deveria. Se um processo tem f=.5, usou metade do tempo justo. Pode-se escalonar os processos por menor valor de f. 6 Escalonamento Lotérico (Waldspurger e Weihl, 99) O sistema distribui bilhetes aos processos, e faz um sorteio cada vez que precisa selecionar um processo para a PU. Se cada processo tiver x% dos bilhetes, deve ganhar a PU x% das vezes Em teoria, um processo pode nunca ser sorteado. Na prática, as probabilidades garantem que isso não ocorre. É um escalonamento responsivo (sem filas). s prioritários podem ganhar mais bilhetes s cooperativos podem trocar bilhetes: Ex: clientes podem passar bilhetes para servidores 7 ula : Slide ula : Slide

Escalonamento para Tempo Real Utiliizados em Sistemas Operacionais de Tempo Real 8 Mecanismo vs Política Hard Real Time Soft Real Time s curtos, previsíveis, tempo conhecido Eventos periódicos e aperiódicos Sistemas Escalonável: somatórios de tempos/periodos < Mecanismo é o lgoritmo e/ou a Estrutura Política é o conjunto de regras que é usado para atribuir os números ou classes lgoritmo de Taxa Monotônico (RM, Liu e Layland, 97) Prazo Final mais edo Primeiro (EDF) Folga Mínima Primeiro (MLF) ula : Slide 5 ula : Slide 6 5