sistemas operacionais - gestão de tarefas -...
Post on 20-Apr-2020
8 Views
Preview:
TRANSCRIPT
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.
top related