Sunteți pe pagina 1din 46

Silberschatz, Galvin and Gagne 2009

Operating System Concepts 8


th
Edition
Captulo 5: Escalonamento da
CPU
5.2
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Captulo 5: Escalonamento de CPU
Conceitos Bsicos
Critrios de Escalonamento
Algoritmos de Escalonamento
Escalonamento de Threads
Escalonamento de Multiprocessadores
Exemplos de Sistemas Operacionais
Avaliao de Algoritmos
5.3
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Objetivos
Introduzir escalonamento de CPU, que a base para sistemas
operacionais multiprogramados

Descrever vrios algoritmos de escalonamento de CPU

Discutir critrios de avaliao para selecionar algoritmos de
escalonamento de CPU para um sistema em particular
5.4
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Conceitos Bsicos
Mxima utilizao da CPU obtida com multiprogramao

Fase de uso da CPU e de E/S Execuo de processos consiste
de uma fase de execuo da CPU e espera por E/S

Distribuio das fases de uso da CPU (CPU bursts)
5.5
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Histograma de durao de fases de uso da CPU
5.6
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Alternando fases de uso da CPU e E/S
5.7
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Escalonador da CPU
Seleciona dentre os processos na memria em estado pronto, e aloca a
CPU para um deles.

Decises de escalonamento da CPU ocorrem quando um processo:
1. Muda do estado executando para esperando.
2. Muda do estado executando para pronto.
3. Muda do estado esperando para pronto.
4. Termina.

Escalonamento nas condies 1 e 4 no-preemptivo.

Todas as outras alocaes so preemptivas.

5.8
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Despachante
O despachante (dispatcher) o mdulo que fornece o controle da
CPU ao processo selecionado pelo escalonador da CPU. Essa
funo envolve:
Troca de contexto
Mudana para o modo usurio
Desvio para o endereo adequado no programa do usurio,
para reiniciar o programa

Latncia de Despacho tempo gasto pelo despachante para
interromper a execuo de um processo e iniciar a execuo de
outro.
5.9
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Critrios de Alocao
Utilizao da CPU manter a CPU ocupada a maior parte
possvel do tempo

Produtividade (Throughput) nmero de processos que
completam sua execuo por unidade de tempo

Tempo de Processamento (Turnaround) quantidade de
tempo necessria para executar um determinado processo

Tempo de Espera quantidade de tempo que um processo
esteve esperando na fila de processos prontos

Tempo de Resposta intervalo de tempo entre o envio de
uma requisio e a produo da primeira resposta, no a
sada (para ambientes tempo compartilhado)
5.10
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Critrios de Otimizao
Maximizar utilizao da CPU
Maximizar produtividade
Minimizar o tempo de processamento
Minimizar o tempo de espera
Minimizar o tempo de resposta
5.11
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Primeiro a Chegar, Primeiro a ser Servido (FCFS*)
Processo Tempo de Rajada
P
1
24
P
2
3
P
3
3


Suponha que os processos chegam na ordem: P
1
, P
2
, P
3
O diagrama de Gantt para a alocao ::






Tempo de espera para P
1
= 0; P
2
= 24; P
3
= 27
Tempo de espera mdio: (0 + 24 + 27)/3 = 17
P
1
P
2
P
3

24 27 30 0
*FCFS - First Come, First Served
5.12
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Escalonamento FCFS (Cont.)
Suponha que os processos cheguem na ordem
P
2
, P
3
, P
1

O diagrama de Gantt para a alocao :




Tempo de espera para P
1
= 6;

P
2
= 0
;
P
3
= 3
Tempo de espera mdio : (6 + 0 + 3)/3 = 3
Bem melhor que o casso anterior.
Efeito Comboio: processos curtos aps processos longos
P
1
P
3
P
2

6 3 30 0
5.13
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Escalonamento Menor Job Primeiro (SJR*)
Associado com cada processo a durao da sua prxima fase de uso da
CPU. Uso dessas duraes para escalonar o processo com o menor
tempo.

SJF timo permite o menor tempo mdio de espera para um dado
conjunto de processos.
A dificuldade saber o tamanho da prxima requisio de CPU
*SJR - Shortest-Job-First
5.14
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Exemplo de SJF
Processos Tempo de Rajada
P
1
0.0 6
P
2
2.0 8
P
3
4.0 7
P
4
5.0 3
Diagrama de escalonamento SJF:




Tempo de espera mdio = (3 + 16 + 9 + 0) / 4 = 7

P
4

P
3

P
1

3
16 0
9
P
2

24
5.15
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Determinando a durao da prxima
fase de uso da CPU
Pode somente determinar a durao.

Pode ser calculada com a durao de uso da CPU na fase anterior, usando
mdias exponenciais.


: Define 4.
1 0 , 3.
CPU da uso de fase prxima para previsto valor 2.
CPU da uso de fase ensima da real durao 1.
1
s s
=
=
+
o o
t
n
n
t

t
n+1
=o t
n
+ 1o ( )t
n
.
5.16
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Previso da Durao da Prxima Fase de Uso da CPU
5.17
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Exemplos de mdia exponencial
o =0
t
n+1
= t
n
Histria recente no levada em considerao.
o =1
t
n+1
= t
n
Somente a durao da fase de uso da CPU mais recente conta.
Se a frmula for expandida, temos:
t
n+1
= o t
n
+(1 - o) o t
n
-1 +
+(1 - o )
j
o t
n
-1 +
+(1 - o )
n=1
t
n
t
0
Uma vez que tanto o quanto (1 - o) so menores ou iguais a 1, cada termo
sucessivo tem peso menor que o seu predecessor.
5.18
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Escalonamento por Prioridade
Um nmero de prioridade (inteiro) associado com cada processo

A CPU alocada para o processo com a maior prioridade (menor inteiro
maior prioridade).
Preemptivo
No-preemptivo

SJF um escalonador com prioridade, no qual a prioridade a previso da
prxima fase de uso da CPU.

Problema Starvation (abandono de processo) processos de baixa
prioridade podem nunca executar.

Soluo Aging (envelhecimento) ao passar do tempo, aumentar a
prioridade dos processos que ficam em espera no sistema.
5.19
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Alocao Circular - Round Robin (RR)
Cada processo recebe uma pequena unidade de tempo de CPU
(quantum), usualmente 10-100 milissegundos. Depois de
transcorrido este tempo, o processo preemptado e adicionado
ao fim da fila de processos prontos.

Se existem n processos na fila de processos prontos e o
quantum q, ento cada processo obtm 1/n do tempo da CPU
em blocos de no mximo q unidades de tempo de uma vez.
Nenhum processo espera mais do que (n-1)q unidades de
tempo.

Desempenho
q alto FIFO
q pequeno q deve ser maior que a troca de contexto,
seno a sobrecarga muito alta.
5.20
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Exemplo: RR com quantum= 4
Processo Tempo de Rajada
P
1
24
P
2
3
P
3
3

O diagrama de Gantt :






Tipicamente, possui maior tempo mdio de processamento do que
o SJF, mas melhor resposta.
P
1
P
2
P
3
P
1
P
1
P
1
P
1
P
1
0 4 7 10 14 18 22 26 30
5.21
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Exemplo: RR com quantum= 20
Processo Tempo de Rajada
P
1
53
P
2
17
P
3
68
P
4
24

O diagrama de Gantt :






P
1
P
2
P
3
P
4
P
1
P
3
P
4
P
1
P
3
P
3
0 20 37 57 77 97 117 121 134 154 162
5.22
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
O Quantum e o Tempo de Troca de Contexto
5.23
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Variao do tempo de processamento
com o quantum
5.24
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Alocao com Mltiplas Filas
Fila de processos prontos particionada em filas separadas:
primeiro plano - foreground (interativo)
segundo plano - background (batch)

Cada fila tem seu prprio algoritmo de escalonamento,
interativo Alocao Circular (RR)
batch Primeiro a chegar, Primeiro a ser servido (FCFS)

Escalonamento deve ser realizado entre as filas.
Escalonamento de prioridade fixa; Ex.: a fila de processos interativos
pode ter prioridade absoluto sobre a fila de processos batch.
Possibilidade de starvation.
Fatia de tempo cada fila recebe certa quantia de tempo de CPU que
poderia ser ento alocada aos processos dessa fila; Ex.:
80% para processos interativos em RR
20% para processos batch em FCFS
5.25
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Escalonamento com Mltiplas filas
5.26
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Mltiplas Filas com Realimentao
Um processo pode se mover entre as vrias filas; envelhecimento
(aging) pode ser implementado desta forma.

Escalonamento com mltiplas filas e transferncias entre as filas
definido pelos seguintes parmetros, a saber:
Nmero de filas
Algoritmos de escalonamento para cada fila
Mtodo usado para determinar quando transferir um processo
para uma fila de prioridade mais alta
Mtodo usado para determinar quando transferir um processo
para uma fila de prioridade mais baixa
Mtodo usado para determinar em qual fila um processo deve
ser colocado, quando precisar usar a CPU
5.27
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Exemplo de Mltiplas Filas com Realimentao
Trs filas:
Q
0
RR com quantum de 8 milissegundos
Q
1
RR com quantum 16 milissegundos
Q
2
FCFS

Escalonamento
Um novo job entra na fila Q
0
a qual utiliza RR. Quando ele ganha a
CPU, job recebe 8 milissegundos. Se ele no finalizar em 8
milissegundos, o job movido para a fila Q
1
.
Na fila Q
1
o job de novo servido por RR e recebe 16 milissegundos
adicionais. Se ele ainda no completou, premptado e movido para a
fila Q
2
.
5.28
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Mltiplas Filas com Realimentao
5.29
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Escalonamento de Threads
Distino entre threads em nvel de usurio e em nvel de
kernel

Nos modelos Muitos-para-um e Muitos-para-muitos, a
biblioteca de threads escalona threads em nvel de usurio
para executar em LWP (como kernel threads)
Conhecido como process-contention scope (PCS)
escopo de conteno do processo - uma vez que a
competio do escalomento dentro do processo

Threads em nvel de kernel so escalonadas em CPUs
disponveis. Conhecido como system-contention scope
(SCS) - escopo de conteno do sistema
5.30
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Escalonamento em Pthread
A API permite especificar entre PCS ou SCS durante a criao da
thread
PTHREAD SCOPE PROCESS escalona threads usando PCS
PTHREAD SCOPE SYSTEM escalona threads usando SCS
5.31
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
API de escalonamento na Pthread
#include <pthread.h>
#include <stdio.h>
#define NUM THREADS 5
int main(int argc, char *argv[])
{
int i;
pthread t tid[NUM THREADS];
pthread attr t attr;
/* get the default attributes */
pthread attr init(&attr);
/* set the scheduling algorithm to PROCESS or SYSTEM */
pthread attr setscope(&attr, PTHREAD SCOPE SYSTEM);
/* set the scheduling policy - FIFO, RT, or OTHER */
pthread attr setschedpolicy(&attr, SCHED OTHER);
/* create the threads */
for (i = 0; i < NUM THREADS; i++)
pthread create(&tid[i],&attr,runner,NULL);
5.32
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
API de escalonamento na Pthread (Cont.)
/* now join on each thread */
for (i = 0; i < NUM THREADS; i++)
pthread join(tid[i], NULL);
}
/* Each thread will begin control in this function */
void *runner(void *param)
{
printf("I am a thread\n");
pthread exit(0);
}
5.33
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Escalonamento de Vrios Processadores
Escalonamento de CPU mais complexo quando muitos processadores
esto disponveis

Processadores homognios em um multiprocessador

Multiprocessamento assimtrico somente um processador acessa
as estruturas de dados do sistema, aliviando a necessidade de
compartilhamento de dados

Multiprocessamento simtrico (SMP) cada processador auto-
escaloanado, todos os processos em uma fila de processos prontos
comun ou cada um tem sua fila privada de processos prontos

Afinidade de processador processos tem afinidade com
processador que est atualmente executando (soft affinity x hard
affinity)
5.34
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
NUMA e Escalonamento de CPU
5.35
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Processadores Multicore
Tendncia recente de colocar mltiplos processadores em um nico
chip

Mais rpido e consome menos energia

Mltiplas threads por core tambm em crescimento
Considera o atraso no acesso a memria para progredir em outra
thread enquanto os dados so transferidos

5.36
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Sistema Multithreaded Multicore
5.37
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Exemplos de Sistemas Operacionais

Escalonamento no Solaris
Escalonamento no Windows XP
Escalonamento no Linux
5.38
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Tabela de Despacho no Solaris
5.39
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Escalonamento no Solaris
5.40
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Prioridades no Windows XP
5.41
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Escalonamento no Linux
Tempo de escalonmaneto de ordem constante O(1)
Duas escalas de primeirdades: tempo compartilhado e tempo real
Tempo real varia de 0 a 99 e o valor do nice de 100 a 140
5.42
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Relao entre durao de fatia de tempo e prioridades
5.43
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Lista de Tarefas Indexada de acordo
com Prioridades
5.44
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Avaliao de Algoritmos
Modelagem determinstica obtm uma carga pr-
determinada e define o desempenho de cada algoritmo
para esta carga.
Modelos de Filas
Implementao
5.45
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Avaliao de Escalonadores de CPU
por Simulao
Silberschatz, Galvin and Gagne 2009
Operating System Concepts 8
th
Edition
Fim do Chapter 5

S-ar putea să vă placă și