Infra-Estrutura de Software. Escalonamento

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

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

Sistemas Operacionais Escalonamento. Carlos Ferraz Jorge Cavalcanti Fonsêca

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 de Computação. Processos e escalonamento

Processos. Escalonamento de Processos

Sistemas Operacionais

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

Sistemas Operacionais

Processos. Escalonamento de Processos

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

SOP - TADS Escalonamento de Processos

Escalonamento de Processos Uniprocessador

Sistemas Operacionais

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

Sistemas Operacionais

Sistemas Operacionais. Escalonamento de Processos

Sistemas Operacionais. Gerência de Processador

SSC0640 Sistemas Operacionais I

Escalonamento de Processos

Algoritmos de escalonamento

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

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

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

Sistemas Operacionais

Sistemas Operacionais Gerenciamento de Processos

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

SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (

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

Davidson Rodrigo Boccardo

Sistemas Operacionais. Prof. André Y. Kusumoto

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:

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

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

Sistemas Operacionais I

Escalonamento da CPU

Escalonamento da CPU

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

6 ESCALONAMENTO DE CPU

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

Infra-Estrutura de Software. Sistemas Operacionais Revisão

Estratégias de Escalonamento de Processos

Escalonamento de Processos Estratégias de Escalonamento de Processos

Sistemas Operacionais I

Davidson Rodrigo Boccardo

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

Prof. Kleber R. Rovai

Sistemas Operacionais

Sistemas Operacionais. Conceito de Processos

Sistemas Operacionais: Escalonamento de processos

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

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais Aula 7

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Sistemas Operacionais. Processos IC - UFF

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

Escalonamento de Processos

Questões de Provas de Períodos Anteriores

Sistemas Operacionais

Questões de Múltipla escolha

Gerência de Recursos. Gerência do Processador

Escalonamento de Processos

Programação de Sistemas em Tempo Real

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

SEM 544 Desenvolvimento de Produtos Mecatrônicos

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

Escalonamento no Unix. Sistemas Operacionais

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

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

Escalonamento de processos

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

Temporização (Scheduling) de Processos

Sistemas de Informação. Sistemas Operacionais

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

PROCESSOS. Sistemas Operacionais. Vinícius Pádua

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

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

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

ENADE 2011 SISTEMAS OPERACIONAIS

Aula 04. Capítulo 3 Gerência de Processos. 3.1 Conceito de Processo. 3.2 Escalonamento de Processos. 3.3 Opera ões sobre Processos

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

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

Escalonamento no Unix. Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Sistemas Operacionais. Introdução

Sistemas Operacionais

Escalonamento. Pedro Cruz. EEL770 Sistemas Operacionais

Montagem e Manutenção

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

Sistemas Operacionais

Transcrição:

Infra-Estrutura de Software Escalonamento

Processos Concorrentes O Modelo de Multiprogramação Multiprogramação de quatro programas Modelo conceitual de 4 processos sequenciais, independentes Somente um programa está ativo a cada momento

Monotarefa Multitarefa Monousuário Multiusuário Conceitos Básicos Tipos de S.O. Como evitar que um processo monopolize o sistema? Sistemas de tempo compartilhado (Time Sharing Systems) Permite sistemas interativos (entrada/saída) Requer temporizadores (timers) Interrupções

Conceitos Básicos: Tipos de S.O. Multiprocessamento O índice do processo contém o apontador para a lista de processos PC (Program Counter) = contador de programas Lista de proc. Memória......... Índ. Processo PC Base Limite Regs da CPU Uma troca de processos consiste em trocar o valor dos registradores de contexto da CPU Proc. A. Contexto Dados Código Outros regs Contexto Dados Proc. B. Código

O que é necessário para haver multiprocessamento? Suporte do Hardware Temporizadores (timers) Interrupções Proteção de memória Suporte do S.O. Escalonamento dos processos Alocação de memória Gerenciamento dos periféricos

Comportamentos de Processos Surtos de uso da CPU alternam-se com períodos de espera por E/S um processo limitado por CPU um processo limitado por E/S

Escalonamento de Processos Tipos de Processo CPU-bound: gasta a maior parte do seu tempo usando a CPU longos tempos de execução e baixo volume de comunicação entre processos ex: aplicações científicas, engenharia e outras aplicações que demandam alto desempenho de computação I/O-bound: passa a maior parte do tempo esperando por dispositivos de E/S processos I/O-bound devem ter prioridade sobre processos CPU-bound Batch (lote) x Interativos

A importância da Interrupção Num sistema simples, CPU deve esperar a execução do comando de E/S A cada chamada do comando write a CPU fica esperando o dispositivo executar o comando. Ex: escrita em disco

A importância da Interrupção Um sistema com interrupção não fica esperando Ex: escrita em disco A CPU solicita o write e fica executando outras tarefas até ser interrompida pelo disco.

Operação Básica da CPU Incrementa PC Busca instrução e dados Executa a instrução Com interrupção Não Interrupção? Sim 1) Pára o processo atual 2) Salta p/ rotina de interrupção

Interrupção do Programa

Processo de Interrupção Dispositivo pede interrupção Salva resto da Informação do contexto do processo Hardware Processador salva PSW e PC na pilha de controle Processa rotina de Interrupção Processador carrega novo valor do PC baseado na interrupção Restaura Informação do estado do processo em execução antes da interrupção Software *PSW = Program Status Word *PC = Program Counter Restaura PSW e PC do processo em execução antes da interrupção

Algoritmos de Escalonamento

Escalonamento de processos Quando um ou mais processos estão prontos para ser executados, o SO decide qual executar primeiro A parte do sistema operacional responsável por essa decisão é chamada escalonador O algoritmo usado para tal é chamado de algoritmo de escalonamento

Escalonamento de Processos Abstração Uma máquina para cada processo Paralelismo real P1 T11 P2 T12 P3 T0 P3 T22

Escalonamento de Processos Realidade Compartilhamento do tempo Pseudo-paralelismo P1 T12 T11 T0 T22 T0 1 41 51 70 90 121 t

Filas de Escalonamento High-level Decide quantos programas são admitidos no sistema Aloca memória e cria um processo Short-term Decide qual processo deve ser executado I/O Decide qual processo (com I/O) pendente deve ser tratado pelo dispositivo de I/O

Filas de Escalonamento Short-term scheduling Process request Longterm queue Shortterm queue CPU FIM Interrupt of process Interrupt from I/O High-level scheduling Interrupt Handler I/O I/O I/O I/O queue I/O queue I/O queue I/O scheduling

Categorias de Algoritmos de Escalonamento Em lote (batch) Interativo Tempo-real

Introdução ao Escalonamento Objetivos do algoritmo de escalonamento

Características de Escalonamento Justiça (fairness) Todos os processos têm chances iguais de uso dos processador Eficiência Taxa de ocupação do processador ao longo do tempo Tempo de Resposta Tempo entre a ocorrência de um evento e o termino da ação correspondente Turnaround (tempo de retorno) Tempo de resposta para usuários em batch Minimizar o tempo que usuários batch devem esperar pelo resultado Throughput (vazão) No. de jobs (processos) executados por unidade de tempo

Tipos de Escalonamento Mecanismos de Escalonamento Preemptivo x Não-preemptivo Políticas de Escalonamento Round-Robin FIFO (First-In First-Out) Híbridos Partições de Lote (Batch) MFQ - Multiple Feedback Queue SJF Shortest Job First SRJN Shortest Remaining Job Next Diz-se que um algoritmo/sistema operacional é preemptivo quando um processo entra na CPU e o mesmo pode ser retirado da CPU antes do término da sua execução

Escalonamento Preemptivo Permite a suspensão temporária de processos Quantum ou time-slice: período de tempo durante o qual um processo usa o processador a cada vez Preempção P1 T12 T11 T0 T22 T0 1 41 51 70 90 121 t

Problema das trocas de processos Mudar de um processo para outro requer um certo tempo para a administração salvar e carregar registradores e mapas de memória, atualizar tabelas e listas do SO, etc Isto se chama troca de contexto Suponha que esta troca dure 5 ms e que o quantum está ajustado para 20 ms Com esses parâmetros, 20% do tempo de CPU (5 ms a cada 25 ms) será gasto com trocas de contexto

Solução? Para melhorar a eficiência da CPU, poderíamos ajustar o quantum para 500 ms Agora o tempo gasto com troca de contexto é menos do que 1% - desprezível... O que aconteceria se dez usuários apertassem a tecla <ENTER> exatamente ao mesmo tempo, disparando cada um processo? Dez processos serão colocados na lista de processo aptos a executar Se a CPU estiver ociosa, o primeiro começará imediatamente, o segundo não começará cerca de ½ segundo depois, e assim por diante O último processo somente começará a executar 5 segundos depois do usuário ter apertado <ENTER> Muitos usuários vão achar que o tempo de resposta de 5s é demais

Moral da estória Um quantum muito pequeno causa muitas trocas de contexto e diminui a eficiência da CPU... Já um muito alto causa um tempo de resposta inaceitável para pequenas tarefas interativas Quantum grande: Diminui número de mudanças de contexto e overhead do S.O., mas... Ruim para processos interativos

Categorias de Algoritmos de Escalonamento Em lote (batch) Interativo Tempo-real Híbrido

Escalonamento em Sistemas em Lote First-come first-served (ou FIFO) Shortest job first (job mais curto primeiro) Shortest remaining Time/Job next

First-In First-Out (FIFO) Uso de uma lista de processos sem prioridade Escalonamento não-preemptivo Simples e justo Bom para sistemas em batch (lote) CPU A B C D E F FIM

Escalonamentos baseados no tempo de execução Shortest Job First (não-preemptivo) Shortest Remaining Job Next (preemptivo) Melhora o tempo de resposta Não é justo: pode causar estagnação (starvation) Pode ser resolvida alterando a prioridade dinamicamente Exemplo de escalonamento job mais curto primeiro (Shortest Job First SJF)

Escalonamento em Sistemas Interativos Round-robin Prioridade Multiple queues Shortest process next Guaranteed scheduling Lottery scheduling Fair-share scheduling

Escalonamento em Sistemas Interativos (1) Escalonamento por alternância circular (round-robin) lista de processos executáveis lista de processos executáveis depois que B usou todo o seu quantum

Escalonamento em Sistemas Interativos (2) Um algoritmo de escalonamento com quatro classes de prioridade

Políticas de Escalonamento Híbridos Como combinar processos batch com interativos? Uso de Partições de Lote (batch) O sistema aceita tantos processos batch quantas forem as partições de lote O sistema aceita todos os processos interativos Escalonamento em dois níveis Segue...

Processos Interativos Memória Escalonamentos Híbridos Partições de Lote Processos interativos são ativados imediatamente Processos batch esperam a liberação do lote Partição de Lote A B C D E F N

Escalonamentos Híbridos Multiple Feedback Queue Como saber a priori se o processo é CPU-bound ou I/ O-bound? MFQ usa abordagem de prioridades dinâmicas Adaptação baseada no comportamento de cada processo Usado no VAX / VMS... Segue

Escalonamentos Híbridos Multiple Feedback Queue Novos processos entram na primeira fila (prioridade mais alta) Se acabar o quantum desce um nível Se requisitar E/S sobe um nível Lembrando: I/O-bound são prioritários... Fila 1... Fila 2... Fila n Q ua n t u m P ri o ri d a d e

Escalonamento de Threads (1) Possível escalonamento de threads de usuário processo com quantum de 50-mseg threads executam 5 mseg por surto de CPU

Escalonamento de Threads (2) Possível escalonamento de threads de núcleo Muitas vezes, apenas threads são levadas em consideração Independentemente dos processos

Conclusões Como funcionam dois ou mais programas ao mesmo tempo? Conceitos Processos x Threads (processos leves) Interrupção Cooperação hardware-software Escalonamento Tipos de processos CPU-bound x I/O-bound Lote (batch) x interativo Filas de escalonamento Long-term (admissão) Short-term I/O Escalonamento (cont.) Objetivos Justiça Eficiência Tempo de Resposta Conceitos Preempção Quantum (time-slice) Troca de contexto Algoritmos Propósito x Complexidade x Eficiência