Você está na página 1de 27

Escalonamento

Conceitos Bsicos Critrios de Escalonamento Algoritmos de Escalonamento Escalonamento Multiprocessador Escalonamento Tempo-Real Avaliao de Algoritmos

25/4/2007

INE5355 Sistemas Operacionais I

6.1

Conceitos Bsicos
Execuo de processo consiste de um ciclo de UCP e espera de E/S

25/4/2007

INE5355 Sistemas Operacionais I

6.2

Conceitos Bsicos

25/4/2007

INE5355 Sistemas Operacionais I

6.3

Tipo de Escalonamento
Long-term determina que programas so admitidos para execuo; controla o grau de multiprogramao; mais processos .. Medium-term determina processos que so trazidos de/para memria; Short-term determina que processo recebe UCP; executa mais frequente; invocado quando eventos ocorrem (int., chamadas de sistema,sinais)

25/4/2007

INE5355 Sistemas Operacionais I

6.4

Tipo de Escalonamento

25/4/2007

INE5355 Sistemas Operacionais I

6.5

Tipo de Escalonamento
No preemptivo

Estando um processo no estado running, ele continuar at terminar ou bloquear devido a E/S

Preemptivo
Processo running pode ser interrompido e levado para o estado Ready pelo SO Permite melhor servio, nenhum processo pode monopolizar o processador por muito tempo

25/4/2007

INE5355 Sistemas Operacionais I

6.8

Escalonador da UCP
Seleciona entre os processos na memria que esto prontos para executar e aloca a UCP para um deles. As decises de escalonamento da UCP podem acontecer quando um processo:
1. 2. 3. 4. Muda do estado running para o estado waiting. Muda do estado running para o estado ready. Muda do estado waiting para o estado ready. Termina.

Escalonamento em 1 e 4 no preemptivo. Nos outros casos o escalonamento preemptivo.

25/4/2007

INE5355 Sistemas Operacionais I

6.9

Despachador
O mdulo Despachador passa o controle da UCP para o processo selecionado pelo escalonador (short-term); isto envolve:
Troca de contexto Mudana para modo usurio Salto para a posio apropriada no programa do usurio para reiniciar o programa

Latencia de Despacho tempo gasto pelo despachador para parar um processo e iniciar outro.

25/4/2007

INE5355 Sistemas Operacionais I

6.10

Critrios de Escalonamento

Utilizao da UCP manter a UCP ocupada Desempenho # de processos que completam sua execuo por unidade de tempo Tempo de turnaround quantidade de tempo para executar um processo particular Tempo de espera quantidade de tempo que um processo espera na fila de prontos Tempo de resposta quantidade de tempo gasto desde a submisso da requisio at produzir a primeira resposta

25/4/2007

INE5355 Sistemas Operacionais I

6.11

Critrios de Otimizao

Max utilizao da UCP Max desempenho Min turnaround Min tempo de espera Min tempo de resposta

25/4/2007

INE5355 Sistemas Operacionais I

6.12

Metas dos Algoritmos


Todos os sistemas

Justia dar a cada processo parcela da UCP Aplicao de poltica assegurar que poltica adotada Balanceamento manter todas as partes do sistema ocupadas Max desempenho Min. Turnaround Max utilizao da UCP Min tempo de resposta Proporcionalidade atender expectativas dos usurios Atender prazos (deadlines) evitar perda de dados Previsibilidade evitar degradao da qualidade em sistemas multimdia

Sistemas Batch

Sistemas Interativos

Sistemas de Tempo-Real

25/4/2007

INE5355 Sistemas Operacionais I

6.13

First-Come, First-Served (FCFS)


Processo Burst Time P1 24 P2 3 P3 3 Supor que os processos chegam na ordem: P1 , P2 , P3 diagrama de Gantt para o escalonamento:

P1 0 24

P2 27

P3 30

Tempo de espera para P1 = 0; P2 = 24; P3 = 27 Tempo de espera mdio : (0 + 24 + 27)/3 = 17

25/4/2007

INE5355 Sistemas Operacionais I

6.14

FCFS (Cont.)
Supor que os processos chegam na ordem P2 , P3 , P1 . Diagrama de Gantt :
P2 0 3 P3 6 P1 30

Tempo de espera P1 = 6; P2 = 0; P3 = 3 Tempo de espera mdio: (6 + 0 + 3)/3 = 3 Bem melhor que o caso anterior. Efeito comboio processos pequenos seguem processos longos

25/4/2007

INE5355 Sistemas Operacionais I

6.15

Shortest-Job-First (SJR)
Associar com cada processo o tamanho de seu prximo ciclo de UCP. Usar estes valores para escalonar o processo com o menor tempo. Dois esquemas:

no preemptivo preemptivo se um novo processo chegar com ciclo de UCP menor que o tempo remanescente do processo em execuo, preempta. Este esquema conhecido como Shortest-Remaining-Time-First (SRTF).

SJF timo resulta minimo tempo mdio de espera para um dado conjunto de processos.

25/4/2007

INE5355 Sistemas Operacionais I

6.16

Exemplo: SJF No-Preemptivo


Processo Chegada P1 0.0 P2 2.0 P3 4.0 P4 5.0 SJF (no-preemptivo)
P1 0 3 7 P3 8 P2 12

Ciclo de UCP 7 4 1 4

P4 16

Tempo mdio de espera = (0 + 6 + 3 + 7)/4 - 4

25/4/2007

INE5355 Sistemas Operacionais I

6.17

Exemplo: SJF Preemptivo


Process P1 P2 P3 P4 SJF (preemptive)
P1 0 2 P2 4 P3 5

Arrival Time 0.0 2.0 4.0 5.0

Burst Time 7 4 1 4

P2 7

P4 11

P1 16

Average waiting time = (9 + 1 + 0 +2)/4 - 3

25/4/2007

INE5355 Sistemas Operacionais I

6.18

Determinar tamanho do ciclo da UCP


Pode apenas estimar o tamanho. Esta estimativa leva em considerao que o prximo ciclo vai ser parecido com o anterior, assim possvel processar uma aproximao do prximo valor. Suponha que o tempo estimado para a execuo de comandos em um terminal seja T0, e que na prxima rodada o tempo medido seja T1. Podemos atualizar nossa estimativa considerando a soma ponderada destes dois valores, a T0 + (1- a) T1.

25/4/2007

INE5355 Sistemas Operacionais I

6.19

Exemplo de estimativa

25/4/2007

INE5355 Sistemas Operacionais I

6.20

10

Estimativa
Atravs da escolha de a, podemos fazer com que o processo cujo tempo estamos estimando esquea rapidamente as ltimas rodadas ou lembre-se delas por um tempo mais longo. a =0

n+1 = n Histria recente no conta. n+1 = tn Apenas o ltimo ciclo conta.

a =1

Com a= , teremos as seguintes estimativas sucessivas :


T0, T0/2 + T1/2 , T0/4 + T1 /2 + T2 /2 , T0/8 + T1 /8 + T2 /4 + T3 /2

Observe que aps 3 novas rodadas o peso de T0 no tempo estimado caiu para 1/8. A tcnica da estimativa do prximo valor atravs de uma srie ponderada chamada de aging, sendo aplicvel nas situaes em que a previso deve ser baseada em valores anteriores.

25/4/2007

INE5355 Sistemas Operacionais I

6.21

Prioridade
Uma prioridade (numero inteiro) associado a cada processo A UCP alocada para o processo com a prioridade mais alta (menor inteiro maior prioridade).

Preemptivo No preemptivo

SJF um escalonamento com prioridade onde ... Problema postergao . Soluo ????

25/4/2007

INE5355 Sistemas Operacionais I

6.22

11

Prioridade

25/4/2007

INE5355 Sistemas Operacionais I

6.23

Prioridade

Mapeamento de prioridades Win32 para prioridades Windows 2000

25/4/2007

INE5355 Sistemas Operacionais I

6.24

12

Round Robin (RR)


Cada processo recebe uma pequena unidade de tempo da UCP (time quantum), usualmente 10-100 millisegs. Depois de passado este tempo, o processo preemptado e colocado no final da fila de prontos. Se existem n processos na fila de prontos e o quantum q, ento cada processo recebe 1/n do tempo da UCP em pedaos de no mximo q unidades de tempo a cada vez. Nenhum processo espera mais que (n-1)q unidades de tempo. Desempenho
q grande ???? q pequeno ?????

25/4/2007

INE5355 Sistemas Operacionais I

6.25

Round-robin scheduling

25/4/2007

INE5355 Sistemas Operacionais I

6.26

13

Round Robin (RR)

25/4/2007

INE5355 Sistemas Operacionais I

6.27

Exemplo: RR, Quantum = 20


Processo P1 P2 P3 P4 Diagrama de Gantt : ciclo de UCP 53 17 68 24

P1 0 20

P2 37

P3 57

P4 77

P1

P3

P4

P1

P3

P3

97 117 121 134 154 162

Tipicamente, turnaround mdio maior que SJF, melhor resposta.

25/4/2007

INE5355 Sistemas Operacionais I

6.28

14

Quantum e Chaveamento de contexto

25/4/2007

INE5355 Sistemas Operacionais I

6.29

Turnaround varia com Quantum

25/4/2007

INE5355 Sistemas Operacionais I

6.30

15

Filas Multinvel
Fila de prontos particionada em filas separadas: foreground (interativa) background (batch) Cada fila tem seu prprio algoritmo, foreground RR background FCFS Escalonamento deve ser feito entre as filas.
Prioridade fixa; (i.e., serve todos da foreground depois da background). Possibilidade de . Fatia de tempo cada fila recebe uma quantidade do tempo de UCP o qual escalona entre seus processos; i.e., 80% para foreground com RR, 20% para background com FCFS

25/4/2007

INE5355 Sistemas Operacionais I

6.31

Filas Multinvel

25/4/2007

INE5355 Sistemas Operacionais I

6.32

16

Escalonamento Filas Mltiplas

Windows 2000 suporta 32 prioridades para as threads


25/4/2007 INE5355 Sistemas Operacionais I 6.33

Filas Multinvel c/ Feedback


Um processo pode mover-se entre as vrias filas; envelhecimento pode ser implementado desta forma. Escalonador fila-multinvel-feedback definido pelos seguintes parmetros:
nmero de filas algoritmos de escalonamento para cada fila mtodo usado para determinar quando subir um processo mtodo usado para determinar quando baixar um processo mtodo usado para determinar em qual fila um processo entra quando precisa servio

25/4/2007

INE5355 Sistemas Operacionais I

6.34

17

25/4/2007

INE5355 Sistemas Operacionais I

6.35

Two-queue scheduling

25/4/2007

INE5355 Sistemas Operacionais I

6.36

18

Exemplo: Filas Multinvel c/ Feedback


3 filas:
Q0 quantum 8 millisegs Q1 quantum 16 millisegs Q2 FCFS

Escalonamento
Um novo job entra na fila Q0 servida por FCFS. Quando ganha UCP, o job recebe 8 millisegs. Se ele no termina em 8 millisegs, o job movido para fila Q1. Em Q1 o job servido por FCFS e recebe 16 millisegs. Se ainda no completa, ele preemptado e movido para fila Q2.

25/4/2007

INE5355 Sistemas Operacionais I

6.37

Filas Multinvel c/ Feedback

25/4/2007

INE5355 Sistemas Operacionais I

6.38

19

Escalonamento UNIX Traditional


Filas Multinvel com feedback usando RR em cada uma das filas Prioridades so recalculadas uma vez por segundo Prioridade baseada no tipo de processo e sua histria de execuo
Pj ( i ) = Basej + ( CPUj / 2 ) + nicej CPUj (i ) = ( Uj (i ) / 2) + ( CPUj (i -1) / 2 )

Prioridade Base divide todos processos em faixas Fator de ajuste ( CPU, nice) usado para manter o processo na sua faixa ( Base)

25/4/2007

INE5355 Sistemas Operacionais I

6.39

Faixas
Ordem de prioridade decrescente

Swapper Controle de Dispositivos de E/S orientados a Bloco Manipulao de Arquivos Controle de Dispositivos de E/S orientados a caracter Processos de usurio

25/4/2007

INE5355 Sistemas Operacionais I

6.40

20

UNIX Scheduler

O escalonador UNIX baseado em uma estrutura de fila multinvel

25/4/2007

INE5355 Sistemas Operacionais I

6.41

21

Escalonamento Fair-Share - FSS


Aplicao do usurio executa como uma coleo de processos (threads) Usurio esta preocupado com o desempenho da aplicao Necessrio tomar decises de escalonamento baseado em conjuntos de processos
Grupo de usurios Atribuio de peso para utilizao dos recursos

Monitorar uso
Mais para aqueles que usam menos do que o fair share Menos para aqueles que usam mais do que o fair share

25/4/2007

INE5355 Sistemas Operacionais I

6.43

Escalonamento FSS - Unix


O sistema divide a comunidade de usurios em um conjunto de grupos fair-share e aloca uma frao do processador para cada grupo. Desta forma, se existirem 4 grupos, cada um vai ganhar 25% do tempo do processador. O escalonamento feito com base em prioridades, levando em conta a prioridade do processo, sua utilizao de CPU e a utilizao de CPU do grupo ao qual o processo pertence. Quanto maior o valor numrico menor a prioridade. Os clculos so baseados nas seguintes frmulas:

25/4/2007

INE5355 Sistemas Operacionais I

6.44

22

Escalonamento FSS - Unix


Pj(i) = Basej + CPUj/2 + GCPUk/4xWk CPUj(i) = Uj(i-1)/2 + CPUj(i-1)/2 GCPUk(i) = GUk(i-U)/2 + GCPUk(i-1)/2 onde:
Pj(i) = prioridade do processo j no inicio do intervalo i Basej = prioridade base do processo j Uj(i) = utilizao da CPU pelo processo j no intervalo i GUk(i)= utilizao da CPU pelo grupo k durante o intervalo i CPUj(i)= utilizao (ponderada) da CPU pelo processo j no intervalo i GCPUk(i) = utilizao (ponderada) da CPU pelo grupo k durante o intervalo i Wk = peso atribudo ao grupo (0..1)

25/4/2007

INE5355 Sistemas Operacionais I

6.45

23

Escalonamento de Threads

25/4/2007

INE5355 Sistemas Operacionais I

6.47

Escalonamento de Threads

25/4/2007

INE5355 Sistemas Operacionais I

6.48

24

MultiProcessador
Quando se tem mltiplas UCPs o problema de escalonamento torna-se mais complexo. Processadores de um multiprocessador so idnticos (homogneo)

qualquer processador que esteja disponvel, pode ser usado para executar qualquer processo da fila. A questo que se deve resolver se a atribuio deve ser esttica ou dinmica Cada processador auto escalonado, ou seja, cada processador examina a fila de prontos comum e seleciona um processo para executar, sendo que desta forma devemos assegurar que dois processadores no iro escolher o mesmo processo. Apontar um processador como escalonador dos outros criando uma estrutura mestre - escravo. Somente um processador acessa as estruturas de dados do sistema, sem necessidade de compartilhar dados. Algoritmo de escalonamento para multiprocessadores onde so escalonados threads/processos relacionados para executar em diferentes processadores

Load sharing

Multiprocessamento assimtrico

Gang Scheduling

25/4/2007

INE5355 Sistemas Operacionais I

6.49

Tempo-Real
Hard real-time task tarefa crtica que deve ser completada dentro de um tempo determinado e isto tem que ser garantido. Soft real-time tasks so menos restritivos, requerem que os processos crticos recebam as prioridades maiores. O importante que todas as tarefas hard sejam completadas em seus deadlines e que tanto quanto possvel as tarefas soft tambm sejam completadas.
Abordagens estticas dirigidas por tabelas Abordagens estticas com preempo dirigidas por prioridade Abordagens dinmicas baseadas em planejamento Abordagens dinmicas baseadas no melhor esforo

25/4/2007

INE5355 Sistemas Operacionais I

6.50

25

Avaliao de algoritmos
Como selecionar um algoritmo de escalonamento da UCP para um sistema particular? Modelagem determinista verifica para uma carga particular o desempenho de cada algoritmo. Modelos de filas Simulao Implementao

25/4/2007

INE5355 Sistemas Operacionais I

6.51

Simulao

25/4/2007

INE5355 Sistemas Operacionais I

6.52

26

A scheduling example
Job 1, 10 seconds, priority 3 Job 2, 2 seconds, priority 2 Job 3, 5 seconds, priority 1 Job 4, 3 seconds, priority 4

Calcule o tempo mdio de turnaround para as seguintes polticas de escalonamento :

FCFS, SJF, Prioridade, RR (q=2)

25/4/2007

INE5355 Sistemas Operacionais I

6.53

27