SO 06 Escalonamento.ppt [Modo de...

26
? 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 Iniciando 5 3 1

Transcript of SO 06 Escalonamento.ppt [Modo de...

Page 1: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

? 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

Page 2: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

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

? Critérios mudam com características dos Processos

? Batch, CPU Bound, I/O Bound, Interativos

Page 3: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

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)

? Utilização da CPU = 60 % (Desprezando-se tempo de Kernel)

40% de I/O? 40% de I/O

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 4: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

Escalonador de Processos

? Com multiprogramação? Tempo Total de Execução = 6 ut

? Tempo médio de execução = 5,5 ut

? Utilização da CPU = 100 %

Desprezando-se tempo de Kernel? Desprezando-se tempo de Kernel

CPU

0

I/O

1

CPU

2

I/O

3

CPU

4

CPU I/O CPU I/O CPU

5 6

P0

P1

Page 5: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

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

Page 6: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

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

Page 7: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

Tipos de Escalonamento

? Dois tipos:

? Escalonamento não-preemptivo;

? Escalonamento preemptivo.

Page 8: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

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

Page 9: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

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? 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 10: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

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

Page 11: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

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

Processo Início Duração (ut)

P1

0 24

P2

0 3

P3

0 3

Page 12: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

Escalonamento FIFO

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

P1

P2

P3

24 27 300

Page 13: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

Escalonamento FIFO

Throughput = 0,1 (3/30)

? Tempos de espera

P1 = 0

P2 = 24

P3 = 27

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

Tempo médio de espera Throughput = 0,1 (3/30)? Tempo médio de espera

(0 + 24 + 27) / 3 = 17

Page 14: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

Escalonamento FIFO

Throughput = 0,1 (3/30)

? Tempos de saída

P1 = 24

P2 = 27

P3 = 30

Tempo médio de saída Throughput = 0,1 (3/30)? Tempo médio de saída

(24 + 27 + 30) / 3 = 27

Page 15: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

Escalonamento FIFO

? Outra ordem de chegada

P2 , P3 , P1

P1

P3

P2

63 300

Page 16: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

Escalonamento SJF

? Shortest-Job-First (Menor Job Primeiro)

PID Início Duração de surto

Usado para ProcessosP

10 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 17: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

Escalonamento SJF

?Tempos de espera

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

P1

P3

P2

3 160

P4

9 24

Page 18: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

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

Page 19: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

Escalonamento SJF

? Problema: determinação da duração do próximo surto de CPU é impossível

Page 20: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

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)

Page 21: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

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

Page 22: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

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

Page 23: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

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?

Page 24: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

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 msP

20 3

P3

0 3

40 14 307 10 18 22 26

P3

P1

P2

P1

P1

P1

P1

P1

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

Page 25: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

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

Page 26: SO 06 Escalonamento.ppt [Modo de Compatibilidade]wiki.foz.ifpr.edu.br/wiki/images/2/25/Tec_info_so...Escalonamento Round Robin?Com quantum qe n+1processos prontos:?Tempo máximo de

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)