Escolar Documentos
Profissional Documentos
Cultura Documentos
t1 25 8
t2 25 8
t3 50 4
t4 50 4
t5 100 4
t1 5 2
t2 10 2
t3 10 2
Para n tarefas
Executivo Cíclico
while(1) {
wait_for_tick(); // espera por um sinal do temporizador
Task(t1); Task(t2); Task(t3);
wait_for_tick ();
Task(t1); Task(t2); Task(t4); Task(t5);
wait_for_tick ();
Task(t1); Task(t2); Task(t3);
wait_for_tick();
Task(t1); Task(t2); Task(t4);
}
Escalonamento Baseado em
prioridade(priority driven)
Rate Monotonic
•O algoritmo RM atribui prioridades a tarefas de acordo com
suas taxas(períodos)
•Tarefas com maiores taxas de requisição (menor período)
tem maior prioridade .
•Como os períodos são constantes, o RM é um algoritmo de
prioridade estática
•Algoritmo preemptivo: uma nova tarefa com período menor
preempta uma tarefa que estiver sendo executada
•Para o RM, as tarefas tem um deadline igual a seu período
Rate Monotonic (taxa monotônica)
Seja T1=2, C1=1 ,T2 = 5, C2=1,5 logo T1<T2, e P(t1)>P(t2)
Task T C P U
t1 80 40 1 50%
t2 40 10 2 25%
t3 20 5 3 25%
Implementação:
O escalonador é a tarefa de maior prioridade
logo tem o menor período
Todas as tarefas tem períodos múltiplos do
período do escalonador
O contexto deve ser salvo durante a
preempção de uma tarefa.(difícil)
As funções compartilhadas pela tarefas devem
ser reentrantes.
Implementação
Int a;
Int Func(int b) {
a =b;
b=a+2;
return(b)
}
Implementação
• Reentrância – para uma sub-rotina ser
reentrante basta ter suas variáveis salvas na
pilha no momento de sua invocação e
restaurada no momento da saída da sub-
rotina.
Segue exemplo de sub-rotina reentrante.
nreentrante:
reentrante:
mov a,r7
push acc
add a,#2 push AR7
mov r7,a mov a,r7
ret add a,#2
mov r7,a
pop AR7
pop acc
ret
Tempo de resposta
Dado um conjunto de n tarefas τ1, τ2, τn, e para cada tarefa τj com período de
requisição Tj e um WCET Cj. O tempo de resposta Ri de uma tarefa τi, é
definido como o tempo máximo entre qualquer requisição de uma tarefa τi e a
sua correspondente conclusão.