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

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

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. Escalonamento de processos

Escalonamento do CPU

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

Sistemas Operacionais

Davidson Rodrigo Boccardo

Escalonamento de Processos Uniprocessador

Temporização (Scheduling) de Processos

Escalonamento de Processos

Sistemas Operacionais. Gerência de Processador

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

SOP - TADS Escalonamento de Processos

Questões de Provas de Períodos Anteriores

Infra-Estrutura de Software. Escalonamento

Escalonamento da CPU

Escalonamento da CPU

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais Gerenciamento de Processos

Algoritmos de escalonamento

Sistemas Operacionais

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

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

Gerência de Recursos. Gerência do Processador

Sistemas Operacionais

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

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:

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

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

Sistemas Operacionais: Escalonamento de processos

Sistemas Operacionais

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

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

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

Sistemas de Computação. Processos e escalonamento

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

Fundamentos de Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais

Gestor de Processos. Gestor de Processos

Aula 10: Escalonamento da CPU

SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (

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

Sistemas Operacionais. Escalonamento de Processos

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

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

Sistemas Operacionais

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

Fundamentos de Sistemas Operacionais

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

Escalonamento de Processos

Sistemas Operacionais Aula 7

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

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operativos: Implementação de Processos

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

Sistemas Operativos: Escalonamento de Processos

Sistemas Operativos: Implementação de Processos

Sistemas Operacionais Escalonamento. Carlos Ferraz Jorge Cavalcanti Fonsêca

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

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

Escalonamento de Processos Estratégias de Escalonamento de Processos

Estratégias de Escalonamento 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

SSC0640 Sistemas Operacionais I

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

Escalonamento de processos

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

Sistemas Operacionais

Escalonamento no Unix. Sistemas Operacionais

Fundamentos de Sistemas Operacionais

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

6 ESCALONAMENTO DE CPU

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS

Escalonamento de Processos

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

Davidson Rodrigo Boccardo

Escalonamento no Unix. Sistemas Operacionais

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

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

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

Escalonamento no Unix. Sistemas Operacionais

4 Políticas de Comunicação

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

Escalonamento de Tarefas

Sistemas de Tempo-Real

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

Sistemas Operacionais

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

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

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

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

SEM 544 Desenvolvimento de Produtos Mecatrônicos

Transcrição:

Escalonamento de Processos Estratégia de atribuição do Processador aos Processos 1. Introdução 2. Políticas de Escalonamento 3. Critérios para um bom escalonador 4. Caracterização dos escalonadores 5. Algoritmos de Escalonamento Admit Dispatch Release New Ready Running Exit Timeout Event Occurs Event Wait Blocked O Termo escalonamento (Scheduling) identifica o procedimento de ordenar tarefas na fila de Pronto. O escalonador ( Scheduler ) é o componente do sistema responsável em tempo de execução pela gestão do processador Quando mais de um processo é executável, o Sistema Operativo deve decidir qual será executado primeiro. A parte do Sistema Operativo dedicada a esta decisão é chamada escalonador (scheduler) e o algoritmo utilizado é chamado algoritmo de escalonamento (scheduling algorithm). In: Tanenbaum 1

Objectivos: 1. Utilização intensiva do Processador: Maximizar a utilização do processador sem descurar o estado dos restantes componentes do sistema (memória, periféricos, etc.) 2. Taxa de saída alta: Maximizar o número de processos completados por unidade de tempo 3. Tempo de resposta baixo: Minimizar o intervalo de tempo entre um pedido de um processo e o início da sua satisfação Time-slice: Intervalo de tempo máximo que é atribuído a um processo Prioridade: Representa a importância do processo no algoritmo de atribuição do processador Preempção: Retira o processador ao processo em execução sempre que um processo mais prioritário fica executável Preempção (Preemption) o que é? Acção de retirar o processador a um processo em execução devido à existência de outro mais prioritário! objectivo: permite que os processos mais prioritários reajam rapidamente a um dado acontecimento (reactividade aos acontecimentos externos) custo: associado à mudança de contexto (ex.: um processo só é retirado de execução depois de ter usado o processador durante um tempo mínimo) 2

Políticas de Escalonamento o que é? Políticas de escalonamento definem critérios ou regras para a ordenação das tarefas! As políticas não podem ter em conta apenas o uso do processador; é necessário ter em conta outros recursos (ex.: memória). O problema é que a própria função de escalonamento consome recursos Políticas para ambientes de tempo partilhado interactivos 1. Tempo de execução partilhado tempo de execução contínua limitado a um quantum (time-slice) lista de processos executáveis é gerida em round-robin pode conduzir a tempos de resposta elevados em situações de muita carga 2. Preempção: primazia ao processo mais prioritário indispensável em sistemas de tempo real despacho é chamado na sequência de todas as acções susceptíveis de modificarem os estado dos processos 3. Multilista: usado em sistemas mistos de tempo partilhado (gestão circular) e tratamento por lotes (gestão baseada na menor duração do trabalho) utilização de várias listas consoante o tipo de processos em execução (fundamentalmente segundo o nível de interactividade) despacho escolhe sempre um processo da lista mais prioritária 4. Prioridades dinâmicas: ajuste da prioridade de acordo com o consumo de recursos (fundamentalmente tempo de CPU) processos apenas numa lista que é ordenada em função das prioridades 3

5. Quantum variável adaptar o valor do quantum ao comportamento dos processos aumentar o valor do quantum quando o sistema está muito carregado (limitar o custo dos context-switch e aumentar a probabilidade do processo terminar) complexidade acrescida no sistema operativo Critérios para um bom escalonador A qualidade do serviço oferecido por um algoritmo de escalonamento pode ser avaliada por meio de um critério simples:o tempo de permanência (tp ) t permanência permanência = t espera + t serviço t p = t e + t s De um modo geral, deseja-se que o tempo de permanência seja o menor possível Uma outra forma de avaliar o escalonamento é utilizando o tempo de permanência normalizado (tpn): t pn = t t p s = t e + t t s s Se a espera for zero (melhor situação possível, pois indica que o processo ao chegar logo foi atendido), ter-se-á que o tempo de permanência normalizado de um processo será 1 4

Escalonadores: 1. Orientados para o utilizador Tempo de permanência (turnaround time): tempo total que o processo permanece no sistema. Tempo de espera (waiting time): Tempo total de permanência no estado Ready. Tempo de resposta: Tempo entre a submissão e a primeira execução Tempo de permanência normalizado: Razão entre o tempo de permanência e o tempo de serviço do processo (tempo total - tempo de espera) Escalonadores: 2. Orientados para o Sistema Utilização do processador: percentagem do tempo em que o CPU está Ocupado Taxa de saída (throughput): número de processos completados por unidade de Tempo Qualquer bom escalonador deve: maximizar a utilização do CPU e a taxa de saída minimizar os tempos de permanência, de espera e de resposta Caracterização dos escalonadores Duas partes: a função de selecção, e o modo de decisão 1. Função de selecção Determina qual o processo que passará a ser o próximo a executar de entre os que se encontram na fila de prontos 2. Modo de decisão Especifica os instantes nos quais se utiliza a função de selecção Dois tipos: não-preemptivos e preemptivos 5

a) Não-preemptivos: Quando um processo passa ao estado de execução, permanece aí até que termine ou faça um pedido de uma operação de I/O (passando ao estado de bloqueado) b) Preemptivos: Os processos que estão em execução podem ser interrompidos e colocados no estado de ready pelo SO Permite um melhor serviço, uma vez que se impede que algum processo monopolize o processador Algoritmos de Escalonamento Os algoritmos podem ser preemptivos ou não preemptivos quando em qualquer momento tarefas se executando podem ou não, respectivamente, ser interrompidas por outras mais prioritárias Algoritmos: FCFS: First come first served SPN: Shortest process next SRT: Shortest remaining time next Prioridades RR: Round robin MLFQ: Multilevel feedback queue 1. FCFS: First come first served (FIFO first in, first out) Fila de Prontos C B A CPU Finalização O escalonamento FIFO é um algoritmo não preemptivo. Função de selecção: Os processos são colocados na fila dos prontos pela ordem de chegada. É sempre escolhido o que está há mais tempo à espera 6

Modo de decisão: não - preemptivo Cada processo executa até fazer um pedido de I/O (ou terminar) Vantagens: muito simples de implementer Desvantagens: Um processo que não execute operações de I/O pode monopolizar o processador 2. SPN: Shortest process next (SJF shortest Job First) O SJF (Shortest Job First Menor Job Primeiro) é uma variante do FIFO onde os processos em espera pelo processador são organizados em uma fila segundo seu tempo de serviço (ts), sendo colocados à frente os menores jobs. Função de selecção: Escolhe-se (ou coloca-se no início da fila) o processo que tem o menor valor esperado do tempo do próximo CPU-burst Modo de decisão: Não - preemptivo 3. SRT: Shortest remaining time next Versão preemptiva do algoritmo anterior A escolha é feita sempre que um processo abandona o CPU ou sempre que chega à fila de ready um processo Escolhe-se sempre para execução aquele a que faltar um menor tempo para completar o CPU-burst corrente Além das estimativas do próximo CPU-burst é necessário guardar o tempo de CPU já gasto no CPU-burst corrente (sempre que há preempção) Não há perigo de um processo monopolizar o processador Ainda há a possibilidade de inanição dos processos CPU-bound 7

3. SRT: Shortest remaining time next Fila de Prontos C A B CPU Finalização 4. Escalonamento Baseado em Prioridades Definem-se geralmente vários níveis de prioridade e associase uma fila a cada nível É sempre escolhido o processo com maior prioridade Existem esquemas preemptivos e não preemptivos É possível a inanição dos processos de menor prioridade Para solucionar a possível inanição dos processos de prioridade mais baixa: aumentar gradualmente a sua prioridade função do tempo de espera! 4. Escalonamento Baseado em Prioridades Definição de prioridades: limites de tempo necessidades de memória nr. de ficheiros abertos função do I/O-operation e/ou CPU-burst médios importância do processo importância do utilizador 8

5. RR: Round robin Os processos também são organizados numa fila segundo a ordem de chegada e então são seleccionados para execução pelo processsador Ao invés de serem executados até o final, a cada processo é concedido apenas um intervalo de tempo, quantum de tempo ou quantum Caso o processo não seja finalizado neste intervalo de tempo, ocorre sua substituição pelo próximo processo na fila de processos prontos, sendo o processo interrompido colocado no final da fila. Isto significa que, ao final da fatia de tempo do processo, ocorre a preempção O escalonamento Round Robin se baseia na utilização de temporizadores, sendo um algoritmo preemptivo e bastante adequado para ambientes interactivos 5. RR: Round robin Fila de Prontos A C B A CPU Finalização Função de selecção: a mesma do esquema FCFS Modo de decisão: preemptivo Um processo permanece no estado de execução até efectuar uma operação de I/O, ou terminar (como sempre) ou até que haja uma interrupção efectuada periodicamente por um contador (definindo um quantum de tempo) Selecção do quantum de tempo para RR Deve ser substancialmente maior do que o tempo necessário para efectuar uma troca de processos no processador Deve ser algo maior do que os CPU-bursts típicos, mas não muito maior Os processos I/O bound devem correr os seus CPU-bursts num único quantum sob pena de poderem ser muito penalizados 9

6. MLFQ: Multilevel feedback queue O escalonamento MLFQ (Multilevel Feedback Queues Filas Multinível Realimentadas) é um interessante esquema de escalonamento baseado em várias filas encadeadas. Esquema preemptivo com prioridades dinâmicas. A fila ready é dividida em várias sub-filas com prioridades decrescentes. Os novos processos são admitidos na mais alta prioridade. Sempre que um processo atinge o seu quantum (em vez de bloquear) passa para a fila de prioridade inferior; quando regressa de um bloqueio mantém-se na mesma fila. 6. MLFQ: Multilevel feedback queue Os processos I/O bound permanecem nas filas de maior prioridade Os processos CPU-bound vão descendo de prioridade O escalonador escolhe sempre processos da maior prioridade Usa-se RR em cada fila Os processos longos podem sofrer de inanição Sumário algoritmos de escalonamento têm um grande impacto no "overhead" do sistema, na sua eficiência e no tempo de resposta de processos interativos. os melhores algoritmos de escalonamento tendem a dar maior prioridade aos processos que utilizam menos recursos 10

Padrão de Execução dum Processo Processos alternam: execucçã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 ou IO-bound Padrão de Execução dum Processo Exemplo: 1. Supondo que os seguintes processos ( P A : 8ms P B : 12ms P C : 4ms) chegam na mesma ordem dada e com os tempos de execução indicados, a ordem de execução dos mesmos de acordo com os algorítimos abaixo indicados seria: a. FCFS: PA PB PC b. SJF: PC PA PB c. STR: PB PA PC d. SPN: PC PA PB 11

Scheduling Seja o caso de quatro processos A, B, C e D com tempos de serviço distintos, 3, 35, 12 e 4 segundos respectivamente, os quais são escalonados conforme a sua chegada pelo S.O. A tabela seguinte mostra os valores dos parâmetros desta situação considerando o escalonamento FIFO. Complete-a. Processo Tempo chegada ts te tp tpn A 0 B 1 C 2 D 3 Seja o mesmo caso usado para o escalonamento FIFO, onde quatro processos A, B, C e D com tempos de processamento distintos, respectivamente 3, 35, 12 e 4 segundos, são escalonados conforme o algorítmo SJF Shortest Job First. Complete a tabela Processo Tempo de chegada A 0 D 3 C 2 B 1 ts te tp tpn O que entendes por um sistema multi-utilizador? Ao longo de sua existência os processos passam por diversos estados. Diga que estados são esses. 12