Você está na página 1de 24

Sistemas Operacionais:

Escalonamento de
processos

Escalonamento

Critrios de escalonamento
Algoritmos de escalonamento
Escalonamento em multiprocessadores
Escalonamento tempo real

Caractersticas de processos
Multiprogramao possibilita a mxima
utilizao da CPU
Processo:utilizao da CPU e E/S
Distribuio da utilizao da CPU

Algoritmo de escalonamento
Seleciona entre os processos prontos e na memria,
qual ir ganhar a CPU
O escalonamento pode ocorrer:
1. Um processo passa do estado executando para o estado espera (p.
exemplo, o processo solicita uma operao de E/S)
2. Um processo passa do estado executando para o estado pronto
3. Um processo passo do estado espera para pronto
4. Um processo finalizado

Escalonamento nas alternativas 1 e 4 denominado


no-preemptivo (nonpreemptive)
As outras opes so denominadas preemptivo
(preemptive)

Critrios para o escalonamento


Utilizao da CPU utilizar o mximo da CPU
Throughput nmero de processos finalizados em
um dado intervalo de tempo
Tempo de execuo tempo para finalizar a
execuo de um determinado processo no sistema
Tempo de espera quantidade de tempo que o
processo ficou na fila de prontos
Tempo de resposta tempo entre a requisio e a
sada do primeiro resultado (sistemas interativos)

Otimizaes

Utilizao mxima da CPU


Throughput mximo
Tempo de execuo mnimo
Tempo de espera mnimo
Tempo de resposta mnimo

FCFS (First-come, first-served)


Primeiro a chegar, primeiro a ser servido (sistemas
no preeemptivos)
Process
P1
P2
P3

Burst Time
24
3
3

A ordem de chegada dos processos P1, P2, P3. O grfico de


Gantt para esse algoritmo :
P1
0

P2
24

P3
27

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


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

30

FCFS(2)
Considerando a ordem de chegada P2, P3, P1
O grfico de Gantt
P2
0

P3
3

P1
6

30

Tempo de espera P1 = 6; P2 = 0; P3 = 3
Tempo mdio de espera: (6 + 0 + 3)/3 = 3
Melhor desempenho que o caso anterior
Efeito comboio: todos os processos menores ficam
esperando pelo processo maior utilizar a CPU

SJF (Shortest Job First)


Menor tarefa primeiro
Cada processo associado com o tempo de utilizao
da CPU (normalmente derivado das execues
anteriores)
Dois esquemas:
No preeemptivo quando um processo ganha a CPU ele
executado at o fim do perodo de utilizao da CPU
Preemptivo se um processo chega com o tempo de
durao da CPU menor que o tempo restante que do
processo em execuo, o escalomanento realizado.
Shortest-Remaining-Time-First (SRTF)

SJF fornece o menor tempo mdio de espera para


um dado conjunto de processos (soluo tima)

SJF no preemptivo
Process
P1
P2
P3
P4

Arrival Time
0.0
2.0
4.0
5.0

P1
0

Burst Time
7
4
1
4

P3
7

P2
8

P4
12

16

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

SJF preemptivo
Process
P1
P2
P3
P4

P1
0

Arrival Time
0.0
2.0
4.0
5.0

P2
2

P3
4

P2
5

Burst Time
7
4
1
4

P4
7

P1
11

16

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

Determinando o tempo de uso da


CPU de um processo
Estimativas
Normalmente baseadas nos ciclos de execuo
anteriores, utilizando a mdia exponencial
1. t n actual length of n th CPU burst
2. n 1 predicted value for the next CPU burst
3. , 0 1
4. Define :

n1 tn 1 n .

= controla o peso da ltima execuo sobre as


execues passadas

Predio do tempo de execuo

Utilizando a mdia exponencial


=0
n+1 = n
A histria recente no considerada

=1
n+1 = tn
Somente a ltima execuo considerada

Expandindo a formula:
n+1 = tn+(1 - ) tn -1 +
+(1 - )j tn -j +
+(1 - )n +1 0

Desde que E (1 - ) so menores que 1, cada item


um peso menor que o seu predecessor

Escalonamento por prioridades


Cada processo tem uma prioridade associada (valor inteiro)
Ganha a CPU o processo com maior prioridade (normalmente,
menor valor = maior prioridade)
Preemptivo
No preemptivo

SJF um algoritmo baseado em prioridades, onde a prioridade


do processo a estimativa do tempo de uso da CPU
Problema Starvation (abandono de processos)processos de
baixa prioridade podem no ganhar a CPU
Soluo Aging (envelhecimento) durante a execuo do
sistema, processos vo ganhando maior prioridade

Round Robin (RR)


Alocao circular
Cada processo ganha um pequeno tempo de
CPU (na ordem de milissegundos)
denominado quantum
Cada processo ganha uma quantidade q de
utilizao da CPU
q grande: FCFS (todos os processos executam at
o FIM)
q pequeno: haver desperdcio devido ao tempo
necessrio para a troca de contexto

Simulao do escalonamento RR
Process
P1
P2
P3
P4

Burst Time
53
17
68
24

Grfico de Gantt:
P1
0

P2
20

37

P3

P4
57

P1
77

P3
97 117

P4

P1

P3

P3

121 134 154 162

Normalmente, o throughput menor, porm com um


melhor tempo de resposta

Exerccio
Calcular o tempo mdio de processamento
para os seguintes processos utilizando a
poltica de alocao circular (RR), para q =1,
2, 3, 4, 5, 6
Processo

Tempo

P1

P2

P3

P4

Escalonamento com mltiplas filas


A fila de prontos separada em vrias filas:
fila para processos interativos
fila para processos em lote

Cada fila tem sua poltica de escalonamento


RR para processos interativos
FCFS para processos em lote

Deve haver um escalonamento entre as filas


Prioridade: primeiro a fila de processos interativos
(possibilidade de abandono de processos (starvation)
Fatia de tempo para cada fila

Mltiplas filas e transferncia entre


filas
Processos podem ser transferidos de fila
Envelhecimento (aging): processo vai ganhando
prioridade com o tempo
Escalonador com mltiplas filas pode ser definido
atravs dos seguintes parmetros:

Nmero de filas
Algoritmos de escalonamento para cada fila
Mtodo utilizado para aumentar a prioridade do processo
Mtodo utilizado para diminuir a prioridade do processo
Mtodo utilizado para determinar qual fila o processo ficar
quanto o mesmo solicita um servio

Escalonamento com mltiplas filas

Escalonamento em
multiprocesadores
Escolher qual processo pronto vai executar em
qual CPU
Simtrico
Todas as estruturas de dados so acessadas por
todos os processadores

Assimtrico
Somente um processador tem acesso a estrutura de
dados do ncleo

Escalonamento no Linux (at 2.6)


Dois algoritmos: tempo compartilhado e tempo real
Tempo compartilhado
Baseado em prioridades(crditos) o processo com mais
crdito escalonado
O crdito subtrado quando um interrupo ocorre
Quando crdito= 0, outro processo escolhido
Quando todos os processos tem crdito= 0, um novo
clculo dos crditos realizado
Baseado em fatores como prioridade e histrico

Tempo real
Soft real-time
Duas classes de algoritmos
FCFS e RR
O processo de mais alta prioridade sempre executa

Escalonamento no Linux (a partir


2.6)
CFS: Completely Fair Scheduler
Modela uma CPU ideal (todos os processos
ganham a quantidade de tempo que precisam para
executar)
Wait_runtime: tempo em que o processo esperou
para ganhar a CPU. Idealmente 0
Os processos so organizados em uma rvore
rubro-negra
Ordenados pela tempo que elas devem ganhar a CPU
Resoluo em nanosegundos

Você também pode gostar