84
Sistemas Operacionais Edeyson Andrade Gomes www.edeyson.com.br Escalonamento

SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

  • Upload
    vohanh

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Sistemas Operacionais

Edeyson Andrade Gomeswww.edeyson.com.br

Escalonamento

Page 2: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Roteiro da Aula

� Escalonamento de Processos� Metas� Algoritmos

� FIFO� SJF� SJF� Prioridades

Escalonamento de Processos www.edeyson.com.br2

Page 3: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

� Algoritmo de Escalonamento de CPU� Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU

Executando

Terminado

4

2

6

Definição

� Executado quando ocorre estouro de Quantum ou interrupção do processo (I/O, Evento, Sinal, etc.) ou o processo acaba

� Transições 3, 4 e 6

Bloqueado Pronto

Iniciando5

3

1

Escalonamento de Processos www.edeyson.com.br3

Page 4: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonador de Processos

� Sistema Multiprogramado ou Multiprocessado� Processos no estado de Pronto concorrem pela CPU

� SO necessita de critério de escolha dos processos para execução

� Política de Escalonamento

Escalonamento de Processos www.edeyson.com.br4

� Critérios mudam com características dos Processos� Batch, CPU Bound, I/O Bound, Interativos

Page 5: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonador de Processos

� Sem multiprogramação� Tempo Total de Execução = 10 unidades de tempo (ut)

� Throughput = 0,2 p/ut (No. Processos Executados por ut)

� ∆t P0 = 5ut ∆t P1 = 10ut (∆t = Tempo Total)

� Tempo médio de execução = 7,5 ut = (∆t P0 + ∆t P1) / 2

� Utilização da CPU = 60 % (Desprezando-se tempo de Kernel)40% de I/O� 40% de I/O

Escalonamento de Processos www.edeyson.com.br5

CPU

0

I/O

1

CPU

2

I/O

3

CPU

4

CPU

5

I/O

6

CPU

7

I/O

8

CPU

9 10

P0

P1

Page 6: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonador de Processos

� Com multiprogramação� Tempo Total de Execução = 6 ut� Throughput = 0,33 (No. Processos / ut)� ∆t P1 = 5ut ∆t P2 = 6ut (∆t = Tempo Total)� Tempo médio de execução = 5,5 ut� Utilização da CPU = 100 %

Desprezando-se tempo de Kernel� Desprezando-se tempo de Kernel

Escalonamento de Processos www.edeyson.com.br6

CPU

0

I/O

1

CPU

2

I/O

3

CPU

4

CPU I/O CPU I/O CPU

5 6

P0

P1

Page 7: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Metas do Escalonamento

� Eficiência� Manter a CPU ocupada 100% do tempo

� Throughput� Maximizar o número de processos (tarefas, jobs) executados em um dado intervalo de tempo

Turnaround� Turnaround� Minimizar o tempo de um processo no sistema, desde seu início até o término� Tempo médio de execução� Fundamental a processos Batch

Escalonamento de Processos www.edeyson.com.br7

Page 8: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Metas do Escalonamento

� Igualdade� Todo Processo tem direito de ocupar a CPU

� Tempo de resposta� Minimizar o tempo decorrido entre a submissão de um pedido e a resposta � Minimizar o tempo decorrido entre a submissão de um pedido e a resposta produzida num processo interativo

Escalonamento de Processos www.edeyson.com.br8

Page 9: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Conflito entra Metas

� Atender a uma meta pode prejudicar outra� Qualquer algoritmo de escalonamento favorecerá um tipo de processo (CPU Bound, I/O Bound, Tempo Real, etc) em detrimento de outros

� Propósito Geral

Escalonamento de Processos www.edeyson.com.br9

Page 10: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Tipos de Escalonamento

� Dois tipos:� Escalonamento não-preemptivo;� Escalonamento preemptivo.

Escalonamento de Processos www.edeyson.com.br10

Page 11: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento

� Conceitos Básicos� Multiprogramação visa maximizar a utilização da CPU

� Processos têm surtos de CPU e I/O� Processos têm surtos de CPU e I/O

Escalonamento de Processos www.edeyson.com.br11

Page 12: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento

Escalonamento de Processos www.edeyson.com.br12

Page 13: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento

� Curva de freqüência da duração dos surtos de CPU� Muitos surtos curtos

� Poucos surtos longos

Escalonamento de Processos www.edeyson.com.br13

Page 14: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento

Escalonamento de Processos www.edeyson.com.br14

Page 15: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento

� Escalonador de CPU ou de Curto Prazo� Seleciona processo pronto para CPU não ficar ociosa

� Algoritmo para seleção do processo pronto� Algoritmo para seleção do processo pronto� FIFO, com prioridade, árvore, etc

Escalonamento de Processos www.edeyson.com.br15

Page 16: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento

� Escalonador de CPU (Curto Prazo ou Baixo Nível)� Transições de Estado para processos na Memória

� Acionamento do escalonador1. Processo em execução para bloqueado/espera

2. Processo em execução para pronto

3. Processo em execução termina

Escalonamento de Processos www.edeyson.com.br16

3. Processo em execução termina

� CPU Livre

1. Processo em espera para pronto

2. Processo de Pronto para Execução

Page 17: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento

� Escalonador de CPU ou de Curto Prazo� Escalonamento Não-Preemptivo

� Escalonamento Cooperativo

� Processo mantém a CPU até terminar, executar um I/O ou ocorrer uma interrupção no sistema

Não requer recursos especiais de hardware

Escalonamento de Processos www.edeyson.com.br17

� Não requer recursos especiais de hardware

� Usado até o Windows 95

� Não existe Quantum� Devolução voluntária do controle ao S.O.

Page 18: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento

� Escalonador de CPU ou de Curto Prazo� Escalonamento Preemptivo

� Requer temporizador na CPU�Fatia de Quantum�Uso do Clock�Uso do Clock

� Requer suporte do SO para coordenar acesso a dados compartilhados de forma consistente�Proteção

Escalonamento de Processos www.edeyson.com.br18

Page 19: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento

� Dispatcher e Latência � Px Estoura tempo de Quantum� Troca de contexto� Interrupção de Clock

� Firmware

Escalonamento de Processos www.edeyson.com.br19

Firmware�Modo Kernel (instruções privilegiadas)�SO

� Mudança do modo de operação para Usuário� Reinício do programa na posição correta

Page 20: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento FIFO

� First Come First Served (FCFS, FIFO, PEPS)� Não preemptivo

Terminado

6

Processo Início Duração (ut)

Executando

Bloqueado Pronto

P1, P2, P3

4

5

2

3

1

Escalonamento de Processos www.edeyson.com.br20

Processo Início Duração (ut)

P1 0 24

P2 0 3

P3 0 3

Page 21: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento FIFO

�Ordem de chegada dos processos:P1 , P2 , P3

�Diagrama de Gantt

Escalonamento de Processos www.edeyson.com.br21

P1 P2 P3

24 27 300

Page 22: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento FIFO

Throughput = 0,1 (3/30)

� Tempos de esperaP1 = 0

P2 = 24

P3 = 27

Dica: Tempo de Espera é o tempo que o processo passa no estado de Pronto.

Tempo médio de espera

Escalonamento de Processos www.edeyson.com.br22

Throughput = 0,1 (3/30)� Tempo médio de espera(0 + 24 + 27) / 3 = 17

Page 23: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento FIFO

Throughput = 0,1 (3/30)

� Tempos de saídaP1 = 24

P2 = 27

P3 = 30

Tempo médio de saída

Escalonamento de Processos www.edeyson.com.br23

Throughput = 0,1 (3/30)� Tempo médio de saída(24 + 27 + 30) / 3 = 27

Page 24: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento FIFO

� Outra ordem de chegada

P2 , P3 , P1

� Diagrama de Gantt� Diagrama de Gantt

Escalonamento de Processos www.edeyson.com.br24

P1P3P2

63 300

Page 25: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento FIFO

� FIFO ordenado (SJF / MPP)� Menor Processo Primeiro

� Menor = menor tempo de execução

� Tempos de esperaTEP1 = 6; TEP2 = 0; TEP3 = 3

� Tempo médio de espera melhora

Escalonamento de Processos www.edeyson.com.br25

(6 + 0 + 3) / 3 = 3

� Tempo médio de espera não é mínimo� Pode variar muito (com os surtos de CPU)

� Efeito Comboio� Processos I/O bound esperam por CPU bound

Page 26: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento FIFO

� Tempos de saídaP1 = 30; P2 = 3; P3 = 6

� Tempo médio de saída melhora(30 + 3 + 6) / 3 = 13

� Tempo médio de saída não é mínimoTempo médio de saída não é mínimo� Pode variar muito (com os surtos de CPU)

Escalonamento de Processos www.edeyson.com.br26

Page 27: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento SJF

� Shortest-Job-First (Menor Job Primeiro)� Deveria ser “próximo surto de CPU menor primeiro”

PID Início Duração de surto

Usado para Processos

Escalonamento de Processos www.edeyson.com.br27

P1 0 6

P2 0 8

P3 0 7

P4 0 3

Usado para Processos

Batch.

Sua execução diária

permite determinar seu

tempo total.

Page 28: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento SJF

�Tempos de espera

P1 = 3; P2 = 16; P3 = 9; P4 = 0

Escalonamento de Processos www.edeyson.com.br28

P1 P3 P2

3 160

P4

9 24

Page 29: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento SJF

�Tempo médio de espera melhora

(3 + 16 + 9 + 0) / 4 = 7

Para FIFO, nesta situação, seria 10,25 = (0+ 6+14+21)/4

�Tempo médio de espera é mínimo�Tempo médio de espera é mínimo

– Algoritmo considerado ótimo

Escalonamento de Processos www.edeyson.com.br29

Page 30: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento SJF

� Problema: determinação da duração do próximo surto de CPU é impossível� SJF é usado para escalonamento de jobs em sistemas batch� Usuário especifica o tempo de CPU do job� Usuário especifica o tempo de CPU do job

� Em escalonamento de CPU é usada estimativa� Baseada na duração dos surtos anteriores

�Média exponencial

Escalonamento de Processos www.edeyson.com.br30

Page 31: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Preempção em SJF

� Não preemptivo� Processo usa CPU até completar surto

� PreemptivoPreemptivo� Novo processo pronto com surto previsto (TA)� Tempo restante previsto para o processo em execução (TB)� Se TA <TB⇒⇒⇒⇒ preempção por prioridade� Shortest-Remaining-Time-First (SRTF)

Escalonamento de Processos www.edeyson.com.br31

Page 32: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Preempção em SJF

Executando

Pb (Tb)

Terminado

4

6

Executando

Pa (Ta)

Terminado

4

6Ta < Tb

BloqueadoPronto

Pa (Ta)

Ini

4

5

2

3

1

BloqueadoPronto

Pb (Tb)

Ini

4

5

2

3

1

Escalonamento de Processos www.edeyson.com.br32

Page 33: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Preempção em SJF

Processo Instante de chegada Duração de surto

P1 0 7

P2 2 4P2 2 4

P3 4 1

P4 5 4

Escalonamento de Processos www.edeyson.com.br33

Page 34: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Preempção em SJF

� SJF não preemptivo� Tempo de espera médio = (0 + 6 + 3 + 7) / 4 = 4

� TEP1 = 0 TEP2 = 6 (8 - 2)

� TEP3 = 3 TEP4 = 7

Escalonamento de Processos www.edeyson.com.br34

P1 P3 P2

73 160

P4

8 12

Page 35: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Preempção em SJF

� SJF não preemptivo� Tempo de saída médio = (7 + 10 +4 + 11) / 4 = 8

� TSP1 = 7 TSP2 = 10

� TSP3 = 4 TSP4 = 11

Escalonamento de Processos www.edeyson.com.br35

P1 P3 P2

73 160

P4

8 12

Page 36: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Tabela de Estados

Tempo PR EX TER

0 P1 (7)

0 P1 (7)

2 P2 (4) P1 (5) TP2 < TP1 => Preempção

2 P1(5) P2(4)

4 P3(1), P1(5) P2(2) TP3 < TP2 => Preempção

4 P2(2), P1(5) P3(1)

5 P2(2), P4(4), P1(5) P3 Escalonador por Término de P3

5 P4(4), P1(5) P2(2)

7 P4(4), P1(5) P2

7 P1(5) P4(4)

11 P1(5) P4

11 P1

16 P1

Escalonamento de Processos www.edeyson.com.br36

Page 37: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Preempção em SJF

� SJF preemptivo� Tempo de espera médio = (9 + 1 + 0 +2) / 4 = 3

� TEP1 = 9 TEP2 = 1

� TEP3 = 0 TEP4 = 2

Escalonamento de Processos www.edeyson.com.br37

P1 P3P2

42110

P4

5 7

P2 P1

16

Page 38: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Preempção em SJF

� SJF preemptivo� Tempo de saída médio = (16 + 5 + 1 + 6) / 4 = 7

� TSP1 = 16 TSP2 = 5

� TSP3 = 1 TSP4 = 6

Escalonamento de Processos www.edeyson.com.br38

P1 P3P2

42110

P4

5 7

P2 P1

16

Page 39: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Preempção em SJF

PID Chegada Tempo CPU

1 0 15

2 5 5

3 10 10

4 20 4

Tempo PR EX TER

0 P1(15)0 P1(15)

0 P1(15)

5 P2(5) P1(10)

5 P1(10) P2(5)

10 P1(10), P3(10) P2

10 P3(10) P1(10)

20 P4(4), P3(10) P1

20 P3(10) P4(4)

24 P3(10) P4

24 P3(10)

34 P3

Escalonamento de Processos www.edeyson.com.br39

Page 40: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Preempção em SJF

PID Chegada Tempo de Surto de CPU

1 0 7

2 2 4

3 4 1

4 5 4

Tempo PR EX TER

0 P1 (7)

0 P1(7)0 P1(7)

2 P2(4) P1(5)

2 P1(5) P2(4)

4 P3(1), P1(5) P2(2)

4 P2(2), P1(5) P3(1)

5 P2(2), P4(4), P1(5) P3

5 P4(4), P1(5) P2(2)

7 P4(4), P1(5) P2

7 P1(5) P4(4)

11 P1(5) P4

11 P1(5)

16 P1

Escalonamento de Processos www.edeyson.com.br40

Page 41: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento Round Robin

� Round-Robin (revezamento circular)� Sistema Preemptivo

� Interrupção do Clock (existe Quantum)

� Tempo de espera médio é longo

� Tempo de saída maior que SJF

� Tempo de resposta melhor que SJF� Tempo de resposta melhor que SJF

Escalonamento de Processos www.edeyson.com.br41

Page 42: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento Round Robin

� Preemptivo� Quantum de tempo (10 ~ 100 ms)

� Necessita temporizador

� Fila circular de processos prontos

� Com quantum q e n+1 processos prontos:� Tempo máximo de espera: n*q� Tempo máximo de espera: n*q

Escalonamento de Processos www.edeyson.com.br42

Page 43: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento Round Robin

� Com quantum q e n+1 processos prontos:� Tempo máximo de espera: n*q

� Suponha uma fila de pronto com 101 processos, Quantum de 100 ms

� Um processo interativo executa, faz uma requisição, vai para � Um processo interativo executa, faz uma requisição, vai para bloqueado e de lá para o fim da fila� Quando a resposta será entregue ao usuário do processo interativo?

Escalonamento de Processos www.edeyson.com.br43

Page 44: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento Round Robin

Processo Início Duração de

surto

P1 0 24

P 0 3

Exemplo com quantum de 4 UT

TEP1 = 6 TEP2 = 4 TEP3 = 7

Tempo médio de espera: 17 / 3 = 5,66 UTP2 0 3

P3 0 3

Escalonamento de Processos www.edeyson.com.br44

Tempo médio de espera: 17 / 3 = 5,66 UT

Page 45: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento Round Robin

Processo Início Duração de

surto

P1 0 24

P 0 3

Exemplo com quantum de 4 ms

TEP1 = 6 TEP2 = 4 TEP3 = 7

Tempo médio de espera: 17 / 3 = 5,66 msP2 0 3

P3 0 3

Escalonamento de Processos www.edeyson.com.br45

40 14 307 10 18 22 26

P3P1 P2 P1 P1 P1 P1 P1

Tempo médio de espera: 17 / 3 = 5,66 ms

Page 46: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento Round Robin

� Desempenho � Depende do quantum (q)

� q grande ⇒ FCFS/FIFO (Fila)

� q pequeno ⇒ Compartilhamento de processador

� Efeito da troca de contexto� q deve ser grande em relação ao tempo da troca de contexto para

Escalonamento de Processos www.edeyson.com.br46

� q deve ser grande em relação ao tempo da troca de contexto para evitar aumento de overhead

Page 47: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento Round Robin

Escalonamento de Processos www.edeyson.com.br47

Page 48: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento Round Robin

� Tempo de retorno x Tamanho do quantum� Tempo de retorno não melhora sempre com aumento do quantum

� Há melhora quando processos acabam com surto de 1q» Exemplo: 3 processos com 10 ms:

� Quantum 1 ms ⇒ tempo de saída médio 29 ms

Escalonamento de Processos www.edeyson.com.br48

� Quantum 1 ms ⇒ tempo de saída médio 29 ms

� Quantum 10 ms ⇒ tempo de saída médio 20 ms

� Sem considerar tempo para troca de contexto

� Regra geral: 80% dos surtos devem ser menores que 1q

Page 49: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento Round Robin

» Exemplo: 3 processos com 10 ms:� Quantum 1 ms ⇒ tempo de saída médio 29 ms

� Quantum 10 ms ⇒ tempo de saída médio = 20 ms

P1 P2 P3

0 1

TS1 = 28 TS2=29 TS3 = 30

::Com 201 processos na fila o

TR = 200ms = 0,2 seg1 2 2 3 3 4 4 5 5 6 ... 27 28 28 29 29 30

P1 P2 P3 P1 P2 P3

� Quantum 10 ms ⇒ tempo de saída médio = 20 ms

� Sem considerar tempo para troca de contexto� Se o Quantum = 100ms, o TR seria de 20 seg para 201 processos na fila

Escalonamento de Processos www.edeyson.com.br49

P1 P2 P3

0 10 10 20 20 30

TS1 = 10 TS2=20 TS3 = 30

::Com 201 processos na fila o

TR = 2000 ms = 2 seg

Page 50: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Exercício

Determine a Tabela de Troca de Estados para os seguintesdados, usando Round Robin:

PID Chegada TempoPID Chegada Tempo

1 0 32Quantum =

6ms

2 0 18

3 0 12

Escalonamento de Processos www.edeyson.com.br50

Page 51: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento Round Robin

Escalonamento de Processos www.edeyson.com.br51

Page 52: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento por Prioridade

� Cada processo tem uma prioridade� Número inteiro dentro de limites

� Faixas 0 a 7 ou 0 a 4095

� Menor (ou maior) número ⇒ maior prioridade� Empate ⇒ FCFS

� SJF é um caso especial de prioridade� SJF é um caso especial de prioridade

Escalonamento de Processos www.edeyson.com.br52

Page 53: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento por Prioridade

� Prioridade definida interna ou externamente

� Preemptivo ou não preemptivo

� Starvation – Estagnação� Bloqueio por tempo indefinido

� Solução: aging (envelhecimento)Solução: aging (envelhecimento)

Escalonamento de Processos www.edeyson.com.br53

Page 54: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento por Múltiplas Filas

� Classificação dos processos em grupos� Primeiro plano (foreground): interativos

� Segundo plano (background): batch

� Filas separadas para processos prontos� Cada fila tem seu algoritmo

� Foreground – RR

� Background – FIFO

Escalonamento de Processos www.edeyson.com.br54

Page 55: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento por Múltiplas Filas

� Escalonamento preemptivo entre filas� Prioridade fixa: só atende filas menos prioritárias se as demais estiverem vazias

� Time slice 80% para foreground com RR e 20% para background com FIFO

Escalonamento de Processos www.edeyson.com.br55

Page 56: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento por Múltiplas Filas

Escalonamento de Processos www.edeyson.com.br56

Page 57: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento por Múltiplas Filas

� Filas caracterizadas pelos surtos de CPU dos processos� I/O bound e interativos com mais prioridade

� Passam a maior parte do tempo Bloqueados

� Processos podem mudar de fila

� Aging pode ser facilmente implementado

Algoritmo preemptivo� Algoritmo preemptivo

Escalonamento de Processos www.edeyson.com.br57

Page 58: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento por Múltiplas Filas

� Exemplo� Três filas

� Q0 – quantum 8 ms

� Q1 – quantum 16 ms

� Q2 – FIFO (FCFS)

Escalonamento de Processos www.edeyson.com.br58

Page 59: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento com Múltiplos Processadores

� Escalonamento de CPU mais complexo� Existem sistemas com barramento de E/S privativo de determinado processador

� Várias filas de processos prontos� Possibilidade de desperdício de recursos

Escalonamento de Processos www.edeyson.com.br59

Page 60: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento com Múltiplos Processadores

� Única fila de processos prontos� Symmetric Multiprocessing (SMP)

� Cada processador faz seu escalonamento

� Compartilhamento de estruturas de dados do SO� Sincronização

� Assymmetric Multiprocessing� Assymmetric Multiprocessing� Escalonamento no processador mestre

Escalonamento de Processos www.edeyson.com.br60

Page 61: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento de Tempo Real

� Sistemas de tempo real crítico� Limites rígidos de tempo

� SO garante execução no tempo ou rejeita

� Exige software especial e hardware dedicado

Escalonamento de Processos www.edeyson.com.br61

Page 62: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento de Tempo Real

� Sistemas de tempo real não-crítico� Processos críticos com prioridade

� Gera desbalanceamento do sistema

� Suporte do SO� Escalonamento com prioridade� Não degradação da prioridade dos processos críticosNão degradação da prioridade dos processos críticos� Latência de carga pequena

� Chamadas ao sistema e operações de E/S� Pontos de preempção seguros� Todo Kernel preemptível (sincronização)� Protocolo de herança de prioridade

Escalonamento de Processos www.edeyson.com.br62

Page 63: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento de Tempo Real

� Dispatch Latency� Descreve a quantidade de tempo que um sistema gasta para responder a requisição de um processo

� O tempo de resposta (TR) total consiste em:� TR de Interrupção

� Dispatch latency� Dispatch latency

� TR da aplicação

Escalonamento de Processos www.edeyson.com.br63

Page 64: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento de Tempo Real

Escalonamento de Processos www.edeyson.com.br64

Page 65: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Solaris

SunOS

Page 66: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento no Solaris (SunOS 5.9)

� Preemptivo por prioridade

� Fatia de tempo (quantum)

� Várias classes com prioridades e algoritmos� Maior prioridade ⇒ menor fatia de tempo (e vice-versa)

� Classes de PrioridadeClasses de Prioridade� Real-time, system, interactive (IA), fixed-priority (FX), fair-share (FSS) e time-sharing (TS)

Escalonamento de Processos www.edeyson.com.br66

Page 67: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento no Solaris

� Escalonamento Padrão� Política Time-sharing

� Ajuste dinâmico de prioridades de processos para balancear o tempo de resposta (processos interativos) e o throughputde processos CPU bound.

� O scheduler troca processos CPU bound freqüentemente � O scheduler troca processos CPU bound freqüentemente para prover bom tempo de resposta, mas não tão freqüentemente que gere overhead demasiado ao sistema.

Escalonamento de Processos www.edeyson.com.br67

Page 68: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento no Solaris

� A política time-sharing:� Diminui a prioridade de processos que usam a CPU por longos períodos de tempo sem bloqueio (sleep).

� Atribui largas fatias de tempo para processos com baixa prioridade (CPU Bound). Se um processo de maior prioridade torna-se pronto durante esse quantum, prioridade torna-se pronto durante esse quantum, ocorre preempção por prioridade do processo executando.

Escalonamento de Processos www.edeyson.com.br68

Page 69: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento no Solaris

� Prioridade Real-time� Maior prioridade

� Processos sempre retornam à CPU tão logo estejam prontos.

� Alerta no SunOS:� “Careless use of real-time processes can have a dramatic negative effect on the performance of time-sharing processes. “effect on the performance of time-sharing processes. “

Escalonamento de Processos www.edeyson.com.br69

Page 70: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento no Solaris

Process Priorities

(Programmer's

Escalonamento de Processos www.edeyson.com.br70

(Programmer's

View)

http://docs.sun.com/db/doc/806-4125/6jd7pe6ak?a=view

Page 71: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento no Solaris

Estados dos

Processos

Baixo Nível ou

Escalonamento de Processos www.edeyson.com.br71

http://docs.sun.com/db/doc/806-4125/6jd7pe6ak?a=view

Baixo Nível ou

Curto Prazo Alto Nível

ou

Longo Prazo

Page 72: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento no Solaris

Escalonamento

Em Tempo

Real

Escalonamento de Processos www.edeyson.com.br72

Real

Dispatch

Latency

http://docs.sun.com/db/doc/806-4125/6jd7pe6ak?a=view

Page 73: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Microsoft

Windows

Page 74: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Prioridades no W2000

Escalonamento de Processos www.edeyson.com.br74

Page 75: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Estados de Threads no W2000

Estado Descrição Comentário

0 Initialized

1 Ready The thread is prepared to run on the next available processor.

2 Running

3 Standby The thread is about to use the processor.3 Standby The thread is about to use the processor.

4 Terminated

5 Waiting The thread is not ready to run, typically because another operation (for example, involving I/O) must finish before the thread can run.

6 Transition The thread is not ready to run because it is waiting for a resource (such as code being paged in from disk).

7 Unknown The thread is in an unknown state.

Escalonamento de Processos www.edeyson.com.br75

Page 76: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento de Threads Java

� Escalonamento da JVM� Baseado em algoritmo com prioridade e preempção

� Fatia de tempo depende da implementação da JVM

� Acionamento do escalonador� Thread em execução sai do estado Executável

� I/O, suspend ou stop

� Thread com prioridade maior entra no estado Executável

Escalonamento de Processos www.edeyson.com.br76

Page 77: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento de Threads Java

� Métodos� yield( )

� Passagem do controle – Multitarefa cooperativa

� setPriority( )� Thread.NORM_PRIORITY = 5

� Thread.MIN_PRIORITY = 1� Thread.MIN_PRIORITY = 1

� Thread. MAX_PRIORITY = 10

Escalonamento de Processos www.edeyson.com.br77

Page 78: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Escalonamento de Threads Java

� Exemplo� Escalonador Round-Robin com base em Java

� Livro Silberschatz et al

Escalonamento de Processos www.edeyson.com.br78

Page 79: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Avaliação de Algoritmos

� Seleção do melhor algoritmo� Específico para determinado sistema� Definição dos parâmetros importantesNormalmente mais de um parâmetro� Normalmente mais de um parâmetro�Maximizar uso de CPU e limitar tempo de resposta

Escalonamento de Processos www.edeyson.com.br79

Page 80: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Avaliação de Algoritmos

� Métodos de Avaliação� Avaliação Analítica

� Modelagem determinística

� Para determinada situação constrói diagramas de Gantt

� Muito específica para ser útil� Muito específica para ser útil� Apenas indica tendências

Escalonamento de Processos www.edeyson.com.br80

Page 81: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Avaliação de Algoritmos

� Métodos de Avaliação� Modelo de Filas

� Análise de redes de filas

� Necessita curvas de distribuição� Surtos de CPU e I/O

� Tempos de chegada dos processos� Tempos de chegada dos processos

� Sistema de computação é uma rede de servidores

� Exige simplificação para tratamento matemático� Precisão dos resultados questionável

Escalonamento de Processos www.edeyson.com.br81

Page 82: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Avaliação de Algoritmos

� Métodos de Avaliação� Simulações

� Modelo do sistema de computador

� Dados para simulação podem ser estimados ou coletados de sistemas reais

� Custo alto, uso intensivo da máquina� Custo alto, uso intensivo da máquina

Escalonamento de Processos www.edeyson.com.br82

Page 83: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Avaliação de Algoritmos

Escalonamento de Processos www.edeyson.com.br83

Page 84: SO 06 Escalonamento.ppt [Modo de Compatibilidade]edeyson.com.br/Arquivos/SO/Aulas/SO_06_Escalonamento.pdf · Algoritmo de Escalonamento de CPU Algoritmo do S.O. que determina qual

Avaliação de Algoritmos

� Métodos de Avaliação� Implementação

� Teste real do algoritmo

� Problemas com usuários

� Mudanças do ambiente original� Normais� Normais

� Específicas para o novo algoritmo

Escalonamento de Processos www.edeyson.com.br84