Sistemas Operacionais - Gestão de tarefas -...

30
1/30 Sistemas Operacionais Gestão de tarefas - escalonamento de tarefas Prof. Carlos Maziero DInf UFPR, Curitiba PR Fevereiro de 2019

Transcript of Sistemas Operacionais - Gestão de tarefas -...

Page 1: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

1/30

Sistemas OperacionaisGestão de tarefas - escalonamento de tarefas

Prof. Carlos Maziero

DInf UFPR, Curitiba PR

Fevereiro de 2019

Page 2: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

2/30

Conteúdo

1 Conceitos básicos

2 Escalonamento FCFS

3 Escalonamento RR

4 Escalonamentos SJF e SRTF

5 Escalonamento por prioridades fixas

6 Escalonamento por prioridades dinâmicas

7 Definição de prioridades

Page 3: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

3/30

Escalonamento de tarefas

O escalonador define a ordem de execução das tarefas.

Tipos de tarefas:

De tempo real : exigem tempos de resposta precisos.

Interativas : respondem rapidamente a eventos externos.

Em lote : sem requisitos temporais explícitos, executamsem intervenção do usuário.

Outra possibilidade de classificação:

CPU-bound : tarefas que usam intensivamente a CPU

IO-bound : tarefas que realizam mais entrada/saída.

Page 4: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

4/30

Critérios de escalonamento

Métricas para avaliar diferentes escalonadores:

Tempo de vida (tt ): tempo entre a criação de uma tarefa e seuencerramento.

Tempo de espera (tw ): tempo perdido pela tarefa na fila deprontas.

Tempo de resposta (tr ): tempo entre a chegada de um eventoao sistema e a resposta a ele.

Justiça : distribuição adequada do processador entre astarefas prontas.

Page 5: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

5/30

Escalonamento preemptivo e cooperativo

Escalonamento cooperativo

a tarefa só perde o processador ao terminar, solicitar umaentrada/saída ou liberar explicitamente a CPU para voltar à filade prontas (syscall sched_yield).

Escalonamento preemptivo

A cada interrupção, exceção ou chamada de sistema, oescalonador reavalia a fila de prontas e pode trocar a tarefa emexecução.

Page 6: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

6/30

Tarefas e métricas

Tarefas a escalonar:

Tarefa t1 t2 t3 t4 t5Ingresso 0 0 1 3 5

Duração 5 2 4 1 2

Prioridade 2 3 1 4 5

Métricas:

Tempo médio de execução (Tt )

Tempo médio de espera (Tw )

Page 7: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

7/30

Escalonamento FCFS - First Come, First Served

1 3 5 70 14

t1

t2

t3

t4

t

11

t5

122 4 6 8 9 10 13

Page 8: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

8/30

Escalonamento FCFS

Tt =tt(t1) + · · · + tt(t5)

5=

5 + 7 + (11 − 1) + (12 − 3) + (14 − 5)5

=5 + 7 + 10 + 9 + 9

5=

405= 8, 0s

Tw =tw(t1) + · · · + tw(t5)

5=

0 + 5 + (7 − 1) + (11 − 3) + (12 − 5)5

=0 + 5 + 6 + 8 + 7

5=

265= 5, 2s

Page 9: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

9/30

Escalonamento RR - Round-Robin

Usa preempção por tempo (no exemplo, tq = 2)

1 3 5 70 14

t1

t2

t3

t4

t

11

t5

122 4 6 8 9 10 13

Page 10: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

10/30

Escalonamento RR

t=0

t=1

t=2

t=3

t=4

t=5

t=6

t=7t1t2

t3

t4

t1

t1

t2

t2

t3

t3

t1

t1

t=8

t=9

t=10

t=11

t=12

t=13

t=14

t4

t3

t3

t1

t3

t5

t5

t1

t5

fila de prontos processador

t5

t4

t2fim

t2

t2

t1

t1

t1

t1

t1

t1

t1

t1

t1

t3

t3

t3

t3

t3

t3

t3

t4

t4

t4

t4

t5

t5

t5

t1

t2

t3

t1

t4

t5

t1

t1

t3

t1

t3

fim

fim

fim

fim

Page 11: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

11/30

Escalonamento RR

Tt =tt(t1) + · · · + tt(t5)

5=

14 + 4 + 12 + 6 + 65

=425= 8, 4s

Tw =tw(t1) + · · · + tw(t5)

5=

9 + 2 + 8 + 5 + 45

=285= 5, 6s

Page 12: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

12/30

Escalonamento SJF - Shortest Job First

1 3 5 70 14

t1

t2

t3

t4

t

11

t5

122 4 6 8 9 10 13

Page 13: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

13/30

Escalonamento SJF

Tt =tt(t1) + · · · + tt(t5)

5=

14 + 2 + 5 + 4 + 45

=295= 5, 8s

Tw =tw(t1) + · · · + tw(t5)

5=

9 + 0 + 1 + 3 + 25

=155= 3, 0s

Problema: como definir/estimar a duração de uma tarefa?

Page 14: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

14/30

Escal. SRTF - Shortest Remaining Time First

1 3 5 70 14

t1

t2

t3

t4

t

11

t5

122 4 6 8 9 10 13

Page 15: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

15/30

Escalonamento SRTF

Tt =tt(t1) + · · · + tt(t5)

5=

14 + 2 + 6 + 1 + 45

=275= 5, 4s

Tw =tw(t1) + · · · + tw(t5)

5=

9 + 0 + 2 + 0 + 25

=135= 2, 6s

Page 16: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

16/30

Escalonamento PRIOc - cooperativo

1 3 5 70 14

t1

t2

t3

t4

t

11

t5

122 4 6 8 9 10 13

Page 17: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

17/30

Escalonamento PRIOc

Tt =tt(t1) + · · · + tt(t5)

5=

7 + 2 + 13 + 7 + 45

=335= 6, 6s

Tw =tw(t1) + · · · + tw(t5)

5=

2 + 0 + 9 + 6 + 25

=195= 3, 8s

Page 18: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

18/30

Escalonamento PRIOp - preemptivo

1 3 5 70 14

t1

t2

t3

t4

t

11

t5

122 4 6 8 9 10 13

Page 19: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

19/30

Escalonamento PRIOp

Tt =tt(t1) + · · · + tt(t5)

5=

10 + 2 + 13 + 1 + 25

=285= 5, 6s

Tw =tw(t1) + · · · + tw(t5)

5=

5 + 0 + 9 + 0 + 05

=145= 2, 8s

Page 20: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

20/30

Escalonamento PRIOd - dinâmico

Problema:

Tarefas de baixa prioridade têm pouco acesso à CPU

Se houverem muitas tarefas, podem ficar paradas

Fenômeno chamado “inanição” (starvation)

Solução:

Aumentar gradativamente a prioridade de tarefas que nãoexecutam

Ao executar, a tarefa volta à sua prioridade original

Algoritmo de “envelhecimento” (aging)

Page 21: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

21/30

Um algoritmo de envelhecimento

Definições: N : número de tarefas no sistemati : tarefa i, 1 ≤ i ≤ Npei : prioridade estática da tarefa tipdi : prioridade dinâmica da tarefa ti

�ando uma tarefa nova tnova ingressa no sistema:penova ← prioridade fixapdnova ← penova

Para escolher tprox , a próxima tarefa a executar:escolher tprox | pdprox = maxNi=1(pdi)∀ti , tprox : pdi ← pdi + αpdprox ← peprox

Page 22: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

22/30

Escalonamento PRIOd

1 3 5 70 14

t1

t2

t3

t4

t

11

t5

122 4 6 8 9 10 13

3

3 2

2

4

3

3 4

1

5

5

2 3

2

1

prioridadesdinâmicas

1

Page 23: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

23/30

Escalonamento PRIOd

Tt =tt(t1) + · · · + tt(t5)

5=

11 + 2 + 13 + 1 + 25

=295= 5, 8s

Tw =tw(t1) + · · · + tw(t5)

5=

6 + 0 + 9 + 0 + 05

=155= 3, 0s

Page 24: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

24/30

Efeito do envelhecimentoRound-Robin com tq = 1 e p(t1) = 1, p(t2) = 2, p(t3) = 3

Sem envelhecimento:

0

t1

t2

t3

t

Com envelhecimento:

0

t1

t2

t3

t

Page 25: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

25/30

�adro comparativo

Algoritmo FCFS RR SJF SRTF PRIOc PRIOp PRIOd

Tempomédio Tt

8,0 8,4 5,8 5,4 6,6 5,6 5,8

Tempomédio Tw

5,2 5,6 3,0 2,6 3,8 2,8 3,0

Trocas decontexto

4 7 4 5 4 6 6

Tempo total 14 14 14 14 14 14 14

Page 26: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

26/30

Definição de prioridades

Fatores externos:

informações providas pelo usuário ou o administradorclasse do usuário (administrador, diretor, estagiário)importância da tarefa em si (um detector de intrusão, etc)

o escalonador não pode estimá-los sozinho

Definem uma prioridade estática

Page 27: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

27/30

Definição de prioridades

Fatores internos:

informações que podem ser obtidas pelo escalonadorpode ser estimadas com base em dados internos

idade da tarefaduração estimadainteratividade

Permitem calcular uma prioridade dinâmica

Page 28: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

28/30

Prioridades em sistemas Windows

Prioridades dos processos e threads entre 0 e 31:

24: tempo-real

13: alta

10: acima do normal

8: normal

6: abaixo do normal

4: baixa ou ociosa

A tarefa com janela ativa recebe mais prioridade (+1 ou +2).

Page 29: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

29/30

Prioridades em Sistemas Linux

No Linux há duas escalas de prioridades:

Tarefas de tempo-real:

Vai de 0 (mais importante) a 99 (menos importante)Tem precedência sobre tarefas interativasSomente o administrador pode criar tarefas de tempo-real

Tarefas interativas:

�ase todas as tarefas dos usuáriosEscala negativa de -20 (+ importante) a +19 (- importante)Ajustável através dos comandos nice e renice.

Page 30: Sistemas Operacionais - Gestão de tarefas - …wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:...2/30 Conteúdo 1 Conceitos básicos 2 Escalonamento FCFS 3 Escalonamento RR

30/30

Escalonador do LinuxUsa várias filas com políticas distintas:

SCHED_DEADLINE: tarefas de tempo real com prazos, usa oalgoritmo Earliest Deadline First (EDF).

SCHED_FIFO: prioridades fixas preemptivo, semenvelhecimento nem quantum.

SCHED_RR: SCHED_FIFO com Round-Robin, quantum de 10msa 200ms.

SCHED_NORMAL: classe padrão, usa prioridades dinâmicas eRound-Robin com quantum variável; algoritmoCFS - Completely Fair Scheduler.

SCHED_BATCH: tarefas CPU-bound, de menor prioridade.

SCHED_IDLE: só recebe CPU se não houver tarefa ativa.