Escalonamento de Processos

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

Davidson Rodrigo Boccardo

Processos. Escalonamento de Processos

Processos. Objetivos do Escalonamento. Políticas de Escalonamento. Algoritmos de Escalonamento. Maximizar a taxa de utilização da UCP.

Processos. Escalonamento de Processos

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

Sistemas Operacionais: Escalonamento de processos

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais

Sistemas Operacionais. Escalonamento de processos

Escalonamento do CPU

Processos. Escalonamento de Processos

Sistemas Operacionais Gerenciamento de Processos

Sistemas de Computação. Processos e escalonamento

Escalonamento de Processos Uniprocessador

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

Sistemas Operacionais

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

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:

Algoritmos de escalonamento

SOP - TADS Escalonamento de Processos

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

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

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

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

Sistemas Operacionais. Gerência de Processador

Temporização (Scheduling) de Processos

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

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

Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais

SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (

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

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

Sistemas Operacionais. Escalonamento de Processos

Estratégias de Escalonamento de Processos

Escalonamento da CPU

Escalonamento de Processos Estratégias de Escalonamento de Processos

Escalonamento da CPU

Infra-Estrutura de Software. Escalonamento

Escalonamento de Processos

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

Sistemas Operacionais

6 ESCALONAMENTO DE CPU

Gerência de Recursos. Gerência do Processador

SSC0640 Sistemas Operacionais I

Sistemas Operacionais

Questões de Provas de Períodos Anteriores

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

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

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

Fundamentos de Sistemas Operacionais

Sistemas Operacionais Aula 7

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

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

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

Sistemas Operacionais

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

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

Sistemas Operacionais

Escalonamento de Processos

Gerência do Processador

Sistemas Operacionais

Sistemas Operacionais Escalonamento. Carlos Ferraz Jorge Cavalcanti Fonsêca

Questões de Múltipla escolha

Aula 10: Escalonamento da CPU

Deadlocks (impasses)

Fundamentos de Sistemas Operacionais

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

Gerência do Processador

SEM 544 Desenvolvimento de Produtos Mecatrônicos

Escalonamento de Tarefas

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

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

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

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

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

Escalonamento. Pedro Cruz. EEL770 Sistemas Operacionais

Escalonamento de processos

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

Sistemas Operativos 5ª parte - Escalonamento do CPU

Sistemas Operacionais

SISTEMAS OPERACIONAIS

Resumo: Sistemas Operacionais Abertos

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

Fundamentos de Sistemas Operacionais

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais

Escalonamento no Unix. Sistemas Operacionais

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

Capítulo 4 Gerência de Processador

Davidson Rodrigo Boccardo

Sistemas Operacionais

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

Processos. Processos e Recursos (1) Tabelas de Controle do S.O. Processos e Recursos (2)

OSLive: Protótipo de simulação de algoritmos de escalonamento de processos

Sistemas Operacionais

Transcrição:

Escalonamento de Processos

Escalonamento de processos Multiprogramação visa maximizar uso da CPU Sempre que processos estão prontos disputam CPU Algoritmo de escalonamento: maneira de escolher o processo que vai executar Escalonador: parte do SO que decide qual processo será escalonado Dispatcher: parte do SO que transfere o controle da CPU para o processo escolhido pelo escalonador (envolve o chaveamento de contexto) Trocar processos (chaveamento de contexto) é tarefa de alto custo

Comportamento dos processos Processos orientados à CPU (CPU-bound): muito uso da CPU e pouco uso de E/S e.g. programas de processamento científico Processos orientados a E/S (I/O-bound): muito uso de E/S e pouco uso da CPU e.g. banco de dados Surtos de CPU (ciclos de máquina)

Critérios de escalonamento Maximizar uso CPU Throughput (vazão): número de processos que completam sua execução por unidade tempo Minimizar Tempo de turnaround: tempo total entre a criação de um processo e seu término Tempo de espera: tempo que processo ficou esperando na fila prontos Tempo de resposta: tempo que o processo demora para produzir alguma resposta a uma requisição (importante para processos interativos)

Algoritmos de escalonamento First-come, first-served (FCFS): primeiro a chegar, primeiro a ser servido (FIFO) Quando o processo deseja usar CPU, é colocado no fim da fila Processo só libera CPU quando é bloqueado não preemptivo Process Duração surto 24 3 3 Supondo que processos cheguem na ordem:,, Diagrama de Gantt é: 0 24 27 30 Tempo de espera para P1=0; P2=24; P3=27 Tempo espera médio: (0 + 24 + 27)/3 = 17

FCFS (cont) Supondo que processos cheguem na ordem:,, Diagrama Gantt é: 0 3 6 30 Tempo espera para = 6; = 0 ; = 3 Tempo espera médio: (6 + 0 + 3)/3 = 3 Muito melhor que anterior!

Algoritmos de escalonamento Shortest job first (SJF): o processo mais curto primeiro Processo que tiver menor próximo surto CPU será escolhido É ótimo produz tempo espera mínimo Dois esquemas: Não-preemptivo: processo em execução não é interrompido até que termine seu surto Preemptivo: se chegar novo processo com surto menor do que tempo restante processo atual, interrompe atual Shortest remaining time first (SRTF) SJF não-preemptivo Processo Tempo chegada Duração surto 0 7 2 4 4 1 P 4 5 4 P 4 0 3 7 8 12 16 Tempo de espera para: P1=0-0=0, P2=8-6=2; P3=7-4=3; P4=12-5=7 Tempo espera médio = (0 + 6 + 3 + 7)/4 = 4

SJF preemptivo Processo Tempo chegada Duração surto 0 7 2 4 4 1 P 4 5 4 P 4 0 2 4 5 7 11 16 Tempo de espera para: P1 = (0-0)+(11-2) = 9 P2 = (2-2)+(5-4) = 1 P3 = (4-4) = 0 P4 = (7-5) = 2 Tempo espera médio = (9 + 1 + 0 +2)/4 = 3

Como saber tamanho próximo surto? Usuário informa ou sistema prevê? Usuário informa: e.g. RTOS estático mas, muitas vezes, o usuário não dispõe desta informação Sistema prevê estimativa média exponencial τ n+1 =α t n +(1 α) τ n. onde: t n : último surto de CPU α: peso (0 α 1) τ n+1 : próximo surto previsto τ n : histórico de surtos anteriores

Exemplos do uso da média exponencial α =0 τ n+1 = τ n não leva em conta o presente, mas apenas o passado (histórico) α =1 τ n+1 = t n leva em conta apenas o último surto CPU (presente) Se expandirmos a fórmula: τ n+1 = α t n +(1 - α).τ n = α t n +(1 - α).[α t n -1 + (1 - α).τ n-1 ] = α t n +(1 - α)α t n -1 + +(1 - α ) j α t n -j + +(1 - α ) n +1 τ 0 Como α e (1 - α) variam entre 0 e 1 (inclusive), cada termo tem menos peso que seu predecessor quanto mais antigo é o surto, menos peso ele tem na previsão

Algoritmos de escalonamento Round robin (revezamento circular) Para prevenir que processos de usuário monopolizem a CPU introduz-se uma interrupção por tempo, conhecida como quantum ou time-slice Tipicamente: 10 a 100ms Um processo de usuário, uma vez interrompido por término do seu quantum, volta à fila de prontos e permite que outro processo seja escalonado Similar FCFS, mas com preempção quantum (q): pequena fatia tempo da CPU Se houver n processos na fila de prontos, cada processo obterá 1/n do tempo da da CPU em montantes de, no máximo, q unidades de cada vez. Nenhum processo espera mais do que (n-1).q Desempenho q grande FIFO q pequeno q deve ser grande em relação ao tempo chaveamento de contexto overhead muito grande

Algoritmos de escalonamento Round robin (revezamento circular) P3 P1 P2 P2 P3 P1 P1 P2 P3 CPU

Exemplo RR com q=20 Processo Duração surto 53 17 68 P 4 24 Diagrama de Gantt: P 4 P 4 0 20 37 57 77 97 117 121 134 154 162 Tipicamente tem turnaround maior que SJF, mas resposta melhor

Relação entre o tempo de quantum e de chaveamento de contexto Turnaround varia com o tempo quantum O tempo de turnaround de um conjunto de processos não necessariamente melhora com o aumento do quantum Exercício: Reproduza o gráfico ao lado. Dicas: Todos os processos são criados em t=0 O primeiro cálculo (q=1) fica: t = (3+9+15+17)/4 = 11

Algoritmos de escalonamento Por prioridade Cada processo possui uma prioridade (número inteiro) A CPU é alocada ao processo maior prioridade SJF é um algoritmo por prioridade onde prio é o próx. surto CPU Valor prio depende SO Premptivo ou não Problema: starvation (bloqueio por tempo indefinido) Lenda: quando IBM 7094 do MIT desligado 1973, havia processo baixa prio esperando desde 1967 Solução aging (envelhecimento) e.g Linux Tempo espera médio = (0+1+6+16+18)/5 = 8,2ms

Bibliografia [1] Real-Time Systems and Programming Languages. Burns A., Wellings A. 2nd edition [2] Análise de Sistemas Operacionais de Tempo Real Para Applicações de Robótica e Automação. Aroca R. V. Dissertação de Mestrado. [3] Operating System Concepts. Silberschatz, Galvin, Gagne. 8 th edition [4] Sistemas Operacionais Modernos. Tanenbaum 2a edição