Socm Slides 06
Socm Slides 06
Socm Slides 06
Julho de 2020
1/31
Conteúdo
1 Conceitos básicos
2 Escalonamentos FCFS e RR
5 Definição de prioridades
2/31
Tipos de tarefas
3/31
Escalonamento de tarefas
Escalonamento de CPU
Definir a ordem de execução das tarefas prontas.
4/31
Critérios de escalonamento
5/31
Modos de escalonamento
Escalonamento cooperativo
A tarefa só perde o processador ao terminar, solicitar uma
entrada/saída ou liberar explicitamente a CPU (syscall
sched_yield).
Escalonamento preemptivo
A cada interrupção, exceção ou chamada de sistema, o
escalonador reavalia a fila de prontas e pode “preemptar” a
tarefa em execução.
6/31
Algoritmos de escalonamento
Tarefas a escalonar:
Tarefa t1 t2 t3 t4 t5
Ingresso (s) 0 0 1 3 5
Duração (s) 5 2 4 1 2
Prioridade 2 3 1 4 5
Métricas a considerar:
7/31
Escalonamento FCFS
t5
t4
t3
t2
t1
t
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
8/31
Escalonamento FCFS
9/31
Escalonamento RR
t5
t4
t3
t2
t1
t
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
10/31
Escalonamento RR
fila de prontos processador
t2 t1 t3 t5 t4 t1
t=7
t1
t1 t4
t2 t1 t1 t3 t5 t4
t=0 t=8
t5 t4
t3 t2 t1 t1 t3 t5 fim
t=1 t=9
t1
t2
t1 t3 t2 t1 t3 t5
t=2 t=10
t3 t5
t4 t1 t3 t2 t1 t3 fim
t=3 t=11
t3 t2
t4 t1 t3 fim t1 t3
t=4 t=12
t1 t3
t5 t4 t1 t3 t1 fim
t=5 t=13
t3
t1 t1
t3 t5 t4 t1 fim
t=6 t=14
11/31
Escalonamento RR
tt (t1 ) + · · · + tt (t5 ) 14 + 4 + 12 + 6 + 6 42
Tt = = = = 8, 4s
5 5 5
tw (t1 ) + · · · + tw (t5 ) 9 + 2 + 8 + 5 + 4 28
Tw = = = = 5, 6s
5 5 5
12/31
Escalonamento SJF
t5
t4
t3
t2
t1
t
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
13/31
Escalonamento SJF
tt (t1 ) + · · · + tt (t5 ) 14 + 2 + 5 + 4 + 4 29
Tt = = = = 5, 8s
5 5 5
tw (t1 ) + · · · + tw (t5 ) 9 + 0 + 1 + 3 + 2 15
Tw = = = = 3, 0s
5 5 5
14/31
Escalonamento SRTF
t5
t4
t3
t2
t1
t
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
15/31
Escalonamento SRTF
tt (t1 ) + · · · + tt (t5 ) 14 + 2 + 6 + 1 + 4 27
Tt = = = = 5, 4s
5 5 5
tw (t1 ) + · · · + tw (t5 ) 9 + 0 + 2 + 0 + 2 13
Tw = = = = 2, 6s
5 5 5
16/31
Escalonamento PRIOc
t5
t4
t3
t2
t1
t
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
17/31
Escalonamento PRIOc
tt (t1 ) + · · · + tt (t5 ) 7 + 2 + 13 + 7 + 4 33
Tt = = = = 6, 6s
5 5 5
tw (t1 ) + · · · + tw (t5 ) 2 + 0 + 9 + 6 + 2 19
Tw = = = = 3, 8s
5 5 5
18/31
Escalonamento PRIOp
t5
t4
t3
t2
t1
t
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
19/31
Escalonamento PRIOp
tt (t1 ) + · · · + tt (t5 ) 10 + 2 + 13 + 1 + 2 28
Tt = = = = 5, 6s
5 5 5
tw (t1 ) + · · · + tw (t5 ) 5 + 0 + 9 + 0 + 0 14
Tw = = = = 2, 8s
5 5 5
20/31
Prioridades dinâmicas
21/31
Um algoritmo de envelhecimento
22/31
Escalonamento PRIOd
prioridades
t5 5 dinâmicas
t4 4
t3 2 3 4 1 2 3 1
t2 3 3
t1 3 4 2 3 4 5 2
t
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
23/31
Escalonamento PRIOd
tt (t1 ) + · · · + tt (t5 ) 11 + 2 + 13 + 1 + 2 29
Tt = = = = 5, 8s
5 5 5
tw (t1 ) + · · · + tw (t5 ) 6 + 0 + 9 + 0 + 0 15
Tw = = = = 3, 0s
5 5 5
24/31
Efeito da prioridade dinâmica
Round-Robin (tq = 1) e prioridades t1 : 1 t2 : 3 t3 : 6
Sem envelhecimento:
t3
t2
t1
t
Com envelhecimento:
t3
t2
t1
t
0
25/31
Quadro comparativo
26/31
Definição de prioridades
Fatores externos:
Informações providas pelo usuário ou o administrador
Classe 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/31
Definição de prioridades
Fatores internos:
28/31
Prioridades em sistemas Windows
24: tempo-real
13: alta
10: acima do normal
8: normal
6: abaixo do normal
4: baixa ou ociosa
29/31
Prioridades em Sistemas Linux
Tarefas de tempo-real:
Vai de 1 (menos importante) a 99 (mais importante)
Tem precedência sobre tarefas interativas
Somente o administrador pode definir
Tarefas interativas:
Quase todas as tarefas dos usuários
Escala negativa de -20 (+ importante) a +19 (- importante)
Ajustável através dos comandos nice e renice
30/31
Escalonador do Linux
Usa várias filas com políticas distintas: