![Page 1: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/1.jpg)
Conceitos de sistema operacional com Java – 7a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007
Capítulo 5: Escalonamento de CPU
![Page 2: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/2.jpg)
5.2 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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
![Page 3: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/3.jpg)
5.3 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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
![Page 4: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/4.jpg)
5.4 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Seqüência alternada de bursts de CPU e E/S
![Page 5: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/5.jpg)
5.5 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Histograma de tempos de burst de CPU
![Page 6: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/6.jpg)
5.6 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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 esperando2. Passa do estado executando para pronto3.Passa de esperando para pronto4.Termina
Escalonamento sob 1 e 4 é não preemptivo Todo o restante é preemptivo
![Page 7: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/7.jpg)
5.7 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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
![Page 8: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/8.jpg)
5.8 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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)
![Page 9: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/9.jpg)
5.9 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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
![Page 10: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/10.jpg)
5.10 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
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 Gráfico de Gantt para o schedule é:
Tempo de espera para P1 = 0; P2 = 24; P3 = 27 Tempo de espera médio: (0 + 24 + 27)/3 = 17
P1 P2 P3
24 27 300
![Page 11: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/11.jpg)
5.11 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Escalonamento FCFS (cont.)
Suponha que os processos cheguem nesta ordem:
P2 , P3 , P1 O Gráfico de Gantt para o schedule é :
Tempo de espera para P1 = 6; P2 = 0; P3 = 3
Tempo de espera médio: (6 + 0 + 3)/3 = 3 Muito melhor que o caso anterior Efeito comboio: processo curto atrás de processo longo
P1P3P2
63 300
![Page 12: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/12.jpg)
5.12 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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
![Page 13: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/13.jpg)
5.13 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Processo Tempo chegada Tempo de burst
P1 0,0 7
P2 2,0 4
P3 4,0 1
P4 5,0 4 SJF (não preemptivo)
Tempo médio de espera = (0 + 6 + 3 + 7)/4 = 4
Exemplo de SJF não preemptivo
P1 P3 P2
73 160
P4
8 12
![Page 14: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/14.jpg)
5.14 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
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)
Tempo médio de espera = (9 + 1 + 0 +2)/4 = 3
P1 P3P2
42 110
P4
5 7
P2 P1
16
![Page 15: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/15.jpg)
5.15 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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
:Define 4.
10 , 3.
CPU deburst próximo o para previsto valor 2.
CPU deburst n do real extensão 1.
1
n
thnt
.1 1 nnn t
![Page 16: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/16.jpg)
5.16 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Previsão da extensão do próximo burst de CPU
![Page 17: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/17.jpg)
5.17 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Exemplos de média exponencial
=0 n+1 = n
História recente não conta =1
n+1 = tn
Somente as últimas contagens reais de burst de CPU Se expandirmos a fórmula, obtemos:
n+1 = tn+(1 - ) tn -1 + …
+(1 - )j tn -j + …
+(1 - )n +1 0
Como e (1 - ) são menores ou iguais a 1, cada termo sucessivo tem menos peso que seu predecessor
![Page 18: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/18.jpg)
5.18 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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
![Page 19: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/19.jpg)
5.19 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
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, 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
![Page 20: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/20.jpg)
5.20 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Exemplo de RR com quantum de tempo = 20
Processo Tempo de burst
P1 53
P2 17
P3 68
P4 24 O gráfico de Gantt é:
Normalmente, maior turnaround médio que SJF, porém com resposta melhor
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
0 20 37 57 77 97 117 121 134 154 162
![Page 21: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/21.jpg)
5.21 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Quantum de tempo e tempo de troca de contexto
![Page 22: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/22.jpg)
5.22 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Tempo de turnaround varia com o quantum de tempo
![Page 23: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/23.jpg)
5.23 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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
![Page 24: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/24.jpg)
5.24 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Escalonamento de fila multinível
![Page 25: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/25.jpg)
5.25 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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
![Page 26: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/26.jpg)
5.26 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Exemplo de fila de feedback multinível
Três 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 não terminar em 8 milissegundos, o job é movido para a fila Q1.
Em Q1 o job é novamente servido FCFS e recebe 16 milissegundos adicionais. Se não completar, ele é apropriado e movido para a fila Q2.
![Page 27: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/27.jpg)
5.27 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Filas de feedback multinível
![Page 28: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/28.jpg)
5.28 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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
![Page 29: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/29.jpg)
5.29 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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
![Page 30: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/30.jpg)
5.30 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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
![Page 31: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/31.jpg)
5.31 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
API de escalonamento Pthread
![Page 32: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/32.jpg)
5.32 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Exemplos de sistema operacional
Escalonamento do Solaris Escalonamento do Windows XP Escalonamento do Linux
![Page 33: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/33.jpg)
5.33 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Escalonamento do Solaris
![Page 34: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/34.jpg)
5.34 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Tabela de despacho do Solaris
![Page 35: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/35.jpg)
5.35 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Prioridades do Windows XP
![Page 36: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/36.jpg)
5.36 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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
![Page 37: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/37.jpg)
5.37 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Lista de tarefas indexadas de acordo com as prioridades
![Page 38: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/38.jpg)
5.38 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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
![Page 39: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/39.jpg)
5.39 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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
![Page 40: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/40.jpg)
5.40 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Escalonamento em Java
Mudando de prioridade com setPriority()
![Page 41: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/41.jpg)
5.41 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Escalonamento em Java
Relacionamento entre prioridades Java e Win32
![Page 42: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/42.jpg)
5.42 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Escalonamento em Java
Escalonamento de thread Java no Solaris
![Page 43: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/43.jpg)
5.43 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a 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
![Page 44: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/44.jpg)
5.44 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Avaliação de algoritmo
Avaliação de escalonadores de CPU por simulação
![Page 45: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/45.jpg)
5.45 Silberschatz, Galvin e Gagne ©2007Conceitos de sistema operacional com Java – 7a edição, 15/11/2006
Avaliação de algoritmo
![Page 46: Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081502/552fc12a497959413d8cd9c4/html5/thumbnails/46.jpg)
Conceitos de sistema operacional com Java – 7a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007
Final do Capítulo 5