Você está na página 1de 16

Sistemas Operacionais

Escalonamento de Processos
Francisco Jose da Silva e Silva
Grupo de Pesquisa em Sistemas Distribudos (GSD)
Departamento de Inform
atica / UFMA
http://www.lsd.ufma.br

20 de agosto de 2009

Francisco Silva (UFMA/GSD)

Sistemas Operacionais

20 de agosto de 2009

1 / 16

FCFS - First-come, First-served

Nao preemptiva;
Empregada normalmente em sistemas do tipo lote;
Gerenciada atraves de uma fila utilizando FIFO (First In First Out);
O tempo medio de espera nesta poltica e alto.

Francisco Silva (UFMA/GSD)

Sistemas Operacionais

20 de agosto de 2009

2 / 16

FCFS - First-come, First-served

Processo
P1
P2
P3

Burst Time
24
3
3

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


No entanto, se a ordem de chegada dos processos fosse P2,P3,P1 o
tempo medio de espera seria: (6 + 0 + 3) 3 = 3.

Francisco Silva (UFMA/GSD)

Sistemas Operacionais

20 de agosto de 2009

3 / 16

SJF - Shortest Job First


Quando a UCP estiver disponvel, ela e alocada ao processo cujo pr
oximo
burst time seja o menor entre os processos ativos. Exemplo:
Processo Burst Time
P1
6
P2
8
P3
7
P4
3
Neste caso, o pr
oximo processo a ganhar o processador seria P4;
O tempo medio de espera e: (3 + 16 + 9 + 0) 4 = 7. Usando-se
FCFS este tempo seria de 10,25.

Francisco Silva (UFMA/GSD)

Sistemas Operacionais

20 de agosto de 2009

4 / 16

SJF - Shortest Job First


Fornece o menor tempo medio de espera possvel entre os processos
ativos;
Problema: dificuldade de se descobrir qual ser
a o tempo que o
processo que recebera a UCP passar
a ocupando este recurso;
Normalmente adota-se a media dos u
ltimos CPU burst do processo
como forma de previs
ao.
Pode ser implementada de forma preemptiva ou nao:
Preemptiva:
1

Quando um novo processo entrar para a fila dos prontos para executar
verifica-se se o seu burst e menor que o restante do burst do processo
atualmente em execuc
ao;
Se for, o processo em execuc
ao e interrompido para dar lugar ao novo
processo.

Nao preemptiva: deixaria que o processo em execucao terminasse seu


CPU burst.
Francisco Silva (UFMA/GSD)

Sistemas Operacionais

20 de agosto de 2009

5 / 16

SJF - Shortest Job First

Processo
P1
P2
P3
P4

Tempo de Chegada
0
1
2
3

Burst Time
8
4
9
5

A versao preemptiva do algoritmo geraria um tempo medio de espera


de ((10 1) + (1 1) + (17 2) + (5 3)) 4 = 6, 5.
Ja na versao nao preemptiva ele seria de 7,75.

Francisco Silva (UFMA/GSD)

Sistemas Operacionais

20 de agosto de 2009

6 / 16

Escalonamento por Prioridade


A prioridade e normalmente uma faixa de n
umeros inteiros como, por
exemplo, de 0 a 500;
Alguns sistemas utilizam o zero como sendo a maior prioridade
enquanto outros o utilizam como a menor prioridade;
Definindo prioridade:
Internamente: o sistema operacional utiliza valores mensuraveis para
definir a prioridade do processo. Utiliza-se, por exemplo, limites de
tempo, requisitos de memoria, n
umero de arquivos abertos, etc.
Externamente: sao aquelas atribudas por criterios externos ao sistema
operacional como a importancia do processo, o departamento
responsavel por sua execucao, etc.

Problema: postergacao indefinida, que pode ser gerada por processos


de alta prioridade que podem impedir que processos pouco prioritarios
sejam executados;
Prevencao: aging: a prioridade dos processos e aumentada
`a medida que eles esperam pela UCP.
Francisco Silva (UFMA/GSD)

Sistemas Operacionais

20 de agosto de 2009

7 / 16

Escalonamento por Prioridade

Processo
P1
P2
P3
P4
P5

Burst Time
10
1
2
1
5

Prioridade
3
1
3
4
2

Tempo medio de espera: (6 + 0 + 16 + 18 + 1) 5 = 8, 2.

Francisco Silva (UFMA/GSD)

Sistemas Operacionais

20 de agosto de 2009

8 / 16

Escalonamento Circular (round-ribon)


Reparte uniformemente o tempo do processador entre todos os
processos prontos para execuc
ao;
Projetada para sistemas de tempo compartilhado;
Processos sao organizados numa fila circular, alocando a cada um
uma fatia de tempo do processador (time slice) Q toda vez que o
processo receber a UCP;
Quando existirem muitas tarefas ativas e de longa duracao no
sistema, tarefas curtas ter
ao seu tempo de resposta degradado porque
as tarefas longas reciclar
ao continuamente na fila circular,
compartilhando de maneira equitativa o processador com as tarefas
curtas;
O tempo medio de espera e normalmente alto.

Francisco Silva (UFMA/GSD)

Sistemas Operacionais

20 de agosto de 2009

9 / 16

Escalonamento Circular (round-ribon)

Considere o exemplo a seguir no qual todos os processos chegaram no


tempo 0:
Processo Burst Time
P1
24
P2
3
P3
3
Tempo medio de espera: ((10 4) + 4 + 7) 3 = 5, 66.

Francisco Silva (UFMA/GSD)

Sistemas Operacionais

20 de agosto de 2009

10 / 16

Escalonamento Circular (round-ribon)

Quanto tempo dar aos processos?


1

Se Q for muito grande, cada processo recebe mais tempo do que


necessita para executar de forma que a poltica de escalonamento
circular se degenera a FIFO;

Se Q for muito pequena, a troca de contexto se torna uma sobrecarga


chegando ao ponto em que o sistema perde mais tempo trocando o
processo a ser executado do que executando processos dos usuarios.

Francisco Silva (UFMA/GSD)

Sistemas Operacionais

20 de agosto de 2009

11 / 16

Escalonamento em Multiplas Filas com Diferentes


Prioridades

Francisco Silva (UFMA/GSD)

Sistemas Operacionais

20 de agosto de 2009

12 / 16

Escalonamento em Multiplas Filas com Diferentes


Prioridades

Cada fila possui seu pr


oprio algoritmo de escalonamento;
Por exemplo, filas distintas podem ser utilizadas para processos em
background ou foreground. A fila foreground pode utilizar o
escalonamento circular enquanto que background utiliza o FCFS;
Cada fila pode possuir prioridade absoluta sobre as filas de menor
prioridade ou o tempo do processador pode ser compartilhado entre
elas. Por exemplo, a fila foreground pode receber 80% do tempo do
processador enquanto que background recebe 20%.

Francisco Silva (UFMA/GSD)

Sistemas Operacionais

20 de agosto de 2009

13 / 16

Escalonamento em Cascata

No escalonamento em m
ultiplas filas com diferentes prioridades um
processo uma vez atribudo a uma fila permanece na mesma ate seu
termino;
No escalonamento em cascata os processos podem ser movido entre
filas;
A ideia e separar os processos que possuem diferentes caractersticas
de uso da UCP;
Normamente prioriza processos I/O bound e interativos;
Utiliza-se a tecnica do aging para prevenir postergacoes indefinidas.

Francisco Silva (UFMA/GSD)

Sistemas Operacionais

20 de agosto de 2009

14 / 16

Escalonamento em Cascata

Francisco Silva (UFMA/GSD)

Sistemas Operacionais

20 de agosto de 2009

15 / 16

Escalonamento em sistema multiprocessados: Abordagens

Prover uma fila de processos prontos para executar para cada


processador. Desvantagem: um processador pode ficar desocupado
(por ter sua fila vazia) enquanto outros podem estar sobrecarregados
com muitos processos.
Uma fila u
nica de processos compartilhada por todos os
processadores. Nesta abordagem, pode-se seguir dois caminhos:
1

Multiprocessamento simetrico: todos os processadores sao responsaveis


pelo escalonamento de processos. Cada processador examina a fila e
seleciona um processo para executar. Deve-se tomar cuidado de se
sincronizar o uso concorrente da fila de processos pelos processadores;
Multiprocessamento assimetrico: define-se um processador como
escalonador criando uma estrutura mestre-escravo.

Francisco Silva (UFMA/GSD)

Sistemas Operacionais

20 de agosto de 2009

16 / 16

Você também pode gostar