Sie sind auf Seite 1von 46

Captulo 5: Escalonamento de CPU

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 Silberschatz, Galvin e Gagne 2007
Captulo 5: Escalonamento de CPU
 Conceitos bsicos
 Critrios de escalonamento
 Algoritmos de escalonamento
 Escalonamento em mltiplos
processadores
 Escalonamento em tempo real
 Escalonamento de threads
 Exemplos de sistemas operacionais
 Escalonamento de thread em Java
 Avaliao de algoritmo

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.2 Silberschatz, Galvin e Gagne 2007
Conceitos bsicos

 Utilizao mxima de CPU obtida com


multiprogramao
 Ciclo de burst de CPU-E/S Execuo do
processo consiste em um ciclo de execuo
de CPU e espera de E/S
 Distribuio de burst de CPU

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.3 Silberschatz, Galvin e Gagne 2007
Seqncia alternada de bursts de CPU e E/S

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.4 Silberschatz, Galvin e Gagne 2007
Histograma de tempos de burst de CPU

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.5 Silberschatz, Galvin e Gagne 2007
Escalonador de CPU

 Seleciona dentre os processos na memria que


estejam prontos para executar, e aloca a CPU a um
deles
 Decises 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 no preemptivo
 Todo o restante preemptivo

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.6 Silberschatz, Galvin e Gagne 2007
Despachante

 O mdulo despachante d o controle da CPU ao


processo selecionado pelo escalonamento de
curto prazo; isso envolve:
 troca de contexto
 troca para o modo usurio
 salto para o local apropriado no programa do
usurio para reiniciar esse programa
 Latncia de despacho tempo para que o
despachante termine um processo e inicie outro
em execuo

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.7 Silberschatz, Galvin e Gagne 2007
Critrios de escalonamento
 Utilizao de CPU mantenha a CPU a mais ocupada
possvel
 Throughput # de processos que completam sua execuo
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 solicitao
foi submetida at a primeira reposta ser produzida, no a
sada (para ambiente de tempo compartilhado)

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.8 Silberschatz, Galvin e Gagne 2007
Critrios de otimizao

 Utilizao mxima de CPU


 Throughput mximo
 Tempo de turnaround mximo
 Tempo de espera mnimo
 Tempo de resposta mnimo

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.9 Silberschatz, Galvin e Gagne 2007
Escalonamento First-Come, First-Served (FCFS)

Processo Tempo de burst


P1 24
P2 3
P3 3
 Suponha que os processos cheguem nesta ordem: P1 , P2 , P3
O Grfico de Gantt para o schedule :

P1 P2 P3

0 24 27 30

 Tempo de espera para P1 = 0; P2 = 24; P3 = 27


 Tempo de espera mdio: (0 + 24 + 27)/3 = 17

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.10 Silberschatz, Galvin e Gagne 2007
Escalonamento FCFS (cont.)
Suponha que os processos cheguem nesta ordem:
P2 , P3 , P1
 O Grfico de Gantt para o schedule :

P2 P3 P1

0 3 6 30
 Tempo de espera para P1 = 6; P2 = 0; P3 = 3
 Tempo de espera mdio: (6 + 0 + 3)/3 = 3
 Muito melhor que o caso anterior
 Efeito comboio: processo curto atrs de processo longo

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.11 Silberschatz, Galvin e Gagne 2007
Escalonamento Shortest-Job-First (SJF)
 Associe a cada processo a extenso de seu prximo burst
de CPU. Use essas extenses para escalonar o processo
com o menor tempo
 Dois esquemas:
 no preemptivo uma vez a CPU dada ao processo,
ele no 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 execuo, apropria. Esse
esquema conhecido como Shortest-Remaining-Time-
First (SRTF)
 SJF ideal gera o menor tempo de espera mdio para
determinado conjunto de processos

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.12 Silberschatz, Galvin e Gagne 2007
Exemplo de SJF no preemptivo

Processo Tempo chegada Tempo de burst


P1 0,0 7
P2 2,0 4
P3 4,0 1
P4 5,0 4
 SJF (no preemptivo)

P1 P3 P2 P4

0 3 7 8 12 16
 Tempo mdio de espera = (0 + 6 + 3 + 7)/4 = 4

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.13 Silberschatz, Galvin e Gagne 2007
Exemplo de SJF preemptivo

Processo Tempo chegada Tempo de burst


P1 0,0 7
P2 2,0 4
P3 4,0 1
P4 5,0 4
 SJF (preemptivo)

P1 P2 P3 P2 P4 P1

0 2 4 5 7 11 16

 Tempo mdio de espera = (9 + 1 + 0 +2)/4 = 3

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.14 Silberschatz, Galvin e Gagne 2007
Determinando a extenso do prximo
burst de CPU
 S pode estimar a extenso
 Pode ser feito usando a extenso dos bursts de
CPU anteriores, usando a mdia exponencial

1. t n = extenso real do n th burst de CPU


2. n +1 = valor previsto para o prximo burst de CPU
3. , 0 n=1 1= t n + (1 ) n .
4. Define :

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.15 Silberschatz, Galvin e Gagne 2007
Previso da extenso do prximo burst de
CPU

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.16 Silberschatz, Galvin e Gagne 2007
Exemplos de mdia exponencial
 =0
 n+1 = n
 Histria recente no conta
 =1
 n+1 = tn
 Somente as ltimas contagens reais de burst de CPU
 Se expandirmos a frmula, obtemos:
n+1 = tn+(1 - ) tn -1 +
+(1 - )j tn -j +
+(1 - )n +1 0

 Como e (1 - ) so menores ou iguais a 1, cada termo


sucessivo tem menos peso que seu predecessor

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.17 Silberschatz, Galvin e Gagne 2007
Escalonamento por prioridade
 Um nmero de prioridade (inteiro) associado a cada
processo
 A CPU alocada ao processo com a maior prioridade
(menor inteiro maior prioridade)
 Preemptivo
 no preemptivo
 SJF um escalonamento por prioridade onde a prioridade
o prximo tempo de burst de CPU previsto
 Problema Estagnao processos com baixa prioridade
podem nunca ser executados
 Soluo Envelhecimento medida que o tempo
passa, aumenta a prioridade do processo

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.18 Silberschatz, Galvin e Gagne 2007
Round Robin (RR)
 Cada processo recebe uma pequena unidade de tempo
de CPU (quantum de tempo), normalmente 10-100
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, ento cada processo recebe 1/n do tempo de
CPU em pedaos de no mximo 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 relao troca
de contexto, ou ento o overhead muito alto

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.19 Silberschatz, Galvin e Gagne 2007
Exemplo de RR com quantum de tempo
= 20

Processo Tempo de burst


P1 53
P2 17
P3 68
P4 24
 O grfico de Gantt :

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162

 Normalmente, maior turnaround mdio que SJF, porm


com resposta melhor

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.20 Silberschatz, Galvin e Gagne 2007
Quantum de tempo e tempo de troca de
contexto

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.21 Silberschatz, Galvin e Gagne 2007
Tempo de turnaround varia com o quantum de
tempo

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.22 Silberschatz, Galvin e Gagne 2007
Fila multinvel

 Fila de pronto est particionada em duas filas separadas:


primeiro plano (interativo) e segundo plano (batch)
 Cada fila tem seu prprio 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 estagnao.
 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

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.23 Silberschatz, Galvin e Gagne 2007
Escalonamento de fila multinvel

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.24 Silberschatz, Galvin e Gagne 2007
Fila de feedback multinvel

 Um processo pode mover entre as diversas filas; o


envelhecimento pode ser implementado dessa forma
 Escalonador de fila de feedback multinvel definido pelos
seguintes parmetros:
 nmero de filas
 algoritmos de escalonamento para cada fila
 mtodo usado para determinar quando fazer o
upgrade de um processo
 mtodo usado para determinar quando rebaixar um
processo
 mtodo usado para determinar em qual fila um
processo entrar quando esse processo precisar de
servio

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.25 Silberschatz, Galvin e Gagne 2007
Exemplo de fila de feedback multinvel
 Trs filas:
 Q0 RR com quantum de tempo de 8 milissegundos
 Q1 RR com quantum de tempo de 16 milissegundos
 Q2 FCFS
 Escalonamento
 Um novo job entra na fila Q0 que servida FCFS.
Quando ganha a CPU, o job recebe 8 milissegundos. Se
no terminar em 8 milissegundos, o job movido para a
fila Q1.
 Em Q1 o job novamente servido FCFS e recebe 16
milissegundos adicionais. Se no completar, ele
apropriado e movido para a fila Q2.

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.26 Silberschatz, Galvin e Gagne 2007
Filas de feedback multinvel

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.27 Silberschatz, Galvin e Gagne 2007
Escalonamento de mltiplos
processadores

 Escalonamento de CPU mais complexa


quando mltiplas CPUs esto disponveis
 Processadores homogneos dentro de um
multiprocessador
 Compartilhamento de carga
 Multiprocessamento assimtrico
somente um processador acessa as
estruturas de dados do sistema, aliviando
a necessidade de compartilhamento de
dados

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.28 Silberschatz, Galvin e Gagne 2007
Escalonamento de tempo real
 Sistemas de tempo real rgido
exigidos para completar uma tarefa
crtica dentro de um perodo de tempo
garantido
 Computao em tempo real flexvel
exige que processos crticos recebam
prioridade em relao aos menos
favorecidos

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.29 Silberschatz, Galvin e Gagne 2007
Escalonamento de thread

 Escalonamento local Como a biblioteca de


threads decide qual thread colocar em um LWP
disponvel
 Escalonamento global Como o kernel decide
qual thread executar em seguida

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.30 Silberschatz, Galvin e Gagne 2007
API de escalonamento Pthread

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.31 Silberschatz, Galvin e Gagne 2007
Exemplos de sistema operacional

 Escalonamento do Solaris
 Escalonamento do Windows XP
 Escalonamento do Linux

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.32 Silberschatz, Galvin e Gagne 2007
Escalonamento do Solaris

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.33 Silberschatz, Galvin e Gagne 2007
Tabela de despacho do Solaris

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.34 Silberschatz, Galvin e Gagne 2007
Prioridades do Windows XP

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.35 Silberschatz, Galvin e Gagne 2007
Escalonamento do Linux
 Dois algoritmos: tempo compartilhado e tempo real
 Tempo compartilhado
 Priorizado baseado em crdito processo com a maioria
dos crditos escalonado em seguida
 Crdito subtrado quando houver interrupo de timer
 Quando crdito = 0, outro processo escolhido
 Quando todos os processos tiverem crdito = 0, ocorre
novo crdito
 Baseado em fatores incluindo prioridade e histria

 Tempo real
 Tempo real flexvel
 Compatvel com Posix.1b duas classes
 FCFS e RR

 Processo com prioridade mais alta sempre roda


primeiro

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.36 Silberschatz, Galvin e Gagne 2007
Lista de tarefas indexadas de acordo com as
prioridades

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.37 Silberschatz, Galvin e Gagne 2007
Escalonamento em Java

 Poltica 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 mtodo run()
Alguns sistemas podem dar suporte
preempo

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.38 Silberschatz, Galvin e Gagne 2007
Escalonamento em Java

 Prioridades valores variam de 1-10

 MIN_PRIORITY is 1
 NORM_PRIORITY is 5
 MAX_PRIORITY is 10

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.39 Silberschatz, Galvin e Gagne 2007
Escalonamento em Java

Mudando de prioridade com setPriority()

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.40 Silberschatz, Galvin e Gagne 2007
Escalonamento em Java
Relacionamento entre prioridades Java e Win32

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.41 Silberschatz, Galvin e Gagne 2007
Escalonamento em Java
Escalonamento de thread Java no Solaris

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.42 Silberschatz, Galvin e Gagne 2007
Avaliao de algoritmo
 Modelagem determinstica apanha carga
de trabalho predeterminada em particular
e define o desempenho de cada algoritmo
para essa carga de trabalho
 Modelos de enfileiramento
 Implementao

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.43 Silberschatz, Galvin e Gagne 2007
Avaliao de algoritmo
Avaliao de escalonadores de CPU por simulao

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.44 Silberschatz, Galvin e Gagne 2007
Avaliao de algoritmo

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 5.45 Silberschatz, Galvin e Gagne 2007
Final do Captulo 5

Conceitos de sistema operacional com Java 7a edio, 15/11/2006 Silberschatz, Galvin e Gagne 2007

Das könnte Ihnen auch gefallen