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

Preview:

Citation preview

1/30

Sistemas OperacionaisGestão de tarefas - escalonamento de tarefas

Prof. Carlos Maziero

DInf UFPR, Curitiba PR

Fevereiro de 2019

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

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.

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.

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.

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 )

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

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

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

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

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

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

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?

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

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

16/30

Escalonamento PRIOc - cooperativo

1 3 5 70 14

t1

t2

t3

t4

t

11

t5

122 4 6 8 9 10 13

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

18/30

Escalonamento PRIOp - preemptivo

1 3 5 70 14

t1

t2

t3

t4

t

11

t5

122 4 6 8 9 10 13

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

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)

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

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

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

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

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

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

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

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).

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.

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.

Recommended