Você está na página 1de 24

Algoritmos de Escalonamento para

Sistemas de Tempo Real

Celso Maciel da Costa


celso.costa@pucrs.br
Introdução

• Escalonamento
– “Procedimento de ordenar a execução de tarefas na fila
de prontos”
– Aspecto importante em sistemas com restrições
temporais
– Detalhes de implementação tratados na fase de projeto
Introdução
• Problema NP-Completo
• Características
– Preemptivo/Não-Preemptivo
• Se tarefa rodando perde ou não o processador para uma tarefa com
maior prioridade
– Estático
• A prioridade é atribuída às tarefas pelo algoritmo em tempo de projeto
e não sofre alteração
– Dinâmico
• A prioridade atribuída pelo algoritmo às tarefas variam de acordo com
a evolução do sistema
– Offline
• As prioridades são atribuídas às tarefas em tempo de projeto
– Online
• As prioridades são atribuídas às tarefas em tempo de execução
Escalonamento
Utilização de uma tarefa (ocupação do
processador)

Onde:
• Ci é o tempo de execução da ith tarefa
• Pi é o período da ith tarefa
• Min i é o período mínimo de ativação da ith tarefa
Roteiro

• Algoritmos de escalonamento
– Rate Monotonic
– Earliest Deadline First
– Deadline Monotonic
Rate Monotonic Scheduling (RMS)

• Premissas
– As tarefas são periódicas e independentes
– O “deadline” de cada tarefa coincide com o seu
período e são conhecidos e estáticos
– O tempo de computação (C) de cada tarefa é
conhecido e constante
– A prioridade das tarefas é estática
– O tempo de chaveamento entre tarefas não causa
impacto no modelo
Rate Monotonic Scheduling (RMS)

• Escalonabilidade por Liu e Layland


– Para um conjunto de tarefas, se U <= U então esse
conjunto de tarefas é escalonável.
• Para que um conjunto de n tarefas seja
escalonável:
n
Ci
U = ∑ ≤ n( n 2 − 1)
i =1 Pi

• Onde:
– Ci é o custo de execução da ith tarefa
– Pi é o período da ith tarefa
Rate Monotonic Scheduling (RMS)

• Considere as três tarefas:


Tarefa Período Tempo de execução Prioridade RM Utilização
A 100 20 1 0,2
B 150 40 2 0,267
C 350 100 3 0,286

• Aplicando a fórmula, temos:


0,753 ≤ 3(3 2 − 1) = 0,779

• Então podemos dizer que estas tarefas são


escalonáveis pelo RMS
Rate Monotonic Scheduling (RMS)
• As tarefas A, B e C são executadas em t=0
• Devido à sua prioridade, A assume o processador
• A conclui e B assume
• C assume e é interrompida logo após por A

Tempos de execução/Período:
A: 20/100
B: 40/150
C: 100/350
Rate Monotonic Scheduling (RMS)

Tarefas Periódicas Ci Pi Di Utilização


Tarefa A 10 20 20 0.5
Tarefa B 25 50 50 0.5

A,B A A B


0 10 20 30 40 50

Aplicando a fórmula:
1 ≤ 2( 2 − 1)
2

1 ≤ 2(1.414 − 1)
1 ≤ 0.828
Rate Monotonic Scheduling (RMS)

• Vantagens

– Simplicidade
– RMS é ótimo para a classe de problemas na qual ele se
encontra inserido (tarefas periódicas e independentes)
Rate Monotonic Scheduling (RMS)

• Desvantagens
– Na prática, a maioria dos problemas não possuem suas tarefas
totalmente independentes
– O RMS original pode causar problemas de inversão de
prioridades e deadlock
• Que pode ser resolvido com herança de prioridades
• Ou métodos alternativos, como o uso de algoritmos não-
bloqueáveis, ou evitar o compartilhamento de semáforo
entre threads com prioridades diferentes
EDF (Earliest Deadline First)

• Algoritmo de escalonamento de tarefas


periódicas;
• Escalonamento baseado em prioridades;
• A tarefa mais prioritária é a que tem o deadline
mais próximo do tempo atual
EDF (Earliest Deadline First)

– A escala é produzida em tempo de execução por um


escalonador preemptivo;
– Tarefas periódicas e independentes;
– Deadline igual ao período (Di=Pi).
– O tempo de computação conhecido e constante (tempo
do pior caso);
– A prioridade das tarefas é dinâmica
– Tempo de Chaveamento nulo.
Teste de Escalonabilidade do EDF

• Pode ser realizado em tempo de projeto


• Caso obedeça as premissas do slide anterior este teste
é suficiente e necessário
n
Ci
U =∑ ≤1
i =1
Pi
– Onde U é o uso do processador, C o tempo de computação
e P é o período
EDF (Earliest Deadline First)

Tarefas Periódicas Ci Pi Di
Tarefa A 10 20 20
Tarefa B 25 50 50

n
Ci
U =∑ ≤1 10/20 + 25/50 = 1
i =1
Pi
EDF (Earliest Deadline First)

 Exemplo com RMS(não escalonável!)


Tarefas Periódicas Ci Pi Di
Tarefa A 10 20 20
Tarefa B 25 50 50

B perde o Deadline
A,B A A B


0 10 20 30 40 50
EDF (Earliest Deadline First)

 Exemplo com EDF (escalonável!)


Tarefas Periódicas Ci Pi Di
Tarefa A 10 20 20
Tarefa B 25 50 50

A,B A A B


0 10 20 30 40 50
Deadline Monotonic

• Algoritmo de escalonamento estático


• Proposto por Leung e Whitehead em 1982
• Similar ao Rate Monotonic
Deadline Monotonic

• Características:
• Atribuição estática de prioridades baseada nos deadlines
relativos das tarefas (Di).
– Prioridades Estaticas
– Preemptivo
– Todos os processos são periodicos
– Deadline <= Periodo
– Prioridade é inversamente proporcional ao Deadline
– Algoritmo ótimo
Escalonamento Deadline Monotônico

Tarefas Período Tempo de Deadline Prioridade


Periódicas Computação RM
Tarefa A 2 10 6 1

Tarefa B 2 10 8 2

Tarefa C 8 20 16 3
Exemplo

Figura 2. exemplo de tarefas escalonadas no Deadline Monotonic


Deadline Monotonic
• Como saber se todos os processos são
escalonáveis utilizando o Deadline Monotonic?

• Roda e ver se funciona!!

• Ou utilizar o teste de agendamento proposto por


Audsley.
Referências
• Jean-Marie Farine, Sistemas de Tempo Real
• Giorgio C. Buttazzo, Hard Real-Time
Computing Systems
• Klein et al., A Practiotioner’s Handbook for
Real-Time Analysis
• Neil C. Audsley, Deadline Monotonic
Scheduling

Você também pode gostar