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

Documentos relacionados
Sistemas Operativos: Escalonamento de Processos

Sistemas Operativos: Implementação de Processos

Sistemas Operativos: Implementação de Processos

Sumário. Sistemas Operativos: Escalonamento de Processos e Deadlocks. Padrão de Execução dum Processo. Multiprocessamento

Processos. Escalonamento de Processos

Escalonamento da CPU

Escalonamento da CPU

Processos. Escalonamento de Processos

Sistemas Operacionais. Prof. André Y. Kusumoto

Escalonamento de Processos Estratégias de Escalonamento de Processos

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

Estratégias de Escalonamento de Processos

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

Sistemas Operacionais. 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.

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

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

Sistemas Operacionais

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

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

Sistemas Operacionais

Temporização (Scheduling) de Processos

SOP - TADS Escalonamento de Processos

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

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

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

Escalonamento de processos

Questões de Provas de Períodos Anteriores

Sistemas Operacionais

Escalonamento do CPU

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

Infra-Estrutura de Software. Escalonamento

Escalonamento no Unix. Sistemas Operacionais

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

Sistemas Operacionais Gerenciamento de Processos

Algoritmos de escalonamento

Sistemas Operacionais. Gerência de Processador

Sistemas de Computação. Processos e escalonamento

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

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

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Escalonamento de Processos Uniprocessador

Escalonamento no Unix. Sistemas Operacionais

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

Sistemas de Informação. Sistemas Operacionais

Aula 10: Escalonamento da CPU

Escalonamento no Unix. Sistemas Operacionais

Sistemas Operacionais. Escalonamento de Processos

Davidson Rodrigo Boccardo

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

SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (

Sistemas Operacionais Aula 7

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

Resumo: Sistemas Operacionais Abertos

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

Escalonamento de Processos

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

Gerência de Recursos. Gerência do Processador

Fundamentos de Sistemas Operacionais

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

SSC0640 Sistemas Operacionais I

Sistemas Operacionais de Tempo Real. Sérgio Campos

Sistemas Operacionais

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

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 2. Gerência de Processos

Sistemas Operacionais

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

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

Escalonamento de Tarefas

Sistemas Operacionais Escalonamento. Carlos Ferraz Jorge Cavalcanti Fonsêca

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

Sistemas Operacionais: Escalonamento de processos

Sistemas Operacionais

Sistemas Operativos 5ª parte - Escalonamento do CPU

Arquitetura de Sistemas Operativos

Introdução aos Sistemas Operacionais. Threads

Sistemas Operacionais

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

Sistemas Operacionais

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

Escalonamento no Unix. Sistemas Operacionais

Escalonamento no Unix

Sistemas Operacionais

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

Sistemas de Tempo-Real

Sistemas Operacionais

Sistemas Operativos. Escalonamento e sincronização. Rui Maranhão

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

Escalonamento de Processos

Capítulo 4 Gerência de Processador

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

Escalonamento. Pedro Cruz. EEL770 Sistemas Operacionais

Conceito de Processo. Estados de Processos. Diagrama de Estados de Processos

Conceitos básicos de Tempo Real

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

Transcrição:

Sumário Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. 1 Padrão de Execução dum Processo Processos (e threads) alternam: execução de instruções; realização de operações de entrada/saída. De acordo com a duração dos intervalos de execução de instruções, um processo pode ser classificado em CPU-bound (a) ou IO-bound (b) (a) Long CPU burst Short CPU burst Waiting for I/O (b) Time 2

Multiprocessamento A generalidade dos SOs é multiprocesso: enquanto um, ou mais processos realizam operações de entrada/saída; outro processo pode executar instruções. Obtém-se uma maior utilização dos recursos dum computador. 3 Sumário Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. 4

Escalonamento de Processos Problema: quando há mais de um processo em condições de execução (estado ready), qual o processo a executar? running 1 ready 4 2 3 waiting Solução: o SO, mais precisamente o scheduler, executa um algoritmo de escalonamento para decidir. I.e., o escalonador determina a que processo deve ser atribuído o CPU. 5 Escalonamento Preemptivo vs. Não-preemptivo Um algoritmo de escalonamento diz-se não-preemptivo, se, uma vez na posse do CPU, um processo executa até o (ao CPU) libertar voluntariamente. Quase todos os algoritmos de escalonamento têm duas versões: uma preemptiva outra não. Algoritmos não-preemptivos têm problemas graves: certas classes de processos executam durante muito tempo até bloquear; um utilizador egoísta pode impedir que o computador execute processos de outros utilizadores. Praticamente todos os sistemas operativos usam algoritmos preemptivos: O SO usa as interrupções do relógio para retirar o CPU ao processo em execução. 6

Critérios para um Bom Algoritmo de Escalonamento Equidade: dar oportunidade a todos os processos para progredir. Equilíbrio: na utilização dos recursos. Satisfação da política escolhida: Sistemas interactivos: tempo de resposta; previsibilidade. Sistemas de tempo-real: cumprir prazos; determinismo. Sistemas não-interactivos: débito; utilização do CPU. 7 Algoritmo Round-Robin Quando um processo passa para o estado de execução, o SO atribui-lhe a posse do CPU por um intervalo de tempo fixo: quantum. A comutação de processos realiza-se: ou quando o processo em execução bloquear; ou quando o quantum expirar. Qual o valor dum quantum? compromisso tempo-de-resposta/utilização-do-cpu: a comutação de processos leva algum tempo; Unix/Linux usa um valor de ms, que se mantém inalterado há mais de 20 anos!!! Algumas vantagens deste algoritmo são: fácil de implementar (como?); equitável (mais uma característica). 8

Escalonamento Baseado em Prioridades Problema por vezes, alguns processos são mais iguais do que os outros. Solução atribuir uma prioridade a cada processo. Quando da comutação de processos, o processo pronto a executar com maior prioridade passa para o estado de execução. As prioridades podem ser atribuídas estática ou dinamicamente. Potencial problema: inanição (starvation): Os processos de mais baixa prioridade podem nunca ser seleccionados para executar. 9 Escalonamento em BSD-Unix Cada processo tem uma prioridade. Processos são agrupados em classes com base na sua prioridade: o escalonamento entre classes é baseado em prioridades; o escalonamento numa classe usa round-robin. q headers prior. 4 prior. 3 prior. 2 prior. 1 Para evitar inanição de processos de prioridade mais baixa: sempre que um processo executa até ao fim do seu quantum, a sua prioridade diminui. 10

Lottery Scheduling É um algoritmo probabilístico: atribuir um conjunto de bilhetes numerados a cada processo; gerar um número aleatório; o processo que tiver o número sorteado, é aquele a que é atribuido o CPU. Extremamente simples, e permite alocar o CPU duma forma previsível, em termos probabílisticos. Um processo que está à espera de outro, pode passar-lhe os seus bilhetes.? Particularmente útil para aplicações multimédia, que têm requisitos de CPU bem determinados (p.ex., a voz tem que ser amostrada com uma determinada frequência...) 11 Rate-monotonic Scheduling Assume processos periódicos, cada um deles: de período igual ao prazo (deadline); com um tempo de execução. É de facto um algoritmo de atribuição de prioridades estáticas: quanto mais curto é período maior é a prioridade. Tem propriedades matemáticas que o tornam apropriado para sistemas hard real-time. O algoritmo original (1973) impôe sérias restrições, mas desenvolveram-se técnicas que permitem ultrapassar a maioria delas. 12

Shortest Job First (Batch Processing) Pressupõe que o tempo de execução de cada processo é conhecido a priori; se todos os processos estiverem prontos a executar na mesma altura, então este algoritmo assegura o máximo turnaround, i.e. o mínimo tempo médio para terminar um processo: sejam 4 processos com tempos de execução:,, e, executados por essa ordem; então o tempo médio para terminá-los será: o qual é mínimo se 13 Mecanismos vs. Políticas Observação: Não é possível agradar a gregos e a troianos. : O SO não conhece as necessidades das aplicações suficientemente para tomar as decisões mais apropriadas. Ideia: oferecer os utensílios e permitir que os seus utilizadores os usem da maneira que acharem conveniente. O SO oferece os mecanismos: algoritmos de escalonamento parametrizáveis. Os processos seleccionam as políticas: i.e. o algoritmo e os valores dos seus parâmetros. 14

Escalonamento em POSIX (Linux) POSIX define 3 políticas de escalonamento: SCHED FIFO preemptivo, baseado em prioridades estáticas; SCHED RR semelhante a SCHED FIFO mas com quanta; SCHED OTHER algoritmo não especificado, i.e. dependente da implementação. O escalonador é baseado em prioridades. A política de escalonamento especifica: quando os processos passam do estado run para o estado ready; onde é que são inseridos na ready-list de processos com a mesma prioridade. 15 Escalonamento em POSIX (Linux) (cont) SCHED FIFO e SCHED RR foram especificados para aplicações de tempo-real. A sua prioridade é sempre superior à de processos com política SCHED OTHER. Em Linux, SCHED OTHER é um algoritmo semelhante ao de BSD-Unix, embora os pormenores sejam ligeiramente diferentes. (Para mais informação veja man 2 sched setscheduler.) Estas políticas de escalonamento podem também ser atribuídas a threads através de funções de libpthread: int pthread_setschedparam(pthread_t tid, int policy, struct sched_param *param): 16

Sumário Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. 17 Order in which threads run Escalonamento de Threads User-level vs. kernel-level Process A Process B Process A Process B 2. Runtime system picks a thread 1 2 3 1 3 2 1. Kernel picks a process 1. Kernel picks a thread Possible: A1, A2, A3, A1, A2, A3 Not possible: A1, B1, A2, B2, A3, B3 (a) Quantum de cada processo de 50 ms. Cada thread executa em bursts de 5 ms. 18 Possible: A1, A2, A3, A1, A2, A3 Also possible: A1, B1, A2, B2, A3, B3 (b)

Modos de Partilha do CPU em libpthread libpthread suporta 2 modos da partilha do CPU: PTHREAD SCOPE PROCESS threads disputam o CPU apenas com outros threads do processo em execução: user-level threads implica este modo de escalonamento. PTHREAD SCOPE SYSTEM threads disputam o CPU com todos os threads no sistema impossível de implementar com user-level threads: SO não conhece todos os threads em execução; modo natural quando se usa kernel-level threads. Note-se que este atributo pode ser configurado por cada thread, usando pthread attr setscope(). Linux suporta apenas PTHREAD SCOPE SYSTEM. 19