Gerências de Processos: Escalonamento de CPU
Upcoming SlideShare
Loading in...5
×
 

Gerências de Processos: Escalonamento de CPU

on

  • 2,202 views

Introduzir o conceito de escalonamento de CPU, base para os sistemas operacionais multiprogramados ...

Introduzir o conceito de escalonamento de CPU, base para os sistemas operacionais multiprogramados

Descrever vários algoritmos de escalonamento de CPU

Discutir os critérios de avaliação para selecionar um algoritmo de escalonamento de CPU para um determinado sistema

Statistics

Views

Total Views
2,202
Views on SlideShare
2,202
Embed Views
0

Actions

Likes
0
Downloads
115
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Gerências de Processos: Escalonamento de CPU Gerências de Processos: Escalonamento de CPU Presentation Transcript

  • Sistemas Operacionais IGerências de Processos: Escalonamentode CPUProf. Alexandre Duarte : http://alexandrend.comCentro de Informática | Universidade Federal da ParaíbaEstes slides são baseados no material que acompanha o livro OperatingSystems Concepts de Silberschatz, Galvin and Gagne
  • Objetivos Introduzir o conceito de escalonamento deCPU, base para os sistemas operacionaismultiprogramados Descrever vários algoritmos de escalonamentode CPU Discutir os critérios de avaliaç ão paraselecionar um algoritmo de escalonamento deCPU para um determinado sistema
  • Conceitos básicos Utilizaç ão máxima deCPU é obtida commultiprogramaç ão Ciclos de rajadas deCPU–E/S A execuç ão de umprocesso é um ciclode rajadas alternadasde CPU e espera porE/S
  • Histograma com as durações dospicos de CPU
  • Escalonador de CPU Seleciona um entre os processos em memó ria prontos paraexecutar e aloca a CPU para ele O escalonamento de CPU pode ocorrer quando umprocesso:1. muda do estado executando para esperando2. muda do estado executando para pronto3. muda do estado esperando para pronto4. é finalizado O escalonamento nas condições 1 e 4 é dito não-premptivo Em 2 e 3 é dito preemptivo
  • Despachante O mó dulo despachante transfere o controle daCPU para o processo selecionado peloescalonador de curto prazo, o que envolve: trocar contexto alterar para o modo usuário fazer um salto para o endereç o de memó ria corretopara que o processo seja reiniciado Latência de despacho: é o tempo necessáriopara o despachante para um processo e reiniciarum outro
  • Critérios de escalonamento Utilizaç ão de CPU: manter a CPU o mais ocupada possível Vazão: # de processos que concluem sua execuç ão por unidadede tempo Tempo de retorno: quantidade necessária de tempo paraexecutar um processo Tempo de espera: quantidade de tempo que um processoaguardou na fila de prontos Tempo de resposta: quantidade de tempo entre a requisiç ão deexecuç ão de um programa e a produç ão da primeira resposta(sistemas de compartilhamento de tempo)
  • Critérios de otimização para algoritmos deescalonamento Utilizaç ão máxima de CPU Vazão máxima Tempo de retorno mínimo Tempo de espera mínimo Tempo de resposta mínimo
  • “Primeiro a Entrar, Primeiro a ser Atendido”(FCFS)Suponha que os processo cheguem na ordem: P1 , P2 , P3Seriam escalonados como a seguirTempos de espera: P1 = 0; P2 = 24; P3 = 27Tempo de espera médio: (0 + 24 + 27)/3 = 17
  • Continuando com o FCFSAgora, suponha que os processos cheguem na ordem P2 , P3 , P1O escalonamento seria Tempos de espera: P1 = 6;P2 = 0; P3 = 3 Tempo de espera médio: (6 + 0 + 3)/3 = 3 Muito melhor que no caso anterior!!! “Efeito comboio” atrás de um processo longo!
  • Menor Job Primeiro (SJF) Associa a cada processo a duraç ão do seupró ximo pico de CPU Usa essas duraç ões para escalonar oprocesso com a menor duraç ão de pico deCPU SJF é ó timo: dáo menor tempo médio deespera para um dado conjunto de processos A dificuldade reside em saber qual seráa duraç ãodo pró ximo pico de CPU!
  • Exemplo do SJFO SJF escalonaria da seguinte forma: Tempo de espera médio = (3 + 16 + 9 + 0) / 4 = 7
  • Determinando a duração do próximopico de CPUPodemos apenasestimar a duraç ão!Uma estratégia éutilizar a duraç ão dospicos anteriores eprever a duraç ão dopró ximo pico pelamédia exponencial:
  • Escalonamento por prioridade Cada processo recebe um nível de prioridade A CPU é alocada para o processo com a maior prioridade(menor valor númerico) Preemptivo Não-preemptivo O SJF é um algoritmo de escalonamento por prioridade ondea prioridade é a duração do pró ximo pico de CPU SJF com preempç ão = SRJF Problema ≡ Starvation : processos de baixa prioridadepodem nunca rodar Solução ≡ Envelhecimento : a medida que o tempo passaa prioridade dos processos aumenta
  • Round Robin (RR) Cada processo recebe uma pequena quantidade de tempode CPU (quantum), usualmente entre 10 e 100milissegundos. Depois que esse tempo de esgota o processo é interrompido einserido no fim da fila de prontos. Se existem n processos na fila de prontos e o quantum é q,então cada processo recebe 1/n do tempo de CPU empedaços de tamanho máximo q. Nenhum processo espera mais que do que (n-1)q unidades detempo Desempenho q grande ⇒ FIFO q pequeno ⇒ q precisa ser grande em relaç ão ao tempo detroca de contexto, caso contrário o overhead serámuito grande
  • Exemplo: RR com quantum = 4 O escalonamento seria Geralmente apresenta um tempo de retorno médiomaior do que o do SFJ mas melhor tempo deresposta
  • Duração do quantum e trocas de contexto
  • O tempo de retorno varia com o quantum
  • Filas de vários níveis A fila de prontos é particionada em várias filasseparadas Cada fila tem seu pró prio algoritmo de escalonamento Processos interativos: RR Processos de lote: FCFS O escalonamento precisa ser feito também entre asfilas Prioridade fixa: escalona todos da primeira fila para depoispassar para a pró xima. Possibilidade de haver starvation. Fatia de tempo: cada fila recebe uma fatia de tempo daCPU para dividir entre seus processos 80% do tempo para processos interativos utilizando RR 20% para processos de lote utilizando FCFS
  • Escalonamento com várias filas
  • Filas com feedback Um processo pode mudar de fila Forma de implementar envelhecimento Escalonador de várias filas com feedback é definidopelos seguintes parâmetros: número de filas algoritmo de escalonamento para cada fila método para determinar em que fila um processo deve serinserido método para determinar quando promover um processo método para determinar quando rebaixar um processo
  • Exemplo de escalonamento comvárias filas com feedback Três filas Q0 – RR com quantum de 8 milissegundos Q1 – RR com quantum de 16 milissegundos Q2 – FCFS Escalonamento Um novo job entra na fila Q0 e é servido em ordem FIFO.Quando ele recebe a CPU, em tem 8 milissegundos. Seele não terminar é então movido para a fila Q1. Os jobs da fila Q1 também são servidos em ordem FIFO,recebendo 16 milissegundos adicionais. Se ainda assimnão terminar é movido para a fila Q2.
  • Exemplo de escalonamento comvárias filas com feedback
  • Escalonamento de threads Distinç ão entre threads do usuário e threads donúcleo Nos modelos muitos-para-um e muitos-para-muitos a biblioteca de threads escalona threads dousuário para rodar em LWPs Conhecido como escopo de disputa de processopois a competição pela CPU ocorre dentro doprocesso Threads do núcleo são escalonados diretamentepara a CPU, resultando em um escopo dedisputa de sistema uma vez que a competiç ãoenvolve todas as threads do sistema
  • Escalonamento com múltiplosprocessadores O escalonamento de CPU é mais complexo quando múltiplas CPUs estãodisponíveis Processadores homogêneos em um multiprocessador Multiprocessamento assimé trico: apenas um processador acessa asestruturas de dados do sistema, diminuindo a necessidade decompartilhamento de dados Multiprocessamento simé tricos: cada processador faz o seu pró prioescalonamento todos os processos ficam em uma fila de prontos comum cada processador pode ter sua pró pria fila de prontos Afinidade com o processador: o processo tem afinidade com oprocessador no qual ele estáexecutando afinidade leve afinidade forte
  • NUMA e escalonamento de CPU
  • Processadores com múltiplosnúcleos A tendência atual é incluir múltiplos núcleos deprocessamento em um mesmo chip Mais rápido e consome menos energia Múltiplas threads por núcleo também é umatendência Enquanto recupera dados da memó ria para umathread (queda de memó ria) aproveita paraexecutar uma outra
  • Múltiplos núcleos e múltiplasthreads
  • Avaliação de algoritmos Modelagem determinística: recebe um cargade trabalha pré-determinada e mede odesempenho de cada algoritmo para essacarga de trabalho Modelos de filas Simulaç ões Implementaç ão
  • Avaliação de algoritmos de escalonamentoatravés de simulação