![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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042200/5ea06e6d2e14d347757a0694/html5/thumbnails/30.jpg)
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.