Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS...

50
Sistemas Operacionais Escalonamento de processos 1

Transcript of Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS...

Page 1: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Sistemas

Operacionais

Escalonamento de processos

1

Page 2: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Escalonamento de Processos

Sistemas Interativos Algoritmos para Sistemas Interativos:

First-Come-First-Served (FIFO)

Round-Robin;

Prioridade;

Múltiplas Filas;

Utilizam escalonamento em dois níveis (escalonador da

CPU e memória);

2

Page 3: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Escalonamento de Processos

Algoritmos de escalonamento podem ser divididos em duas categorias dependendo de como essa interrupção de clock é tratada:

Preemptivo: estratégia de suspender o processo sendo executado;

Não-preemptivo: estratégia de permitir que o processo sendo executado continue sendo executado até ser bloqueado por alguma razão (semáforos, operações de E/S-interrupção);

3

Page 4: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Escalonamento de Processos

Categorias de Ambientes:

Sistemas em Batch: usuários não esperam por respostas rápidas; algoritmos preemptivos ou não-preemptivos;

Sistemas Interativos: interação constante do usuário; algoritmos preemptivos; Processo interativo espera comando e executa comando;

Sistemas em Tempo Real: processos são executados mais rapidamente; tempo é crucial sistemas críticos;

4

Page 5: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

5

Escalonamento de Processos

Características de algoritmos de

escalonamento:

Sistemas em Batch:

Taxa de execução (throughput): máximo número de jobs

executados por hora;

Turnaround time: tempo no qual o processo espera sua

resposta (para ser executado);

Eficiência: CPU deve estar 100% do tempo ocupada;

Sistemas Interativos:

Tempo de resposta : tempo esperando respostas;

Satisfação do usuários;

Page 6: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

6

Escalonamento de Processos

Características de algoritmos de

escalonamento:

Sistemas em Tempo Real:

Prevenir perda de dados;

Previsibilidade: prevenir perda da qualidade dos

serviços oferecidos;

Page 7: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

7

Escalonamento de Processos Escalonamento Three-Level (três níveis)

Normalmente todos os processos estão na

memória principal

Suponha:

processos na memória principal + processos no disco

Chaveamento de processos que estão no disco

requer mais tempo 1 ou 2 ordens de

grandeza

Utilizado em Sistemas em Batch;

Page 8: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

8

Escalonamento de Processos

Escalonamento Three-Level

Subconjunto dos processos Memória

Principal (MP);

Escalonador se restringe a esses processos;

Periodicamente um escalonador da CPU é

acionado para remover processos da MP;

Page 9: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

9

Escalonamento de Processos

Escalonamento Three-Level

RAM

Escalonador da CPU *

Disco

Fila de entrada

Novo processo

Escalonador

Da Memória

Escalonador

de Admissão

CPU

Page 10: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

10

Escalonamento de Processos

Escalonamento Three-Level Escalonador de admissão: processos menores

primeiro; processos com menor tempo de acesso à CPU e maior tempo de interação com dispositivos de E/S;

Escalonador da Memória: decisões sobre quais processos vão para a MP: A quanto tempo o processo está esperando?

Quanto tempo da CPU o processo utilizou?

Qual o tamanho do processo?

Qual a importância do processo?

Escalonador da CPU: seleciona qual o próximo processo a ser executado;

Page 11: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

First-Come-First-Served (FIFO)

Não preemptivo por definição

Primeiro processo da fila é o primeiro a ser executado

Processos usam a CPU até terminar todo

processamento

Mesmo com alguma intercalação, processos com

menor prioridade podem prejudicar processos com

maior prioridade

Desvantagem:

Ineficiente quando se tem processos que demoram

na sua execução;11

Page 12: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

First-Come-First-Served (FIFO)

Interrupção qualquer

(semáforo, E/S)

CPU

0Fila de entrada

23 1

12

Page 13: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

First-Come-First-Served (FIFO)

CPU

1Fila de entrada

30 2

13

Page 14: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Shortest-Job-First

Pode ser preemptiva ou não-preemptiva

Cada processo é associado ao seu tempo de uso do

processador

Escalonado o processo com o menor tempo de CPU

privilegiam processos menores

reduzem o tempo médio de espera na fila de

prontos

Problema:

Como determinar quanto tempo de CPU será

necessário?14

Page 15: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Shortest-Job-First

Tanto o escalonamento FIFO quanto o SJF não são

utilizados em sistemas de time-sharing (por quê ?)

p1 p2 p3 p4

t = 6 t = 8 t = 7 t = 3

p4 p1 p3 p2

3 9 16 240 t

15

Page 16: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Shortest-Job-First

A política SJF é ótima, minimizando o tempo

médio de espera de um conjunto de processos

Dificuldade: determinar antecipadamente o

tempo de processador de cada processo

Na prática, o tempo é estimado, é utilizada

uma aproximação

16

Page 17: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Shortest-Job-First: não preemptivo

Processo Tempo de chegada Duração da rajada

P1 0.0 7

P2 2.0 1

P3 4.0 4

P4 5.0 4

SJF (não preemptivo)

waiting time médio = (0 + 5 + 4 + 7)/4 = 4

73 160 8 12

P1 P2 P3 P4

17

Page 18: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Shortest-Job-First: preemptivo

Processo Tempo de chegada Duração da rajada

P1 0.0 7

SJF (preemptivo)

waiting time médio = (9 + 1 + 0 +2)/4 = 3

P2 2.0 4

P3 4.0 1 terminado

P4 5.0 4

terminado

0

P1

2

P2

5

P3

4 7

P2

11

P4

terminado

16

P1

terminado

18

Page 19: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Shortest-Job-First: preemptivo

?

Processo Tempo de chegada Duração da

rajada

P1 0.0

7

0

P1

SJF (preemptivo)

waiting time médio = (9 + 1 + 0 +2)/4 = 3

2

P2

P2 2.0 4

tempo restante: 5

? 5

P3 4.0 1

P3

4

tempo restante: 2

terminado

P4 5.0 4

7

P2

terminado

11

P4

terminado

16

P1

terminado

19

Page 20: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Prioridade

A cada processo é atribuída uma prioridade

O processo com maior prioridade é atribuído ao

processador

Pode ser não-preemptiva ou preemptiva

não-preemptiva: o processo libera

espontaneamente o processador

preemptiva : o processo executando é

interrompido caso chegue à fila de prontos um

processo com maior prioridade

20

Page 21: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Prioridade

Atribuição de prioridades

estática: o processo tem uma prioridade

fixa durante o seu tempo de vida

dinâmica: prioridade muda ao longo do

tempo de vida do processo, de acordo com

o seu comportamento

21

Page 22: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

1

2

3

4mais alta

mais baixa

prioridade

FILAS

processos prontos

(Round-Robin)

Prioridade

22

Page 23: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Prioridade

Atribuição de prioridades normalmente é feita pelo SO

pode ser configurada pelo superusuário

processos de usuário recebem uma prioridade máxima de usuário

usuário pode diminuir a prioridade de seus processos

ex.: comando renice do Unix

Dinâmica

pode ser ajustada de acordo com

tipo de processamento realizado

a carga do SO

quando o processo passa do estado de espera para o estado executando ele é penalizado e sua prioridade é reduzida, processos

CPU bound terão suas prioridades reduzidas a cada passagem para o estado executando

I/O bound ficam em estado de espera com freqüência, processos CPU bound não serão prejudicados 23

Page 24: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Prioridade

Atribuição de prioridades normalmente é feita pelo SO

pode ser configurada pelo superusuário

processos de usuário recebem uma prioridade máxima de usuário

usuário pode diminuir a prioridade de seus processos

ex.: comando renice do Unix

Dinâmica

pode ser ajustada de acordo com

tipo de processamento realizado

a carga do SO

quando o processo passa do estado de espera para o estado executando ele é penalizado e sua prioridade é reduzida, processos

CPU bound terão suas prioridades reduzidas a cada passagem para o estado executando

I/O bound ficam em estado de espera com freqüência, processos CPU bound não serão prejudicados

Estática

é atribuída quando o processo é iniciado

não é alterada durante a existência do processo

pode oferecer tempos de resposta aceitáveis

24

Page 25: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Prioridade

Atribuição de prioridades normalmente é feita pelo SO

pode ser configurada pelo superusuário

processos de usuário recebem uma prioridade máxima de usuário

usuário pode diminuir a prioridade de seus processos

ex.: comando renice do Unix

Dinâmica

pode ser ajustada de acordo com

tipo de processamento realizado

a carga do SO

quando o processo passa do estado de espera para o estado executando ele é penalizado e sua prioridade é reduzida, processos

CPU bound terão suas prioridades reduzidas a cada passagem para o estado executando

I/O bound ficam em estado de espera com freqüência, processos CPU bound não serão prejudicados

Estática

é atribuída quando o processo é iniciado

não é alterada durante a existência do processo

pode oferecer tempos de resposta aceitáveis

Observação

SO pode associar à alta prioridade um número escalar pequeno

0 significa a maior prioridade25

Page 26: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Prioridade

Processo A

Processo B

tempo4 8 10 13 16 18 23 26 27

1u.t.

4 u.t.

B solicita

I/Opreempção

por B

4 u.t.

B solicita

I/O

2 u.t.

A solicita

I/O

3 u.t.

2 u.t.

B solicita

I/O

5 u.t.

preempção

por B

3 u.t.

B solicita

I/O

Tempo de CPU (u.t.) Característica do Processo Prioridade

Processo A 13 CPU bound 1 menor

Processo B 11 I/O bound 0 maior

26

Page 27: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Prioridade

Vantagens

é possível fazer diferenciação entre processos

adaptabilidade (prioridades dinâmicas)

Desvantagem

starvation: um processo com baixa prioridade

pode nunca ser atribuído ao processador

solução: aumentando, em intervalos regulares, a

prioridade dos processos que estão há muito tempo

esperando

27

Page 28: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Round-Robin

Escalonamento do tipo preemptivo

Cada processo executa durante uma fatia de

tempo (time-slice ou quantum)

Ao final da fatia de tempo, o processo

executando é inserido no final da fila de

prontos

Processo na frente da fila de prontos recebe o

processador28

Page 29: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Round-Robin

bcp1 bcp2 bcp3 bcp4

processo 1 executando

fatia de tempoesgotada

bcp2 bcp3 bcp4 bcp1

processo 2 executando

29

Page 30: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Round-Robin

Bom para tempo compartilhado

Similar a FIFO + tempo limite para execução (time-slice ou quantum)

terminado o quantum, o processo é devolvido (preempção) para o final da fila de prontos

processos não monopolizam a CPU

quantum entre 100 a 300 ms30

Page 31: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Round-Robin

Processo A

Processo B

tempo5 9 11 13 16 21 23 26 27

Tempo de CPU (u.t.) Característica do Processo

Processo A 15 CPU bound

Processo B 8 I/O bound

5 u.t.

termina

quantum

de A

4 u.t.

B solicita

I/O

A solicita

I/O

2 u.t.

B solicita

I/O

2 u.t.

5 u.t.

termina

quantum

de A

2 u.t.

B solicita

I/O

3 u.t.

A solicita

I/O

31

Page 32: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Round-Robin

Vantagem do escalonamento Robin Round

simplicidade

Tamanho da fatia de tempo é crucial no escalonamento circular

pequena: tempo de troca de contexto torna-se significativo

grande: aumenta o tempo de resposta dos processos no final da fila de prontos

32

Page 33: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Round-Robin

Se existem n processos na fila de prontos

Se quantum = q

cada processo tem 1/n do tempo de CPU em fatias de no máximo q unidades de tempo cada

Nenhum processo espera por mais de (n-1) q unidades de tempo para ser atendido

33

Page 34: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Round-Robin

Desempenho

quantum = muito grande

FIFO

quantum = muito pequeno

q deve ser grande comparado a

mudança de contexto, caso contrário, o

overhead é muito elevado34

Page 35: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Round-Robin

Processo Tempo de execução

P1 53

P2 17

P3 68

P4 24

Diagrama de Gantt (quantum = 20 u.t.)

Tipicamente, temos turnaround time médio maior que

na SJF, mais em compensação melhor resposta

0 20 37 57 77 97 117 121 134 154 162

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

35

Page 36: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Como um pequeno quantum de tempo aumenta as mudanças de

contexto

tamanho do processo: 10 u.t. quantum mudanças

de contexto

0 10

12 0

0 6 10

6 1

0 1 2 3 4 5 6 107 8 9

1 9

36

Page 37: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Múltiplas Filas

Política do tipo preemptiva

Prioridades são atribuídas às classes de processos

Processos das classes de maior prioridade recebem o

processador

Processos podem migrar entre classes de acordo com

seu comportamento

Vantagem: adaptabilidade de acordo com o

comportamento do processo

37

Page 38: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Múltiplas Filas

Processos são classificados em função do

tipo de processamento

Cada grupo formado fila associada

Fila de prontos associada a cada grupo

permite

aplicação de tipos de escalonamento

diferentes38

Page 39: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Múltiplas Filas

Cada fila possui uma prioridade

SO só vai escalonar processos em uma fila

se todos os processos das filas de maior

prioridade estiverem vazias

39

Page 40: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Múltiplas Filas

p = 3

p = 2

p = 0

p = 1

processos interativos

processos em batch

40

Page 41: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Fila de Processos do Sistema

Fila de Processos Batch

Fila de Processos Interativos

Maior Prioridade

Menor Prioridade

sistema

mais prioritário

algoritmo de escalonamento por prioridades

interativo

prioridade intermediária

escalonamento Round-Robin

batch

menor prioridade

usa Round-Robin ou FCFS

Exemplo

41

Page 42: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Múltiplas Filas com Realimentação

Escalonamento anterior a classificação dos processos era estática

Se processo alterar seu comportamento, o esquema pode falhar (não existe reclassificação)

Seria interessante que o SO

reconhecesse a alteração de comportamento de um processo

ajustasse dinamicamente o seu tipo de escalonamento

42

Page 43: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Múltiplas Filas com Realimentação

No escalonamento por múltiplas filas com realimentação (multi-level feed-bak queues)

é permitido que os processos sejam movimentados

entre as filas

ajuste dinâmico (mecanismo adaptativo)

processo é direcionado para uma das filas em função de seu comportamento

43

Page 44: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Múltiplas Filas com Realimentação:

Funcionamento

Criação do processo

prioridade mais alta e quantum mais baixo

Cada fila pode implementar uma política de

escalonamento diferente para chegar a CPU:

FIFO com quantum

SJF

RR

44

Page 45: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Múltiplas Filas com Realimentação:

Funcionamento

Processo é reescalonado dentro da mesma fila

quando

processo volta ao estado de pronto

sofre preempção por outro processo de uma fila

mais prioritária

Processo é direcionado para fila de menor

prioridade e maior quantum quando

processo esgota o seu quantum (sofrendo

preempção)45

Page 46: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Múltiplas Filas com Realimentação:

Funcionamento

Quanto maior a prioridade menor o quantum

Escalonamento de uma fila só acontece depois

que todas as outras filas de prioridade mais alta

estão vazias

Fila de menor prioridade Round-Robin

46

Page 47: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Múltiplas Filas com Realimentação:

Características

Atende as necessidades de escalonamento de

diversos tipos de processos

Processos I/O bound

bom tempo de resposta: maior prioridade

permanecem a maior parte do tempo nas

filas de alta prioridade

usa pouco a CPU

47

Page 48: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Múltiplas Filas com Realimentação:

Características

Processos CPU bound

com o transcorrer do processamento sua

prioridade vai sendo reduzida

É um mecanismo complexo e gera

overhead, mas os resultados são

satisfatórios

48

Page 49: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Múltiplas Filas com Realimentação:

Exemplo 1

Fila 1 (escalonamento FIFO)

Fila 2 (escalonamento FIFO)

Fila m (Round-Robin)

Maior Prioridade

Menor Prioridade Maior quantum

Menor quantum

Fila 3 (escalonamento FIFO)

preempção por término de quantum

preempção por término de quantum

...preempção por término de quantum

49

Page 50: Sistemas Operacionais I · Diagrama de Gantt (quantum = 20 u.t.) ... usa Round-Robin ou FCFS Exemplo 41 ...

Múltiplas Filas com Realimentação:

Exemplo 2

quantum = 8

quantum = 16

FCFS

50