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

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

Processos. Escalonamento de Processos

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

Sistemas Operacionais

SOP - TADS Escalonamento de 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.

Sistemas Operacionais Gerenciamento de Processos

Escalonamento de processos

Processos. Escalonamento de Processos

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais. Escalonamento de processos

Escalonamento de Processos Uniprocessador

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

Escalonamento. Pedro Cruz. EEL770 Sistemas Operacionais

Sistemas Operacionais. Gerência de Processador

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

Infra-Estrutura de Software. Escalonamento

Sistemas Operacionais

SSC0640 Sistemas Operacionais I

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

Sistemas Operacionais

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

6 ESCALONAMENTO DE CPU

Sistemas Operacionais

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

Davidson Rodrigo Boccardo

Sistemas de Informação. Sistemas Operacionais

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

Escalonamento de Processos

Escalonamento da CPU

Escalonamento da CPU

Sistemas Operacionais: Escalonamento de processos

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

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

Algoritmos de escalonamento

Estratégias de Escalonamento de Processos

Escalonamento de Processos Estratégias de Escalonamento de Processos

SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (

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

Sistemas Operacionais

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

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

Escalonamento do CPU

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

Sistemas Operacionais. Escalonamento de Processos

Sistemas Operacionais

Sistemas de Computação. Processos e escalonamento

Prof. Kleber R. Rovai

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

Sistemas Operacionais

Questões de Provas de Períodos Anteriores

Gerência de Recursos. Gerência do Processador

Sistemas Operacionais

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

Retrospectiva da aula passada... Escalonamento. Na aula passada... Comunicação entre processos (-- O jantar dos filósofos --)

Sistemas Operacionais Escalonamento. Carlos Ferraz Jorge Cavalcanti Fonsêca

Fundamentos de Sistemas Operacionais

Sistemas Operacionais Aula 7

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

Fundamentos de Sistemas Operacionais

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

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:

Aula 10: Escalonamento da CPU

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

Escalonamento no Unix. Sistemas Operacionais

SEM 544 Desenvolvimento de Produtos Mecatrônicos

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

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

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

Temporização (Scheduling) de Processos

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

Questões de Múltipla escolha

Escalonamento de Processos

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

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

Fundamentos de Sistemas Operacionais

Escalonamento de Tarefas

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

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

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

Escalonamento no Unix. Sistemas Operacionais

Escalonamento no Unix. Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais

Davidson Rodrigo Boccardo

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

Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Primeira Lista de Exercícios

Sistemas Operacionais. Processos e Threads

4 Políticas de Comunicação

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS

Sistemas Operativos. Um conjunto de rotinas de software que. virtualizando-o. diversos como o sistema de ficheiros e.

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

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

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

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

Processos. Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa. Fernando Ramos, Nuno Neves, Sistemas Operativos,

Gerência de Recursos. Gerência do Processador

Transcrição:

GSI018 Sistemas Operacionais 05/09/2016 Escalonamento de Processos Na Aula Anterior... Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Utilização de Processos em C e Linux; Visualizando Processos; Iniciando Novos Processos; Substituindo o Código de um Processo; Duplicando o Código de um Processo; Esperando por um Processo; Processos Zumbis; Redireção de Entrada e Saída. 2 Nesta Aula Escalonamento Ciclos de CPU e E/S; Conceitos de Preempção; Algoritmos de Escalonamento; FCFS First Come First Served; ; Round-Robin; Escalonamento por Prioridade; Filas Multinível. É uma necessidade, decorrente principalmente devido a multiprogramação; Há a possibilidade de dois ou mais processos estarem no estado PRONTO; Módulo do SO ESCALONADOR Algoritmo Algoritmo de Escalonamento Vários tipos; Depende do que se deseja privilegiar! 3 4 Historicamente... Sistemas em Lote Algoritmo Simples Execute o próximo processo na fila Sistemas monotarefa/monousuário (DOS) Algoritmo Simples Terminal/SO Comportamento de um Processo Processos podem ser classificados quanto ao seu comportamento; Utilizam mais CPU ou mais E/S; O Comportamento do processo também pode ser influenciado pelo Sistema Computacional em que ele executa; termina execute CPU 1 Dominado pela CPU (CPU Bound) t Programa X Complexidade do Escalonador decorre da multitarefa e multiusuário! Computadores de Grande Porte Ambos Lote e Multitarefa Escalonador Complexo! 5 CPU 2 Fatia de tempo (quantum) Dominado pela E/S (I/O Bound) t 6 1

Comportamento de um Processo CPU é um recurso escasso (depende do contexto); Um bom escalonador pode impactar consideravelmente o desempenho do Sistema Computacional; Computadores Pessoais Duas Modificações: Apenas um programa em primeiro plano ; CPUs atualmente são muitíssimo rápidas, deixando assim de ser um recurso escasso; Sistemas iterativos! Escalonador deve levar tais fatos em consideração! Servidores Novamente, Escalonador muitíssimo importante! O Custo do Chaveamento de Processos Chavear processos é muito caro! 1. Modo Usuário Modo Kernel; 2. Salvar o estado do processo no seu PCB; 3. Executar o algoritmo de Escalonamento; 4. Carregar o estado do processo selecionado; 5. Modo Kernel Modo Usuário. Adicionalmente... (prov. a parte mais cara) Páginas Virtuais Invalidadas Cache invalidada (duas vezes!) 7 8 Comportamento de um Processo Tendência Geral Quanto mais rápida a CPU maior a tendência dos processos serem I/O Bound; Dois pontos interessantes: 1. Que processo executar (pai ou filho) após a criação de um novo processo? 2. Ao término de um processo, o escalonador deve escolher outro processo para ser executado. O que ocorre se não há processos prontos para serem executados? Tipos de Algoritmos de Escalonamento Podem ser organizados como: Preemptivos; Não-Preemptivos; Podem ser categorizados como: Algoritmos para sistemas em Lote; Algoritmos para sistemas iterativos; Algoritmos para sistemas de tempo real; Algoritmos híbridos. 9 10 Algoritmos Não-Preemptivos Escolhe um processo e o deixa executar até que uma das seguintes três condições ocorram: Requeira E/S e deva ser bloqueado; Seja bloqueado pois está a espera de outro processo; Voluntariamente, libera a CPU para o escalonador; Implementação relativamente simples; Uma boa opção para sistemas de grande porte que devem implementar tanto o sistema em lotes quanto a multitarefa/multiusuário; Algoritmos Preemptivos Escolhe um processo e o deixa em execução por um tempo máximo especificado; Ao final de um período de tempo pré-estabelecido (quanta), se o processo ainda estiver em execução, ele será substituído por outro dos processos que estão prontos esperando para executar; Requer que uma interrupção de relógio seja gerada em intervalos regulares; Definir qual o intervalo (quanta) ótimo para um sistema é uma tarefa complexa; Quanta curto muita troca de contexto; Quanta longo diminui a capacidade de resposta (iteratividade) do sistema 11 12 2

Objetivos dos Algoritmos de Escalonamento Todos os Sistemas: Justiça cada processo recebe uma porção justa da CPU; Política verificar se a política estabelecida é cumprida; Equilíbrio manter ocupada, na medida do possível, todas as partes do sistema; Sistemas em Lote: Vazão (throughput) maximizar o número de tarefas por unidade de tempo; Tempo de Retorno minimizar o tempo entre submissão e término de processos; Utilização da CPU manter a CPU ocupada o tempo todo; Objetivos dos Algoritmos de Escalonamento Sistemas Iterativos: Tempo de Resposta responder rapidamente às requisições; Proporcionalidade satisfazer as expectativas dos usuários; Sistemas de Tempo Real: Cumprimento de Prazos evitar a perda de dados; Previsibilidade evitar a degradação da qualidade em sistemas multimídia; 13 14 FCFS First Come First Served Sistemas em Lote; Primeiro a chegar é o primeiro a ser servido; Provavelmente o primeiro e mais simples algoritmo de escalonamento; CPU é atribuída aos processos na ordem em que eles a requisitam; Processo monopoliza a CPU pelo tempo que ele requerer ou até que o programa requisite uma operação de E/S; Basicamente uma fila única de processos prontos; Requisições de E/S colocam o processo em estado bloqueado. Processos quando são desbloqueados voltam para o final da fila; FCFS First Come First Served Fácil de entender e programar; Algoritmo justo; Desvantagens: Não é adequado para processos I/O Bound; Não é adequado para sistemas iterativos; 15 16 FCFS First Come First Served Novo processo Retorno de E/S último Fila de Processos Prontos Requisição de E/S primeiro Término Processo Na CPU Tarefa mais curta primeiro; Sistemas em Lote; Utiliza a mesma lista encadeada do FCFS; Requer uma rotina que percorra toda a lista de processos prontos a procura daquele com o menor tempo estimado de processamento; Em alguns casos o tempo que um processo demorará é conhecido ou pode ser estimado; Só é aplicável quando todos os processos estão disponíveis simultaneamente (lista de prontos); 17 18 3

B(4) D(4) B(4) D(4) TR = 8 TR = 12 TR = 16 TMR = 56/4 = 14 TR = 4 TR = 8 TR = 12 TMR = 44/4 = 11 19 O que acontece quando processos são inseridos na lista de prontos em tempos distintos? t=10 t=10 TR = 14 TR = 16 TMR = 56/4 = 14 TR = 24 TR = 16 TR = 2 TMR = 48/4 = 12 20 O que acontece quando processos são inseridos na lista de prontos em tempos distintos? t=3 t=10 t=16 TR = 12 TR = 2 TR = 18 TR = 24 TMR = 68/4 = 17 TMR = 44/4 = 10 21 Shortest Remaining Time Next - SRTN Próximo Menor Tempo Restante Variação preemptiva do escalonamento por prioridade; Requer que o tempo de execução seja conhecido a priori; A preempção acontece apenas quando um processo pronto tem tempo restante menor que o processo atual; 22 Shortest Remaining Time Next - SRTN O que acontece quando processos são inseridos na lista de prontos em tempos distintos? t=9 TR = 15 TR = 11 TMR = 52/4 = 13 Round-Robin Escalonamento preemptivo; Um dos algoritmos mais antigos, simples e justos; Amplamente utilizado; Implementação simples, lista circular; A cada processo é atribuído uma fatia de tempo quantum; Um processo executa até que: Tenha executado por um tempo igual ao quantum; Requeira E/S ou outro tipo de interrupção do processador; 23 24 4

Round-Robin Round-Robin Requisição de E/S Proc. Atual Prox. Proc. A B C D E F B C D E F C D E F Final do quantum A A B Chaveamento De contexto Em sua realização mais simples todos os processos recebem o mesmo quantum; Definir a duração do quantum pode ser problemático; Quantum muito longo diminui a resposta do sistema; Quantum muito curto implica em alto custo de chaveamento entre processos; Na prática, valores de quantum entre 20 e 50ms são utilizados; Lista de processos 25 26 Escalonamento por Prioridades Escalonamento preemptivo; Desdobramento do escalonamento circular; Baseado na ideia de que processos não são igualmente importantes para o sistema e/ou usuário; O próximo processo a ser escolhido respeita a ordem de prioridades; Pode ser implementado via uma fila de prioridades; Atribui um número (prioridade) a cada processo; Prioridade pode ser alterada estática ou dinâmicamente; Escalonamento por Prioridades Várias formas de ajustar dinâmicamente a prioridade: a) Utilização de quatum especialização do Round- Robin; b) A cada interrupção do relógio a prioridade é decrementada; Verifica-se se há algum processo na lista de prontos com prioridade menor que o processo atual; c) Decrementa-se a prioridade de um processo quando ele executa durante todo o quantum e incrementa-se a prioridade de processos que bloqueiam antes de terminar o quantum (I/O Bound); 27 28 Filas Multinível Chaveamento de processos é caro! Uma forma de aliviar o custo associado a preempção é executar diferentes processos por diferentes quantidades de tempo; No escalonamento por filas multinível, um processo pode ser agendado para execução em diferentes filas de execução: Um processo é escolhido para execução sempre do nível mais alto; Caso não hajam processos no nível mais alto, o nível subsequente é utilizado e assim sucessivamente; Quando um processo executa durante todos os quanta a ele destinados (por sua altura de prioridade nas filas) ele é movido para o nível imediatamente menos prioritário; Se um processo bloqueia antes de terminar o seu quanta ele é movido para o nível imediatamente mais prioritário; 2 0 quantum 2 1 quanta 2 2 quanta 2 n-1 quanta 29 30 Processos executáveis (Prioridade mais baixa) (Prioridade mais alta) 5

Shortest Process Next Escalonamento Garantido Shortest Job First sempre resulta no menor tempo médio; Como adaptá-lo para preempção? O problema é sabem o quanto demora cada programa; Solução: Estimar o tempo de execução com base no histórico; E = at 0 +(1-a)T 1 ; Qual o efeito de um a grande ou pequeno? Qual a faixa de valores válidos para a? Ex: a = ½ T 0 ; T 0 /2 + T 1 /2; T 0 /4 + T 1 /4+T 2 /2; T 0 /8 + T 1 /8+T 2 /4+T 3 /2... Geralmente utilizado para dividir a atenção da CPU em sistemas multiusuário; Uma garantia simples de cumprir seria por exemplo: Caso hajam N usuários conectados no sistema, a CPU será dividida entre os N usuários iqualitáriamente resultado em 1/N - OH tempo de CPU para os processos de cada usuário; OH refere-se ao custo de chaveamento, tempo transcorrido executando o escalonador de processos pelo sistema operacional; 31 32 Escalonamento Garantido Para fazer valer esta garantia o escalonador tem que manter um controle de quanto tempo já foi gasto pela CPU nos processos de um dado usuário; Difícil de implementar; Deve manter um controle detalhado não apenas do número de usuários e número de processos por usuário como também do tempo decorrido em cada processo; A criação e/ou destruição de um processo assim como a autenticação/saída de um usuário demanda que toda a estrutura seja reformulada; Escalonamento por Loteria Biblites são atribuídos a cada processo; Cada bilhete dá direito ao acesso a um tipo de recurso do computador; Randomicamente um bilhete é sorteado; O processo detentor do biblhete recebe acesso ao recurso em questão; 50 sorteios por segundo significa preempção a cada 20 ms; Caso o mesmo processo seja sorteado duas vezes não há necessidade de troca de contexto; Prioridade pode ser implementada conferindo mais bilhetes ao mesmo processo 33 34 Escalonamento por Fração Justa Se considerarmos apenas os processos e não os usuários uma situação um injusta pode ocorrer; usuário A 10 processos; usuário B 1 processo; usuário A 90% do tempo de CPU, usuário B 10%; A cada usuário é dado uma parcela do tempo da CPU; Varia com o número de usuários autenticados; Um processo só é escalonado caso ele pertença a um usuário ainda com tempo de CPU para utilizar; 35 Bibliografia - Básica 3ª Edição Páginas 87-97 36 6

Bibliografia - Básica 7ª edição Páginas 85-90 Bibliografia - Adicional Páginas 258-275 37 38 7