Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU.

Slides:



Advertisements
Apresentações semelhantes
Escalonamento de Processos Uniprocessador
Advertisements

UNICAMP Universidade Estadual de Campinas Centro Superior de Educação Tecnológica Divisão de Telecomunicações Propagação de Ondas e Antenas Prof.Dr. Leonardo.
Sistemas Operacionais Gerência de Processador
INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Sistemas Operacionais Gerência de Processador WebDesign Redes de Computadores.
Noções de Sistemas Operacionais
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Processos.
Gerência do Processador
Gerência do Processador
Escalonamento Linux.
Arquitetura de Sistemas Operacionais
Chapter 4: Threads.
Capítulo 5: Escalonamento de CPU
Capítulo 7: Deadlocks.
SSC SISTEMAS OPERACIONAIS I Aulas 6 – Escalonamento de Processos
SSC SISTEMAS OPERACIONAIS I Aulas 5 – Escalonamento de Processos
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
Alessandro Nakamuta Bruno Guazzelli Batista
SSC SISTEMAS OPERACIONAIS I
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
Capítulo 3 Deadlocks - Impasses 3.1. Recurso
Capítulo 7 Multimídia 7.1 Introdução à multimídia
Estudo de Caso 1: UNIX e LINUX
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Sistemas Operacionais
FUNÇÃO MODULAR.
Escalonamento de Processos
Processos Conceitos Básicos.
Estruturas de Controle
Escalonamento Aula 7.
Arquitetura de Sistemas Operacionais
Curso Técnico em Manutenção e Suporte em Informática
Claudio de Oliveira – Gerência do Processador 09/03/10 20:13 Claudio de Oliveira –
Threads.
Provas de Concursos Anteriores
Sistemas Operacionais
MECÂNICA - ESTÁTICA Cabos Cap. 7.
Sistemas Operacionais Aula 4
Concorrência em Java Threads em Java.
Unidade 1-1 Processos e Threads
SISTEMAS OPERACIONAIS
Resolução de problemas por meio de busca
Gerência de Recursos Processador
Coordenação Geral de Ensino da Faculdade
Arquitetura de computadores
Capítulo 7: Deadlocks.
Análise Fatorial Factor analysis.
Modelagem Estatística
Capítulo 5: Escalonamento da CPU
EXERCÍCIOS PARA GUARDA-REDES
Unidade 2 - Parte 1 Programação Concorrente
Escalonamento de Processos
Máquina de Turing Universal
SISTEMAS OPERACIONAIS I
Escalonamento com prioridades
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Sistemas Operacionais
Escalonamento de Processos e Threads
GERÊNCIA DE PROCESSOS Disciplina: Sistemas Operacionais II.
Capítulo 5: Escalonamento da CPU
Sistemas Operacionais
Escalonamento de Processos
SISTEMAS OPERACIONAIS
Bruno Affonso Diego Chiquito Ruan Berté.   O código de Escalonamento no Windows é implementado no Kernel.  A rotina que desempenha as tarefas do Escalonador.
Administração de Sistemas Operacionais 1 -Windows
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentação:

Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU

5.2 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Capítulo 5: Escalonamento de CPU Conceitos básicos Critérios de escalonamento Algoritmos de escalonamento Escalonamento em múltiplos processadores Escalonamento em tempo real Escalonamento de threads Exemplos de sistemas operacionais Escalonamento de thread em Java Avaliação de algoritmo

5.3 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Conceitos básicos Utilização máxima de CPU obtida com multiprogramação Ciclo de burst de CPU-E/S – Execução do processo consiste em um ciclo de execução de CPU e espera de E/S Distribuição de burst de CPU

5.4 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Seqüência alternada de bursts de CPU e E/S

5.5 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Histograma de tempos de burst de CPU

5.6 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Escalonador de CPU Seleciona dentre os processos na memória que estejam prontos para executar, e aloca a CPU a um deles Decisões de escalonamento de CPU podem ocorrer quando um processo: 1.Passa do estado executando para esperando 2. Passa do estado executando para pronto 3.Passa de esperando para pronto 4.Termina Escalonamento sob 1 e 4 é não preemptivo Todo o restante é preemptivo

5.7 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Despachante O módulo despachante dá o controle da CPU ao processo selecionado pelo escalonamento de curto prazo; isso envolve: troca de contexto troca para o modo usuário salto para o local apropriado no programa do usuário para reiniciar esse programa Latência de despacho – tempo para que o despachante termine um processo e inicie outro em execução

5.8 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Critérios de escalonamento Utilização de CPU– mantenha a CPU a mais ocupada possível Throughput – # de processos que completam sua execução por unidade de tempo Tempo de turnaround– quantidade de tempo para executar um processo em particular Tempo de espera – tempo em que um processo esteve esperando na fila de prontos Tempo de resposta – tempo desde quando uma solicitação foi submetida até a primeira reposta ser produzida, não a saída (para ambiente de tempo compartilhado)

5.9 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Critérios de otimização Utilização máxima de CPU Throughput máximo Tempo de turnaround máximo Tempo de espera mínimo Tempo de resposta mínimo

5.10 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Escalonamento First-Come, First-Served (FCFS) ProcessoTempo de burst P 1 24 P 2 3 P 3 3 Suponha que os processos cheguem nesta ordem: P 1, P 2, P 3 O Gráfico de Gantt para o schedule é: Tempo de espera para P 1 = 0; P 2 = 24; P 3 = 27 Tempo de espera médio: ( )/3 = 17 P1P1 P2P2 P3P

5.11 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Escalonamento FCFS (cont.) Suponha que os processos cheguem nesta ordem: P 2, P 3, P 1 O Gráfico de Gantt para o schedule é : Tempo de espera para P 1 = 6; P 2 = 0 ; P 3 = 3 Tempo de espera médio: ( )/3 = 3 Muito melhor que o caso anterior Efeito comboio: processo curto atrás de processo longo P1P1 P3P3 P2P

5.12 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Escalonamento Shortest-Job-First (SJF) Associe a cada processo a extensão de seu próximo burst de CPU. Use essas extensões para escalonar o processo com o menor tempo Dois esquemas: não preemptivo – uma vez a CPU dada ao processo, ele não pode ser apropriado até que termine seu burst de CPU preemptivo – se um novo processo chega com tamanho de burst de CPU menor que o tempo restante do processo atualmente em execução, apropria. Esse esquema é conhecido como Shortest-Remaining-Time- First (SRTF) SJF é ideal – gera o menor tempo de espera médio para determinado conjunto de processos

5.13 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 ProcessoTempo chegadaTempo de burst P 1 0,07 P 2 2,04 P 3 4,01 P 4 5,04 SJF (não preemptivo) Tempo médio de espera = ( )/4 = 4 Exemplo de SJF não preemptivo P1P1 P3P3 P2P P4P4 812

5.14 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Exemplo de SJF preemptivo ProcessoTempo chegadaTempo de burst P 1 0,07 P 2 2,04 P 3 4,01 P 4 5,04 SJF (preemptivo) Tempo médio de espera = ( )/4 = 3 P1P1 P3P3 P2P P4P4 57 P2P2 P1P1 16

5.15 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Determinando a extensão do próximo burst de CPU Só pode estimar a extensão Pode ser feito usando a extensão dos bursts de CPU anteriores, usando a média exponencial

5.16 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Previsão da extensão do próximo burst de CPU

5.17 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Exemplos de média exponencial =0 n+1 = n História recente não conta =1 n+1 = t n Somente as últimas contagens reais de burst de CPU Se expandirmos a fórmula, obtemos: n+1 = t n +(1 - ) t n -1 + … +(1 - ) j t n -j + … +(1 - ) n +1 0 Como e (1 - ) são menores ou iguais a 1, cada termo sucessivo tem menos peso que seu predecessor

5.18 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Escalonamento por prioridade Um número de prioridade (inteiro) é associado a cada processo A CPU é alocada ao processo com a maior prioridade (menor inteiro maior prioridade) Preemptivo não preemptivo SJF é um escalonamento por prioridade onde a prioridade é o próximo tempo de burst de CPU previsto Problema Estagnação – processos com baixa prioridade podem nunca ser executados Solução Envelhecimento – à medida que o tempo passa, aumenta a prioridade do processo

5.19 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Round Robin (RR) Cada processo recebe uma pequena unidade de tempo de CPU (quantum de tempo), normalmente milissegundos. Depois que esse tempo tiver passado, o processo é apropriado e acrescentado ao final da fila de pronto. Se houver n processos na fila de pronto e o quantum de tempo for q, então cada processo recebe 1/n do tempo de CPU em pedaços de no máximo q unidades de tempo de uma só vez. Nenhum processo espera mais do que (n – 1)q unidades de tempo. Desempenho q grande FIFO q pequeno q deve ser grande com relação à troca de contexto, ou então o overhead é muito alto

5.20 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Exemplo de RR com quantum de tempo = 20 ProcessoTempo de burst P 1 53 P 2 17 P 3 68 P 4 24 O gráfico de Gantt é: Normalmente, maior turnaround médio que SJF, porém com resposta melhor P1P1 P2P2 P3P3 P4P4 P1P1 P3P3 P4P4 P1P1 P3P3 P3P

5.21 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Quantum de tempo e tempo de troca de contexto

5.22 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Tempo de turnaround varia com o quantum de tempo

5.23 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Fila multinível Fila de pronto está particionada em duas filas separadas: primeiro plano (interativo) e segundo plano (batch) Cada fila tem seu próprio algoritmo de escalonamento primeiro plano – RR segundo plano – FCFS O escalonamento precisa ser feito entre as filas Escalonamento com prioridade fixa; (ou seja, serve tudo em primeiro plano, depois em segundo plano). Possibilidade de estagnação. Fatia de tempo – cada fila recebe uma certa quantidade de tempo de CPU, que ela pode escalonar entre seus processos; isto é, 80% para primeiro plano no RR 20% para segundo plano no FCFS

5.24 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Escalonamento de fila multinível

5.25 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Fila de feedback multinível Um processo pode mover entre as diversas filas; o envelhecimento pode ser implementado dessa forma Escalonador de fila de feedback multinível definido pelos seguintes parâmetros: número de filas algoritmos de escalonamento para cada fila método usado para determinar quando fazer o upgrade de um processo método usado para determinar quando rebaixar um processo método usado para determinar em qual fila um processo entrará quando esse processo precisar de serviço

5.26 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Exemplo de fila de feedback multinível Três filas: Q 0 – RR com quantum de tempo de 8 milissegundos Q 1 – RR com quantum de tempo de 16 milissegundos Q 2 – FCFS Escalonamento Um novo job entra na fila Q 0 que é servida FCFS. Quando ganha a CPU, o job recebe 8 milissegundos. Se não terminar em 8 milissegundos, o job é movido para a fila Q 1. Em Q 1 o job é novamente servido FCFS e recebe 16 milissegundos adicionais. Se não completar, ele é apropriado e movido para a fila Q 2.

5.27 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Filas de feedback multinível

5.28 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Escalonamento de múltiplos processadores Escalonamento de CPU mais complexa quando múltiplas CPUs estão disponíveis Processadores homogêneos dentro de um multiprocessador Compartilhamento de carga Multiprocessamento assimétrico – somente um processador acessa as estruturas de dados do sistema, aliviando a necessidade de compartilhamento de dados

5.29 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Escalonamento de tempo real Sistemas de tempo real rígido – exigidos para completar uma tarefa crítica dentro de um período de tempo garantido Computação em tempo real flexível – exige que processos críticos recebam prioridade em relação aos menos favorecidos

5.30 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Escalonamento de thread Escalonamento local – Como a biblioteca de threads decide qual thread colocar em um LWP disponível Escalonamento global – Como o kernel decide qual thread executar em seguida

5.31 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 API de escalonamento Pthread

5.32 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Exemplos de sistema operacional Escalonamento do Solaris Escalonamento do Windows XP Escalonamento do Linux

5.33 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Escalonamento do Solaris

5.34 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Tabela de despacho do Solaris

5.35 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Prioridades do Windows XP

5.36 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Escalonamento do Linux Dois algoritmos: tempo compartilhado e tempo real Tempo compartilhado Priorizado baseado em crédito – processo com a maioria dos créditos é escalonado em seguida Crédito subtraído quando houver interrupção de timer Quando crédito = 0, outro processo é escolhido Quando todos os processos tiverem crédito = 0, ocorre novo crédito Baseado em fatores incluindo prioridade e história Tempo real Tempo real flexível Compatível com Posix.1b – duas classes FCFS e RR Processo com prioridade mais alta sempre roda primeiro

5.37 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Lista de tarefas indexadas de acordo com as prioridades

5.38 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Escalonamento em Java Política de escalonamento livremente definida. Um thread executa até: 1. Seu quantum de tempo expirar 2. Ele for bloqueado para E/S 3. Ele sair do seu método run() Alguns sistemas podem dar suporte à preempção

5.39 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Escalonamento em Java Prioridades – valores variam de 1-10 MIN_PRIORITY is 1 NORM_PRIORITY is 5 MAX_PRIORITY is 10

5.40 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Escalonamento em Java Mudando de prioridade com setPriority()

5.41 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Escalonamento em Java Relacionamento entre prioridades Java e Win32

5.42 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Escalonamento em Java Escalonamento de thread Java no Solaris

5.43 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Avaliação de algoritmo Modelagem determinística – apanha carga de trabalho predeterminada em particular e define o desempenho de cada algoritmo para essa carga de trabalho Modelos de enfileiramento Implementação

5.44 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Avaliação de algoritmo Avaliação de escalonadores de CPU por simulação

5.45 Silberschatz, Galvin e Gagne ©2007 Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Avaliação de algoritmo

Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Final do Capítulo 5