Escalonamento de CPU 2 Quadrimestre



Documentos relacionados
Escalonamento de processos

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

Gerência do Processador

Sistemas Operacionais

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

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

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

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

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

Gerência do Processador

Algoritmos de Escalonamento

Capítulo 4 Gerência de Processador

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

Sistemas Operacionais

GERENCIAMENTO DO PROCESSADOR. Prof. Maicon A. Sartin

SISTEMAS OPERACIONAIS

Gerência de Processador

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

Escalonamento no Linux e no Windows NT/2000/XP

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

Gerenciamento de memória

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

SISTEMAS OPERACIONAIS

8 Threads. 8.1 Introdução

Gerência de processos Requisitos fundamentais

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

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

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

Capítulo 5: Escalonamento da CPU

Sistemas de Tempo Real: Conceitos Básicos

Gerenciamento Básico B de Memória Aula 07

Programação Concorrente Processos e Threads

Capítulo 5: Escalonamento da CPU

Gerência de Processador

Sistemas Operacionais

Sistemas Operacionais Processos e Threads

03 GERÊNCIA DO PROCESSADOR

Processos e Threads (partes I e II)

Sistemas Operacionais. Professor Leslier Soares Corrêa

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

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

Métodos de Sincronização do Kernel

Arquitetura e Organização de Computadores

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Seu manual do usuário LOGMEIN RESCUE

Sistemas Operacionais

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

Gerenciamento de memória

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

Capítulo 4 Gerenciamento de Memória

PROCESSOS. Prof. Maicon A. Sartin

Introdução aos Sistemas

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

Sistemas Operacionais

Conectar diferentes pesquisas na internet por um menu

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Sistemas Operacionais

Sistemas Operacionais I

Arquitetura dos Sistemas Operacionais

Sistemas Operacionais

UNIVERSIDADE FEDERAL DE SANTA MARIA COLÉGIO TÉCNICO INDUSTRIAL DE SANTA MARIA Curso de Eletrotécnica

DESENVOLVENDO O SISTEMA

Threads. 8 de janeiro de 2015

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

Gerenciamento de Processos

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

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

Guia de utilização da notação BPMN

Gerenciamento de Memória

Fundamentos de Teste de Software

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

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

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

Integrating Multimedia Applications in Hard Real-Time Systems. Introdução - CM são sensíveis a delay e variação no delay (Jitter)

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

Diagrama lógico da rede da empresa Fácil Credito

Sistemas Operacionais. Prof. André Y. Kusumoto

ARQUITETURA DE COMPUTADORES

Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo.

AULA 16 - Sistema de Arquivos

Nível do Sistema Operacional

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

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

Instalação do Sirius sem estações. O primeiro passo é instalar o Firebird 1.5, ele se encontra no CD de instalação do Sirius na pasta Firebird.

Sistemas Operacionais. INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR

Sistemas Operacionais Conceitos Básicos

Arquitetura e Organização de Computadores

MODELAGEM E SIMULAÇÃO

UFG - Instituto de Informática

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

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

Threads Aula 04 2 Quadrimestre

Transcrição:

BC1518-Sistemas Operacionais Escalonamento de CPU 2 Quadrimestre de 2010 (aula 05) Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br Roteiro Conceito Despachante Critérios de escalonamento Algoritmos de escalonamento Escalonamento em múltiplos processadores; Exemplos em Sistemas Operacionais; Leituras sugeridas; Exercícios.

Conceito Quando a CPU precisa decidir se executa um processo que atualiza a tela depois que um usuário fecha uma janela, ou executa um processo que envia mensagem eletrônica em um sistema multiprogramação. A escolha faz uma enorme diferença para a percepção do usuário 3 Conceito Os processos alternam entre 2 estados: CPU e E/S; Começa com um burst (surto) de CPU e burst de E/S; Programa I/O-bound => muitos burst de CPU curtos; Programa CPU-bound-> alguns burst de CPU longos. Importante na seleção de um algoritmo de escalonamento. Ciclo de burts 4

Conceito tempo Pronto Em execução Conclusão de I/O ou evento seleção Bloqueado Espera por I/O ou evento 5 Conceito Situações nas quais escalonamento é necessário: Um novo processo é criado e passa para estado de pronto; Um processo terminou sua execução e um processo pronto deve ser executado; Processo é bloqueado (dependência de E/S)=> outro deve ser executado; Interrupção de E/S, o escalonador deve decidir por: Executar o processo que estava esperando esse evento; Continuar executando o processo que já estava sendo executado. 6

Escalonamento S.O. escolhe qual processo deve ser executado na CPU => Escalonador de CPU; Escalonador deve se preocupar com a eficiência da CPU, pois o chaveamento de processos é complexo e custoso: Afeta desempenho do sistema e satisfação do usuário. Algoritmos que realizam o chaveamento de processos prontos para executar de acordo com regras bem estabelecidas. 7 Escalonamento O esquema de escalonamento: Não preemptivo (cooperativo): Não permite interrupções externa à tarefa até que seja liberado pelo seu término ou pela troca para o estado esperando. Exemplo: Windows 3.x. Preemptivo: Interrompe a execução de uma tarefa e transfere a CPU para outro; Necessário mecanismo para coordenar acesso aos dados; Afeta o projeto de Kernel do SO => mudanças de filas E/S; Chamada de sistema deve ser concluída antes da troca; Exemplo: Windows XP, Mac OS X. 8

Despachante Componente envolvido na função do escalonador de CPU; Módulo que dá o controle da CPU ao processo; Função: Trocar o contexto; Trocar para o modo usuário; Desviar para local apropriado no programa de usuário. Chamado durante a troca de processo; Tempo gasto para interromper um processo e iniciar a execução de outro definido por latência de despacho. 9 Critérios para escalonamento Utilização de CPU: manter a CPU tão ocupada quanto possível Maximizar; Vazão (throughput): número de processos que completam sua execução por unidade de tempo. Maximizar; Tempo de Proporcionalidade: quantidade tempo para executar um processo particular. Minimizar; 10

Critérios para escalonamento Tempo de Espera: quantidade de tempo que um processo espera na fila dos prontos. Minimizar; Tempo de Resposta: quantidade de tempo que leva de quanto um pedido foi feito até que a primeira resposta seja produzida, não a saída (para ambientes de tempo - compartilhado) Minimizar; 11 Escalonamento de CPU Algoritmo de escalonamento FIFO (first in, first out)); Processo que solicita a CPU primeiro, a recebe primeiro. Quando processo entra na fila de pronto, seu PCB é ligado ao final da fila. Quando CPU é liberada, ela é alocada ao processo no início da fila. Tempo de espera normalmente longo; Efeito comboio: todos os outros processo aguardam quando há um grande processo em execução na CPU. 12

Primeiro a chegar, primeiro a ser atendido (PCPA) Fila de entrada 3 2 1 CPU 0 Interrupção qualquer (E/S) 13 Primeiro a chegar, primeiro a ser atendido (PCPA) CPU Fila de entrada 0 3 2 1 CPU não controla o tempo dos processos! (não-preemptivo) 14

Primeiro a chegar, primeiro a ser atendido (PCPA) Exemplo: prog A (15 milissegundos), B (2 milissegundos) C (1 milisegundo). Tempo pode variar substancialmente se os tempos de retorno da CPU variarem muito A linha de tempo (diagrama de Gantt) é Tempo de retorno A B C Tempo médio = 16,67 Tempo de chegada 0 0 15 17 18 C B A Tempo médio = 7,3 0 1 3 18 15 Primeiro a chegar, primeiro a ser atendido (PCPA) Vantagem: fácil de implementar. Desvantagem: tempo de retorno imprevisíveis. problemático em sistemas de tempo compartilhado. 16

Programa menor primeiro (MP) Algoritmo Shortest job first (SJF); Associa a cada processo o tamanho do próximo burst de CPU do processo; A CPU atribui o processo que tem o próximo retorno de CPU menor (burst); Em caso de empate (tempo de retorno) dos processo, o algoritmo FIFO é utilizado; Não preemptivo e trabalha de acordo com a extensão de seus ciclos de CPU. 17 Programa menor primeiro (MP) Exemplo: Programas A B C D Tempo de chegada 0 ciclo de CPU 5 2 6 4 A linha de tempo (diagrama de Gantt) é B D A C Tempo médio = 9,0 0 2 6 11 17 Se fosse utilizado o FIFO, o tempo médio seria de 10,5 18

Programa menor primeiro (MP) 8 4 4 4 A B C D Em ordem: retorno A = 8 retorno B = 12 retorno C = 16 retorno D = 20 Média 56/4 = 14 4 4 4 8 B C D A Menor job primeiro: retorno B = 4 retorno C = 8 retorno D = 12 retorno A = 20 Média 44/4 = 11 19 Programa menor primeiro (MP) Vantagem: minimiza tempo médio de espera; Desvantagem: adiantamento indefinido de alguns programas, ou seja, não há como saber a extensão do próximo burst de CPU. 20

Menor tempo restante (MTR) Preemptivo do MP; Processos com menor tempo de execução são executados primeiro; Se um processo novo chega e seu tempo de execução é menor do que do processo corrente na CPU, a CPU suspende o processo corrente e executa o processo que acabou de chegar; Requer conhecimento prévio do tempo de CPU (sistema em lote). 21 Menor tempo restante (MTR) Exemplo: Tempo de chegada 0 1 2 3 (distante em 1 ciclo de CPU) Programa A B C D Ciclo de CPU 6 3 1 4 A linha de tempo (diagrama de Gantt) é A B C B D A 0 1 2 3 5 9 14 Programa A B C D Tempo retorno 14 4 1 6 Tempo médio = 6,25 MP teria um tempo médio de 7,75 22

Menor tempo restante (MTR) Vantagem: garante execução rápida de programas importantes. Desvantagem: sobrecarga com mudanças de contexto; 23 Escalonamento de CPU Algoritmos para Sistemas Interativos: Alternância circular (Round-Robin); Prioridades; Filas múltiplas; Próximo processo mais curto (Shortest Process Next); Garantido; Loteria; Fração justa (Fair-Share). 24

Escalonamento de CPU Algoritmo alternância circular (AC) Escalonanento Round-Robin; Tempo compartilhado; Preemptivo; Cada processo recebe um tempo de execução chamado quantum; ao final desse tempo, o processo é bloqueado e outro processo é colocado em execução; Escalonador mantém uma lista de processos prontos. 25 Algoritmo alternância circular (AC) Trabalha primeiro a chegar, primeiro a ser atendido. Ex.: Tempo de chegada 0 1 2 3 Programa A B C D Ciclo de CPU 8 4 9 5 A B C D A C D C 0 4 8 1 2 1 6 2 0 2 4 2 5 quantum Programa A B C D Tempo retorno 20 7 24 22 2 6 Tempo médio = 18,25 26

Algoritmo alternância circular (AC) Vantagem: proporciona tempos de resposta razoáveis para usuários interativo. Desvantagem: requer seleção de quantum de tempo ideal; se for muito pequeno, ocorrem muitas trocas diminuindo, assim, a eficiência da CPU; se for muito longo o tempo de resposta é comprometido. 27 Escalonamento de CPU Algoritmo com Prioridade Associa-se a cada processo um nível de prioridade, de acordo com os interesses do sistema. Exemplo: Gerenciador da CPU determina a prioridade para programas que: Necessidade de memória; Tempo total de CPU; Número e tipo de dispositivos periféricos. 28

Algoritmo com Prioridade Cada processo possui uma prioridade => os processos prontos com maior prioridade são executados primeiro; Prioridades podem ser dinâmica ou estática; Estática -> um processo é criado com uma determinada prioridade e esta prioridade é mantida durante todo o tempo de vida; Dinâmica -> prioridade do processo é ajustada de acordo com o estado de execução do processo e/ou sistema. 29 Algoritmo com Prioridade Escalonamento de alta e baixa prioridade: Indicadas por algum intervalo de número; Não existe um acordo geral sobre se 0 é de maior ou menor prioridade; Exemplo: ajustar a prioridade em função da fração quantum que foi realmente utilizado pelo processo; Classes de processos com mesma prioridade; Agendados para executar em ordem FIFO; Preemptivo ou não preemptivo; 30

Algoritmo com Prioridade Agrupar processos em classes de prioridades Dentro de cada classe usar o escalonamento circular FILAS 4 3 2 1 processos prontos (Round-Robin) mais alta prioridade mais baixa 31 Algoritmo com Prioridade Vantagem: garante execução rápida de programas importantes. Desvantagem: Adiantamento indefinido de alguns programas; Um processo de baixa prioridade não pode executar. Solução: técnica do envelhecimento busca aumentar gradualmente a prioridade do processo que estão no sistema por um longo tempo. 32

Escalonamento de CPU Filas múltiplas (multinível): Divide a fila de prontos em várias filas separadas; CTSS (Compatible Time Sharing System); Cada processo é atribuído a uma fila: Exemplo: prioridades, tipo de processo; Cada fila de prioridade possui quantum diferente; Cada fila tem seu próprio algoritmo de escalonamento (ex.: FIFO, MP); Escalonamento entre as filas: Exemplo: Primeiro plano e segundo plano. Preemptivo. 33 Filas multinível 34

Fila multinível com feedback Filas múltiplas com realimentação Permite que um processo se mova entre as filas; Separar de acordo com burst de CPU; Se utilizar muito tempo da CPU é movido para uma fila de menor prioridade; Processos de menor prioridade são executados por um quantum processos Se necessário dois quantum na próxima classe e quatro quantum e assim por diante. Este algoritmo diminui o número de comutações da CPU entre os processos ativos 35 Fila multinível com feedback Um processo entra na fila F 0 a qual emprega o FIFO. Quando entra em execução recebe 8 milisegundos. Se não finalizar em 8 milisegundos e movido para a fila F 1. Em F 1 é recebe 16 milisegundos para FIFO; Se ainda não concluir e movida para próxima fila. 36

Escalonamento de CPU Algoritmo próximo processo mais curto Mesma idéia do Shortest Job First dos sistemas em lote; Problema: Processos Interativos não se conhece o tempo necessário para execução; Como empregar esse algoritmo: ESTIMATIVA de TEMPO. 37 Escalonamento de CPU Algoritmo garantido: Garantias são dadas aos processos dos usuários: n usuários -> 1/n do tempo de CPU para cada usuários; Algoritmo por loteria: Cada processo recebe tickets que lhe dão direito de execução; Algoritmo por fração justa: O dono do processo é levado em conta; Se um usuário A possui mais processos que um usuário B, o usuário A terá prioridade no uso da CPU; 38

Escalonamento em múltiplos processadores Sistema homogêneo termos de funcionamento; Técnicas de multiprocessamento: Assimétrica: Escalonamento, processamento de E/S tratadas pelo servidor mestre. Os demais equipamentos executam somente código do usuário; Simétrico (SMP):cada processador é auto-escalonado. Os processos podem estar numa fila de pronto ou cada CPU tem sua fila de prontos. Exemplo: Windows XP, Linux, Mac OS X. 39 Escalonamento em múltiplos processadores Afinidade: Auto custo de invalidação e preenchimento dos caches pela troca de processos em uma CPU; Maioria dos sistemas SMP tenta evitar a migração de processo de uma CPU para outra > afinidade de processador Podemos ter: Afinidade flexível: tenta manter o processo em execução no mesmo processador, mas não há garantia. Afinidade rígido: especifica o processador e não deve migrar para outras CPUs. 40

Escalonamento em múltiplos processadores Balanceamento de Carga: O Balanceamento busca manter a carga de trabalho distribuída uniformente entre todas as CPUs num sistema SMP Necessário em sistemas em que cada CPU tem sua própria fila privada de processos elegíveis para execução; Duas técnicas são aplicadas: Migração Push: uma tarefa específica verifica periodicamente a carga de cada CPU e eventualmente distribui ela movendo (pushing) a tarefa; Migração Pull: CPU ociosa puxa uma tarefa esperando de um processador ocupado Alguns sistemas implementam ambas - exemplo: Linux. O balanceamento se opõe aos benefícios da afinidade do processador 41 Escalonamento de CPU Tempo é um fator crítico; Produzir saídas corretas em determinado momento Exemplos de sistemas críticos: Aviões; Hospitais; Usinas Nucleares; Bancos; Multimídia; Importante: obter respostas em atraso e tão ruim quanto não obter respostas; 42

Sistemas em Tempo Real Tipos de STR: Hard Real Time: atrasos não são tolerados; Aviões, usinas nucleares, hospitais; Ex. responder as altas temperaturas no núcleo de uma usina nuclear; Soft Real Time: atrasos são tolerados; Bancos; Multimídia; Ex. coletar dados de controle de tráfego aéreo a cada segundo; 43 Sistemas em Tempo Real Tipos de STR: Eventos causam a execução de processos: Síncronos: ocorrem em intervalos regulares de tempo; Assíncronos: ocorrem em intervalores irregulares de tempo; Algoritmos podem ser: estáticos (tomada da decisão antes de iniciar) ou dinâmicos (não apresentam essas restrições). 44

Windows XP - Escalonador Escalonador preemptivo baseado em prioridade; A thread de prioridade mais alta sempre será executada primeira Prioridade pode mudar decrementa após o tempo quantum de execução; Há 32 níveis de prioridade, sendo separada em filas Classe de Real-time (fixo): níveis 16 a 31 Outras classes (variável): níveis 1 a 15. Linux - Escalonador Baseado em prioridade com dois intervalos: Tempo Real: 0 a 99 Nice: 100 a 140 (de -20 a 19) Tarefa de mais alta prioridade tem maior quantum de CPU diferente do Win XP e Solaris

Aula 05 - Sumário Execução: ciclo de bursts de CPU e E/S Escalonador seleciona um processo na fila de pronto; Despachante executa a comutação Algoritmos de escalonamento FIFO, MP, MTR, AC, Prioridade, Fila multiníveis Escalonamento em multiprocessador Afinidade versus balanciamento Leituras Sugeridas Silberschatz, A., Galvin, P. B. Gagne, G. Sistemas Operacionais com Java. 7º, edição. Editora, Campus, 2008. Silberschatz, Abraham; Galvin, Peter Baer; Gagne, Greg. Fundamentos de sistemas operacionais. 6 ed. Rio de Janeiro: LTC, 2009.

Nota de Aula Acesse o link abaixo: http://hostel.ufabc.edu.br/~marcelo.nascimento/ Obrigado!!! Exercícios 1 - Considere que cinco processos sejam criados no instante de tempo 0 (P1, P2, P3, P4 e P5) e possuam as características descritas na tabela a seguir: Desenhe um diagrama ilustrando o escalonamento dos processos e seus respectivos tempos de retorno, segundo as políticas especificadas a seguir. O tempo de troca de contexto deve ser desconsiderado. a) FIFO b) MP c) MTR 50

Exercícios 2- Considere o seguinte conjunto de processos, com o ciclo de CPU expresso em milessegundos: Processo Ciclo Prioridade P1 10 3 P2 1 1 P3 2 3 P4 1 4 P5 5 2 Os processos são considerados como tendo chegado na ordem P1, P2, P3, P4, P5, todos no instante 0. a- Desenhe quatro diagramas de Gantt que ilustrem a execução desses processos usando o escalonamento PCPA, MP, por prioridade não preemptiva (um número de prioridade mais baixo) e AC (alternância circular - quantum = 1). b - Qual é o tempo de retorno de cada processo para cada um dos algoritmos de escalonamento do item 1. c - Qual dos escalonamento do item 1 resulta no tempo de retorno médio mínimo (em relação a todos os processos). d- Defina a diferença entre escalonamento preemptivo e não-preemptivo? 51 Exercícios 3 - Considere um sistema operacional com escalonamento por prioridades onde a avaliação do escalonamento é realizada em um intervalo mínimo de 5ms. Neste sistema, os processos A e B competem por uma única CPU. A tabela a seguir fornece os estados dos processos A e B ao longo do tempo, medido em intervalos de 5 ms (E=execução, P=pronto e W=espera). O processo A tem menor prioridade que o processo B. a) Em que tempos A sofre preempção? b) Em que tempos B sofre preempção? 52