Escolar Documentos
Profissional Documentos
Cultura Documentos
. 1
U U m
i
i
n
parei aqui.
2. O Escalonamento de Tempo Real 22
dirigidos a prioridades. Nesses esquemas de escalonamento, as prioridades atribudas
s tarefas do conjunto so derivadas de suas restries temporais, e no de atributos
outros como a importncia ou o grau de confiabilidade das tarefas. Escalonamentos
baseados em prioridades, alm de apresentarem melhor desempenho e flexibilidade, se
comparados a abordagens como o executivo cclico, so objeto de uma literatura
relativamente recente e abrangente que estende os trabalhos iniciais introduzidos em
[LiL73].
Neste captulo, feita uma reviso dos algoritmos de prioridade fixa Taxa
Monotnica (Rate Monotonic) [LiL73] e "Deadline" Monotnico (Deadline
Monotonic) [LeW82] e do algoritmo "Earliest Deadline First" [LiL73] que apresenta
atribuio dinmica de prioridades. Esses algoritmos clssicos so tidos como timos
para suas respectivas classes de problemas, sendo caracterizados por modelos de tarefas
simplificados. O conceito de utilizao e os testes de escalonabilidade nesses algoritmos
so apresentados como forma de anlise a priori para determinar se existe uma escala
realizvel que garanta as restries temporais impostas sobre um conjunto de tarefas
peridicas. Na seqncia, aps o estudo destes modelos clssicos, so aprofundados os
esquemas de prioridade fixa, nas suas extenses aos trabalhos de Liu [LiL73]. Um
estudo similar para esquemas de prioridade dinmica apresentado no Anexo A.
2.4.1 Escalonamento Taxa Monotnica [LiL73]
O escalonamento Taxa Monotnica (Rate Monotonic) produz escalas em tempo
de execuo atravs de escalonadores preemptivos, dirigidos a prioridades. um
esquema de prioridade fixa; o que define ento, o RM como escalonamento esttico e
on-line segundo os conceitos apresentados no item 2.3.1. O RM dito timo entre os
escalonamentos de prioridade fixa na sua classe de problema, ou seja, nenhum outro
algoritmo da mesma classe pode escalonar um conjunto de tarefas que no seja
escalonvel pelo RM.
As premissas do RM que facilitam as anlises de escalonabilidade, definem um
modelo de tarefas bastante simples :
a. As tarefas so peridicas e independentes.
b. O "deadline" de cada tarefa coincide com o seu perodo (D
i
=P
i
).
c. O tempo de computao (C
i
) de cada tarefa conhecido e constante (Worst
Case Computation Time).
d. O tempo de chaveamento entre tarefas assumido como nulo.
As premissas a e b so muito restritivas para o uso desse modelo na prtica, contudo
essas simplificaes so importantes para que se tenha o entendimento sobre o
escalonamento de tarefas peridicas.
A poltica que define a atribuio de prioridades usando o RM, determina uma
Escalonador preempitivo;
direcionado a prioridades;
2.4 Escalonamento de Tarefas Peridicas 23
ordenao baseada nos valores de perodos das tarefas do conjunto: as prioridades
decrescem em funo do aumento dos perodos, ou seja, quanto mais freqente a tarefa
maior a sua prioridade no conjunto. Como os perodos das tarefas no mudam, o RM
define uma atribuio esttica de prioridades (prioridade fixa).
A anlise de escalonabilidade no RM, feita em tempo de projeto, baseada no
clculo da utilizao. Para que n tarefas tenham o atendimento de suas restries
temporais quando escalonadas pelo RM, deve ser satisfeito o teste abaixo que define
uma condio suficiente:
A medida que n cresce, nesse teste, a utilizao do processador converge para 0,69.
Uma utilizao de aproximadamente 70% define uma baixa ocupao do processador
que, certamente, implica no descarte de muitos conjuntos de tarefas com utilizao
maior e que, mesmo assim, apresentam escalas realizveis (feasible).
Essa condio suficiente pode ser relaxada quando as tarefas do conjunto
apresentam perodos mltiplos do perodo da tarefa mais prioritria. Nesse caso a
utilizao alcanada sob o RM se aproxima do mximo terico, coincidindo o teste
abaixo com uma condio necessria e suficiente [Kop92c]:
Tarefas Peridicas Periodo
(Pi)
Tempo de Computao
(Ci)
Prioridade RM
(pi)
Utilizao
(Ui)
tarefa A 100 20 1 0,2
tarefa B 150 40 2 0,267
tarefa C 350 100 3 0,286
tabela 2.1: Utilizao de tarefas peridicas
A tabela 2.1 mostra um exemplo de conjunto de tarefas peridicas onde o objetivo
verificar a escalonabilidade desse conjunto sob a poltica Taxa Monotnica. A
utilizao do processador por esse conjunto de tarefas corresponde a 0,753. Aplicando a
equao [2] concludo que esse conjunto escalonvel sob o RM:
A figura 2.1 apresenta na forma de um diagrama de Gantt a escala RM
correspondente tabela 2.1. As tarefas A, B e C chegam em t=0. Por ser mais freqente
(maior prioridade segundo o RM), A assume o processador. Em t=20, a tarefa A conclui
e B toma posse do processador por ser a mais prioritria na fila de Pronto. A tarefa C
U
C
P
i
i
i
n
1.
( )
0 753 2 1 0 779
1
, , n
n
( )
[ ] U
C
P
n
i
i
i
n
n
2 1 2
1
.
2. O Escalonamento de Tempo Real 24
assume em t=60 e interrompida quando da chegada da nova ativao de A em t=100
que, por sua vez, passa a se executar (preempo de C por A). C sofre mais interrupes
de novas ativaes das tarefas B e A em t=150 e t=200, respectivamente.
0 40 80 120 200 160 240 280 320 360
A,B,C A B A A,B C
tarefa A -
tarefa B -
tarefa C -
Figura 2.5: Escala RM produzida a partir da Tabela 2.1
t
2.4.2 Escalonamento "Earliest Deadline First" (EDF) [LiL73]
O "Earliest Deadline First" (EDF) define um escalonamento baseado em
prioridades: a escala produzida em tempo de execuo por um escalonador
preemptivo dirigido a prioridades. um esquema de prioridades dinmicas com um
escalonamento "on-line" e dinmico (item 2.3.1.). O EDF um algoritmo timo na
classe dos escalonamentos de prioridade dinmica. As premissas que determinam o
modelo de tarefas no EDF so idnticas s do RM:
a. As tarefas so peridicas e independentes.
b. O "deadline" de cada tarefa coincide com o seu perodo (D
i
=P
i
).
c. O tempo de computao (C
i
) de cada tarefa conhecido e constante (Worst
Case Computation Time).
d. O tempo de chaveamento entre tarefas assumido como nulo.
A poltica de escalonamento no EDF corresponde a uma atribuio dinmica de
prioridades que define a ordenao das tarefas segundo os seus "deadlines" absolutos
(d
i
). A tarefa mais prioritria a que tem o "deadline" d
i
mais prximo do tempo atual.
A cada chegada de tarefa a fila de prontos reordenada, considerando a nova
distribuio de prioridades. A cada ativao de uma tarefa T
i
, seguindo o modelo de
tarefas peridicas introduzido no item 2.2., um novo valor de "deadline" absoluto
determinado considerando o nmero de perodos que antecede a atual ativao (k):
d
ik
=kP
i
.
No EDF, a escalonabilidade tambm verificada em tempo de projeto, tomando
como base a utilizao do processador. Um conjunto de tarefas peridicas satisfazendo
as premissas acima escalonvel com o EDF se e somente se :
2.4 Escalonamento de Tarefas Peridicas 25
Esse teste suficiente e necessrio na classe de problema definida para o EDF pelas
premissas a, b, c e d. Se qualquer uma dessas premissas relaxada (por exemplo,
assumindo D
i
P
i
), a condio [3] continua a ser necessria porm no mais suficiente.
No exemplo mostrado na figura 2.6, o mesmo conjunto de tarefas submetido a
escalonamentos EDF e RM. A utilizao do conjunto de tarefas de 100%. Com isto
pela equao [2] o conjunto no escalonvel pelo RM. Entretanto, a equao [3]
garante a produo de uma escala pelo EDF. No caso (b) da figura 2.6, no tempo t = 50
a tarefa B perde seu "deadline". Alm da melhor utilizao, uma outra diferena,
normalmente citada na literatura, que o EDF produz menos preempes que o RM. A
favor do RM est a sua simplicidade que facilita a sua implementao.
t a r e f a A -
t a r e f a B -
t a r e f a s p e r i d i c a s C i P i D i
t a r e f a A 1 0 2 0 2 0
t a r e f a B 2 5 5 0 5 0
p e r d a d e d e a d l i n e d e B
F ig u r a 2 . 6 : E s c a la s p r o d u z i d a s p e l o ( a ) E D F e ( b ) R M
( a ) E s c a l o n a m e n t o E D F
0 1 0 2 0 3 0 5 0 4 0 6 0
t
A , B A A B
0 1 0 2 0 3 0 5 0 4 0 6 0
t
( b ) E s c a l o n a m e n t o R M
A , B A A B
2.4.3 Escalonamento "Deadline" Monotnico [LeW82]
O "Deadline Monotonic" introduzido em [LeW82] estende o modelo de tarefas do
Taxa Monotnica. A premissa do RM que limitava os valores de "deadlines" relativos
aos valores dos perodos das tarefas (D
i
=P
i
), em muitas aplicaes, pode ser
considerada bastante restritiva. O modelo de tarefas do DM tambm define tarefas
peridicas independentes, o pior caso de tempo de processamento das tarefas (C
i
) e o
[ ] U
C
P
i
i
i
n
1
1 3 .
2. O Escalonamento de Tempo Real 26
chaveamento entre tarefas de durao nula. Porm assume "deadlines" relativos
menores ou iguais aos perodos das tarefas (D
i
P
i
).
A poltica do DM define uma atribuio esttica de prioridades, baseada nos
"deadlines" relativos das tarefas (D
i
). As prioridades so atribudas na ordem inversa
dos valores de seus "deadlines" relativos. A produo da escala, portanto, feita em
tempo de execuo por escalonador preemptivo dirigido a prioridades. O esquema de
prioridades fixas do DM tambm define um escalonamento esttico e "on-line". O
"Deadline" Monotnico tambm um algoritmo timo na sua classe de problema. A
figura 2.7 mostra a escala produzida pelo DM para um conjunto de tarefas peridicas
que apresentam "deadlines" menores que seus respectivos perodos.
t a r e f a s p e r i d i c a s C i P i D i p i
t a r e f a A 2 1 0 6 1
t a r e f a B 2 1 0 8 2
t a r e f a C 8 2 0 1 6 3
0 4 8 1 2 2 0 1 6 2 4
t
A , B , C A , B , C A , B
d d
B
d
C
F i g u r a 2 . 7 : E s c a l a p r o d u z i d a p e l o D M
t a r e f a A -
t a r e f a B -
t a r e f a C -
Na introduo desse algoritmo os autores no apresentaram em [LeW82] um teste
correspondente. Em [ABR91] definido um teste suficiente e necessrio para o DM,
baseado no conceito de tempo de resposta de uma tarefa. Uma evoluo deste teste
descrito na seqncia, no item 2.5.2.
2.5 Testes de Escalonabilidade em Modelos Estendidos
Os testes de escalonabilidade apresentados at aqui so baseados em limites na
utilizao do processador. Os modelos de tarefas nesses algoritmos preemptivos,
baseados em prioridades, so mantidos simples o que facilita as anlises nesses testes.
Qualquer extenso nos modelos permitindo, por exemplo, que tarefas possam ter
relaes de precedncia entre si ou que os "deadlines" assumam valores arbitrrios,
define modelos mais prximos de aplicaes concretas de tempo real. Porm, com essas
extenses, os testes fundamentados na noo de utilizao, como apresentados
anteriormente, passam a ser condies necessrias e novos testes mais restritivos so
desejveis.
2.5 Testes de Escalonabilidade em Modelos Estendidos 27
So muitas as propostas na literatura de extenses dos modelos de [LiL73]. Estes
modelos apresentados no item 2.4 podem ser estendidos, por exemplo, para inclurem
tambm tarefas espordicas. Nos testes que se seguem podemos interpretar o valor P
i
tambm como o mnimo intervalo entre requisies (min
i
) de uma tarefa espordica T
i
[ABR91], [TBW94]. Garantir uma tarefa espordica na sua maior freqncia implica
em ter ativaes menos freqentes tambm respeitando suas restries temporais.
Como visto anteriormente, a anlise (ou teste) de escalonabilidade tenta responder
as questes sobre o atendimento dos requisitos de correo temporal de um conjunto de
tarefas tempo real quando uma determinada poltica de escalonamento, e portanto uma
atribuio de prioridades feita. Nessas anlises so considerados cenrios de pior
caso. Alm de considerarem as tarefas executando com os seus piores casos de tempo
de computao (C
i
) e com as suas maiores freqncias de ativao (no caso de tarefas
espordicas), esses testes so construdos levando em conta o Instante Crtico. O pior
caso de ocorrncia de tarefas na fila de Pronto do processador identificado como
instante crtico, ou seja, o instante onde todas as tarefas do sistema esto prontas para
a ocupao do processador. Se nesses cenrios de pior caso um conjunto de tarefas
consegue recursos suficientes para atender suas restries, em situaes mais favorveis
certamente tambm atender.
Na literatura, tanto para escalonamentos com prioridades fixas como para
prioridades dinmicas so descritos testes de escalonabilidade exatos ou suficientes, que
exploram modelos de tarefas mais complexos. Esses testes podem ainda ser construdos
usando a noo de utilizao ou estarem baseados em conceitos como tempo de
resposta e demanda de processador. Nesse item exploramos alguns testes para polticas
de prioridade fixa. Os testes referentes a polticas de prioridade dinmica seguem o
mesmo estilo de apresentao e, foram colocados no Anexo A no sentido de simplificar
a apresentao deste captulo.
2.5.1 "Deadline" Igual ao Perodo
Ainda no estendendo o modelo do algoritmo Taxa Monotnica ("Rate
Monotonic"), mas tentando apresentar um teste com melhor desempenho do que o
original, em [LSD89] apresentado um teste onde a utilizao do processador no tem
mais um sentido esttico, dependente somente das restries temporais das tarefas, mas
tambm funo de uma janela de tempo t considerada no seu clculo. As tarefas de
prioridade maior ou igual a i que esto disponveis para execuo no processador no
intervalo t constituem a carga cumulativa ("workload") W
i
(t) deste intervalo e dada
por:
[ ] W t
t
P
C
i
j j
i
j
( ) . ,
1
1
1
1
1
4
2. O Escalonamento de Tempo Real 28
onde t/P
j
1 corresponde ao mximo nmero de ocorrncias de uma tarefa T
j
no intervalo
t e t/P
j
1.C
j
define as necessidades de processador dessa mesma tarefa no intervalo
considerado. A diviso do "workload" W
i
(t) pelo valor de t d a percentagem de
utilizao do processador nesse intervalo de tempo t, considerando apenas tarefas de
prioridade maior ou igual a Ti :
[ ] U t
W t
t
i
i
( )
( )
. 5
A condio necessria e suficiente para que a tarefa Ti seja escalonvel que exista
um valor de t em que a sua utilizao U
i
(t) seja menor ou igual a 1, isto , que a carga
de trabalho W
i
(t) no supere o intervalo de tempo t (W
i
(t) t) [LSD89]. A dificuldade
deste teste est em se determinar este valor de t.
Como o modelo define tarefas peridicas com instante crtico ocorrendo em t = 0, se
cada tarefa T
i
respeitar o seu primeiro "deadline" ento os "deadlines" subseqentes,
referentes a suas outras ativaes, tambm sero atendidos. Com isto, os valores de t
podem se limitar ao intervalo (0,P
i
]. Neste caso a procura de t pode se resumir a testar
os valores de mnimo de U
i
(t) no intervalo considerado:
i, min
0< t Pi
U
i
(t) 1,
No lugar de fazer uma procura entre todos os valores de t no intervalo (0, P
i
], os
clculos podem se resumir a testar os valores de :
[ ] S k P j i k
P
P
i j
i
j
1
]
1
1
'
1 1 2 6 , , , . . . , .
Os pontos descritos em S
i
correspondem aos tempos de chegada das ativaes das
tarefas T
j
de prioridade maior ou igual a T
i
, ocorrendo dentro do perodo P
i
. Estes
pontos correspondem aos mnimos de U
i
(t), uma vez que, esta funo monotnica
decrescente nos intervalos entre chegadas de tarefas T
j
. Logo, um conjunto de tarefas
peridicas independentes, com instante crtico em t=0 e escalonadas segundo o RM,
ter seus "deadlines" respeitados se :
i, min
t Si
U
i
(t) 1. [7]
O teste acima quando comparado com [2], embora mais complexo, pode aprovar
conjuntos de tarefas que seriam rejeitados pelo teste suficiente proposto originalmente
para o RM. O teste composto a partir de [5] e [7] permite uma maior utilizao do
processador, formando uma condio suficiente e necessria [LSD89], [Fid98].
Como exemplo, considere o conjunto de tarefas da figura 2.6 (tabela 2.2) em que
ocorre na escala do RM, a perda do "deadline" da tarefa T
2
em t=50. Para a verificao
2.5 Testes de Escalonabilidade em Modelos Estendidos 29
das condies de escalonabilidade do conjunto de tarefas usamos o teste formado por
[5] e [7].
t a r e f a s p e r i d i c a s C
i
P
i
D
i
t a r e fa T
1
1 0 2 0 2 0
t a r e fa T
2
2 5 5 0 5 0
T a b e la 2 . 2 : E x e m p lo d a fig u r a 2 . 6
Nessa verificao, inicialmente temos que calcular as utilizaes U
i
(t) para todas as
tarefas do conjunto. Comeamos ento calculando a carga de trabalho correspondente
de cada tarefa (equao [4]):
W t
t
e
1
2 0
1 0 ( ) .
1
1
1
W t
t t
2
5 0
2 5
2 0
1 0 ( ) . . ,
1
1
1
+
1
1
1
determinamos as utilizaes (equao [5]):
U t
W t
t
e U
W t
t
1
1
2
2
( )
( ) ( )
.
A dificuldade fazer a inspeo na procura de valores de t que determinam U
i
(t) 1.
Para a tarefa T
1
esses valores so obtidos a partir de S
1
([6]): S
1
= {20}. Ento, para o
valor de t=20, a utilizao U
1
(20) determinada como sendo de 0,5. Logo, pela
condio [7], a tarefa T
1
escalonvel.
O conjunto referente a T
2
, usando tambm [6], formado por: S
2
= {20, 40, 50}.
A partir deste conjunto determinada U
2
(t):
O mximo valor de utilizao U
2
(t) ocorre em t = 20 (o menor valor de t em S
2
) e,
usando a condio [7], determinado que o conjunto de tarefas da tabela 2.2 de fato
no escalonvel pelo RM.
2.5.2 "Deadline" Menor que o Perodo
O modelo de tarefas, no teste que se segue, relaxa em escalonamentos de prioridade
fixa a condio que todas as tarefas peridicas independentes devem ter seus
t = 20 U2(20) = 1,75
t = 40 U2(40) = 1,12
t =50 U2(50) = 1,1.
2. O Escalonamento de Tempo Real 30
"deadlines" relativos iguais aos seus respectivos perodos. O modelo assume tambm
tarefas com "deadlines" menores aos seus perodos (D
i
P
i
). Esse teste, diferentemente
dos anteriores, est fundamentado no conceito de tempo de resposta. Em [JoP86],
tempo de resposta mximo de uma tarefa foi introduzido como sendo o tempo
transcorrido entre a chegada e o trmino de sua execuo, considerando a mxima
interferncia que a tarefa pode sofrer de outras tarefas de maior ou igual prioridade.
Uma anlise de escalonabilidade que se utilize desse conceito deve representar ento o
pior caso de interferncias (em termos de tempo) sobre cada tarefa do sistema.
Para o clculo do tempo de resposta mximo de uma tarefa necessrio que se
defina uma janela de tempo R
i
que corresponda ao intervalo de tempo mximo
transcorrido da liberao de uma tarefa T
i
at o trmino de sua execuo. A largura R
i
corresponde ao tempo necessrio, em situao de instante crtico, para a execuo de T
i
e de todas as tarefas com prioridades maiores ou iguais a i (p
i
=i). Nestas condies, o
tempo de resposta mximo R
i
da tarefa T
i
dado por :
R C I
i i j
j
+
hp (i)
onde hp(i) o conjunto de prioridades maior que i e, I
j
a interferncia que a tarefa T
i
pode sofrer de uma tarefa T
j
de prioridade maior, durante a largura R
i
. A interferncia I
j
calculada por:
I
R
P
C
j
i
j
j
1
1
1
1
onde R
i
/ P
j
1 representa o nmero de liberaes de T
j
em R
i
. A expresso do tempo de
resposta R
i
pode ser reescrita como:
[ ] R C
R
P
C
i i
i
j j
j
+
1
1
1
1
hp(i)
8
Uma tarefa T
i
mantm suas propriedades temporais sempre que R
i
D
i
. Nesta
verificao necessrio a determinao de R
i
a partir de [8]. Porm a largura R
i
aparecendo em ambos os lados dessa equao, implica na necessidade de um mtodo
iterativo para essa determinao. Em [JoP86] apresentado um mtodo para solucionar
[8]:
R C
R
P
C
i
n
i
i
n
j j
j
+
1
1
1
1
1
h p ( i )
onde a soluo conseguida a partir do clculo de R
i
n
, a n
sima
aproximao de R
i
,
quando R
i
n+1
= R
i
n
. Nesse mtodo iterativo assumido, como condio de partida,
R
i
0
=C
i
. O mtodo no converge quando a utilizao do conjunto de tarefas for maior
que 100%.
O teste fundamentado no conceito de tempo de resposta determina ento um
2.5 Testes de Escalonabilidade em Modelos Estendidos 31
conjunto de n tarefas de tempo real como escalonvel sempre que a condio i:1 in
R
i
D
i
for verificada. Os clculos dos tempos de respostas formam a base para um teste
suficiente e necessrio.
tarefas peridicas C
i
P
i
D
i
tar efa A 2 10 6
tar efa B 2 10 8
tar efa C 8 20 16
Tabela 2.3: Exemplo da figur a 2.7
Para clarificar o uso desse teste de escalonabilidade, considere o exemplo que foi
apresentado na figura 2.7 onde era apresentada uma escala produzida pelo "Deadline
Monotonic". As caractersticas das tarefas so reproduzidas na tabela 2.3.
A poltica DM pelos valores da tabela define uma atribuio de prioridades onde
pA>pB>pC. Os tempos de resposta das tarefas consideradas so determinados a partir da
aplicao da equao [8] nos valores da tabela 2.3. A tarefa T
A
,
por ser a mais
prioritria, no sofre interferncia das demais e o seu tempo de resposta dado por
R
A
=C
A
=2. T
A
escalonvel porque seu tempo de resposta mximo menor que seu
"deadline" relativo (D
A
= 6) O clculo de R
B
, ao contrrio, envolve mais passos devido
a interferncia que T
B
sofre de T
A
. Aplicando [8] obtido:
R C
B B
0
2
R
R
B
B
1
2
2
2
1 0
2 4
2
4
1 0
2 4
+
1
1
1
+
1
1
1
.
.
A tarefa T
B
que apresenta R
B
= 4 tambm escalonvel (R
B
D
B
). O tempo R
C
, por
sua vez, envolve as interferncias de T
A
e T
B
em T
C
. A partir de [8]:
R C
C C
0
8
R
R
R
C
C
C
1
2
3
8
8
1 0
2
8
1 0
2 1 2
8
1 2
1 0
2
1 2
1 0
2 1 6
8
1 6
1 0
2
1 6
1 0
2 1 6
+
1
1
1
+
1
1
1
+
1
1
1
+
1
1
1
+
1
1
1
+
1
1
1
. .
. .
. .
A tarefa T
C
tambm escalonvel apresentando um tempo de resposta (16 unidades
de tempo) no limite mximo para o seu "deadline" relativo (R
C
= D
C
). Os resultados
obtidos confirmaram a escala obtida pelo DM para o conjunto de tarefas da figura 2.7.
2. O Escalonamento de Tempo Real 32
Nos modelos apresentados at aqui as tarefas so assumidas como peridicas e
liberadas sempre no incio de cada perodo. Contudo isto nem sempre corresponde a
uma hiptese realista. Escalonadores ativados por tempo ("ticket scheduler" [TBW94])
podem ser fonte do atraso na liberao de tarefas: as tarefas tem as suas chegadas
detectadas nos tempos de ativao do escalonador, determinando atrasos nas suas
liberaes. Esses atrasos podem ser expressados no pior caso como "release jitters" (J).
Para determinar as modificaes necessrias no sentido de representar no clculo
dos tempos de resposta as variaes na liberao das tarefas, necessrio que se
introduza o conceito de perodo ocupado (busy period). Um perodo ocupado i
corresponde a uma janela de tempo W
i
onde ocorre a execuo contnua de tarefas com
prioridade maior ou igual a i (p
i
= i). O "i-busy period" associado com a tarefa T
i
comea quando da liberao da instncia de T
i
e parte do pressuposto que todas as
tarefas de prioridades maior que i esto na fila de pronto.
Se considerarmos a janela W
i
, o limite mximo das ocorrncias de T
j
nesse intervalo
dado por W
i
/P
j
1. Porm ao se assumir que uma instncia de T
j
, anterior ao incio de
W
i
, experimenta um atraso mximo J
j
na sua liberao determinando a interferncia
dessa instncia sobre T
i
associada com Wi, o nmero de ativaes de T
j
que interferem
com T
i
passa a ser (W
i
+J
j
) / P
j
1. Nessas condies o clculo de W
i
dado por
[TBW94] :
[ ] W C
W J
P
C
i i
i j
j j
j
+
+
1
1
1
1
hp(i)
9
onde a soluo de [9] conseguida pelo mesmo mtodo iterativo usado para resolver
[8]. Wi o intervalo entre a liberao e o termino de T
i
. Para o clculo do tempo de
resposta mximo (R
i
), correspondendo ao intervalo de tempo entre a chegada e o
trmino da instncia da tarefa T
i
, necessrio que se considere tambm o atraso mximo
experimentado por T
i
na sua liberao:
[ ] R W J
i i i
+ . 10
O teste de um conjunto de tarefas experimentando atrasos em suas liberaes leva
ento em considerao [9], [10] e a verificao da condio i:1in R
i
D
i
.
2.5.3 Deadline Arbitrrio
O teste baseado em tempos de resposta calculados a partir de [9] e [10] exato
quando aplicado em modelos com D
i
P
i
. Porm em modelos de "deadlines" arbitrrios
onde "deadlines" podem assumir valores maiores que os respectivos perodos (D
i
> P
i
),
esse teste deixa de ser uma condio suficiente [TBW94]. Tarefas que apresentam seus
"deadlines" maiores que o seus perodos, sofrem o que se pode chamar de
2.5 Testes de Escalonabilidade em Modelos Estendidos 33
interferncias internas, ou seja, uma vez que se pode ter D
i
> P
i
, ocorrncias anteriores
de uma mesma tarefa podem interferir numa ativao posterior.
necessrio que se estenda o conceito de "busy period" para se determinar o pior
caso de interferncia em uma tarefa T
i
onde suas ativaes podem se sobrepor. O "i-
busy period" no comea mais com a liberao da instncia de T
i
que se deseja calcular
o tempo de resposta. O perodo ocupado i continua sendo a janela de tempo W
i
que
inclui essa instncia de T
i
e que corresponde a maior execuo contnua de tarefas com
prioridade maior ou igual a i (p
i
= i). Porm, o incio desse perodo de execuo
contnua de tarefas se d com a liberao de outra ativao anterior de T
i
. Nessa
extenso assumido que a execuo de qualquer liberao de uma tarefa ser atrasada
at que liberaes anteriores da mesma tarefa sejam executadas completamente.
Considera-se ento o "i-busy period" incluindo q+1 ativaes de T
i
que podem se
sobrepor na concorrncia ao processador pois D
i
> P
i
. O valor da janela de tempo W
i
(q)
correspondente dado por [TBW94]:
[ ] W q q C
W q
P
C
i i
i
j j
j
( ) ( )
( )
. + +
1
1
1
1
1 1 1
h p (i )
O valor q.C
i
em [11] representa a interferncia interna que a ltima instncia de T
i
sofre em W
i
(q). Por exemplo, se q=2 ento T
i
ter trs liberaes em W
i
(q). O tempo de
resposta da (q+1)
sima
ativao de T
i
dada por:
[ ] R q W q qP
i i i
( ) ( ) 12
ou seja, o tempo de resposta dado considerando o desconto do nmero de perodos de
T
i
em W
i
(q), anteriores a (q+1)
sima
ativao de T
i
. Para que se obtenha o tempo de
resposta mximo R
i
da tarefa T
i
necessrio que se faa a inspeo de todos "i-busy
periods", na ordem de valores crescentes de q (q=0, 1, 2, 3,..), at um valor de janela
que verifique a condio:
W q q P
i i
( ) ( ) . + 1
Esta janela corresponde ao maior valor de "i-busy period" que se consegue, antes da
execuo de uma tarefa menos prioritria que i [TBW94]. Nessas condies, o tempo
de resposta mximo R
i
calculado por:
R max R q
i
q
i
0 1 2 , , , ...
( ).
Se o efeito de "deadlines" arbitrrios for includo em modelos onde as liberaes
no coincidem com os tempos de chegada das instncias da tarefa T
i
, a janela de tempo
W
i
(q) e o tempo de resposta R
i
passam a ser dados, respectivamente, por:
2. O Escalonamento de Tempo Real 34
[ ] W q q C
W q J
P
C
i i
i j
j j
j
( ) ( )
( )
+ +
+
1
1
1
1
1 13
hp(i)
[ ] e R max J W q qP
i
q
i i i
+
0 1 2
14
, , ,...
( ( ) ).
O teste de um conjunto de tarefas com "deadlines" arbitrrios e experimentando
atrasos em suas liberaes leva ento em considerao [13], [14] e a verificao da
condio i:1in R
i
D
i
. Este teste funciona como uma anlise a priori (em tempo de
projeto) vlida para qualquer poltica de prioridade fixa. A soluo iterativa da equao
[13] tem uma complexidade pseudo-polinomial que para propsitos prticos pode ser
assumida como polinomial [TBW94].
tarefas peridicas J
i
C
i
P
i
D
i
tar efa T
1
1 10 40 40
tar efa T
2
3 10 80 25
tar efa T
3
- 5 20 40
Tabela 2. 4: Tar efas com Deadlin es Ar bitr r ios
Como um exemplo de aplicao deste teste para modelos com "deadlines"
arbitrrios, considere o conjunto de tarefas dado pela tabela 2.4. Suponha que queremos
determinar o tempo de resposta mximo da tarefa T
3
. Considerando uma atribuio de
prioridades onde p
1
> p
2
> p
3
. A tarefa T
3
sofre interferncia das outras duas e pela
equao [13], obtemos:
W q q
W q W q
3
3 3
1 5
1
4 0
1 0
3
8 0
1 0 ( ) ( ) .
( )
.
( )
. + +
+
1
1
1
+
+
1
1
1
Para que se obtenha o tempo de resposta mximo R
3
da tarefa T
3
necessrio que se
faa a inspeo de todos "3-busy periods", na ordem de valores crescentes de q
(q=0, 1, 2, 3,..), at que o valor de janela seja limitado por: W
3
(q) (q+1).P
3
. Ento,
para q = 0 e usando a equao [13], obtido:
W C
W
W
3
0
3
3
1
3
2
0 5
0 5
5 1
4 0
1 0
5 3
8 0
1 0 2 5
0 5
2 5 1
4 0
1 0
2 5 3
8 0
1 0 2 5
( )
( ) . .
( ) . .
+
+
1
1
1
+
+
1
1
1
+
+
1
1
1
+
+
1
1
1
O valor do tempo de resposta R
3
(0) dado por [12] e corresponde a 25. Com W
3
(0)
superando o perodo P
3
(P
3
= 20) ento, essa janela no corresponde ao maior "busy
2.6 Tarefas Dependentes:Compartilhamento de Recursos 35
period" de prioridade 3. Assumindo ento q =1:
W C
W
W
3
0
3
3
1
3
2
1 5
1 1 0
5 1
4 0
1 0
5 3
8 0
1 0 3 0
1 1 0
3 0 1
4 0
1 0
3 0 3
8 0
1 0 3 0
( )
( ) . .
( ) . .
+
+
1
1
1
+
+
1
1
1
+
+
1
1
1
+
+
1
1
1
Com isto obtemos pela equao [12] R
3
(1) = W
3
(1) - P
3
= 10. Como W
3
(1) < 2P
3
,
temos ento o mximo "3-busy period" envolvendo duas ativaes da tarefa T
3
. Logo o
tempo de resposta mximo da tarefa T
3
o maior dos tempos de resposta obtidos, ou
seja, de valor 25, correspondendo a primeira ativao de T
3
no maior "3-busy period".
A figura 2.8 mostra esse perodo ocupado de prioridade 3 onde T
3
liberada em suas
duas ativaes em t = 0 e t = 20. Por sua vez, devido aos seus "releases jitters", as
tarefas T
1
e T
2
que chegam em 1 e 3, respectivamente, s so liberadas em t = 0. A
primeira ativao de T
3
empurrada para fora de seu perodo interferindo com a
ativao seguinte da mesma tarefa.
T2 T1 T3
tarefas peridicas Ji Ci Pi Di
tar efa T1 1 10 40 40
tar efa T2 3 10 80 25
tar efa T3 - 5 20 40
T3
t
0 10
20 30
d2
-3 -1
Figura 2.8: Maior Perodo Ocupado da Tarefa T3
tar efa T1 -
tar efa T2 -
tar efa T3 -
2.6 Tarefas Dependentes:Compartilhamento de Recursos
Nos modelos discutidos at a presente seo, as tarefas eram apresentadas como
independentes o que, se considerarmos a grande maioria de aplicaes de tempo real,
no corresponde a uma premissa razovel. Em um ambiente multitarefas o
compartilhamento de recursos implcito e determina alguma forma de relao de
excluso entre tarefas. Comunicaes entre tarefas residindo no mesmo processador,
por exemplo, podem se dar atravs de variveis compartilhadas, usando mecanismos
como semforos, monitores ou similares para implementar a excluso mtua entre as
2. O Escalonamento de Tempo Real 36
tarefas comunicantes.
T
1
T
2
t
p 1 > p 2 > p 3 > p 4
p e d i d o d e e n t r a d a e m S C
e x e c u t a n d o e m S C
T
T
4
F i g u r a 2 . 9 : I n v e r s o d e p r i o r i d a d e s
O compartilhamento de recursos e as relaes de excluso decorrentes do mesmo,
determinam bloqueios em tarefas mais prioritrias. Esses bloqueios so identificados na
literatura de tempo real como inverses de prioridades. Considere o cenrio da figura
2.9, formado pelas tarefas peridicas T
1
, T
2
, T
3
e T
4
, apresentadas na ordem crescente
de seus perodos. Uma escala construda sobre o conjunto de tarefas baseada no
algoritmo "Rate Monotonic". T
1
e T
4
compartilham um recurso guardado por um
mecanismo de excluso mtua. Na escala da figura 2.9, o bloqueio que T
1
sofre pelo
acesso anterior de T
4
ao recurso compartilhado caracteriza um exemplo de inverso de
prioridade: mesmo liberada a tarefa T
1
no consegue evoluir devido ao bloqueio. A
tarefa T
1
, durante o bloqueio, sofre tambm interferncias de T
2
e de T
3
. Esse fato
ocorre porque T
4
a tarefa menos prioritria do conjunto e sofre preempes dessas
tarefas intermedirias. As preempes de T
2
e de T
3
sobre a tarefa T
4
podem
caracterizar um bloqueio de T
1
com durao de difcil determinao.
Quando as tarefas se apresentam como dependentes, a inverso de prioridades
inevitvel em um escalonamento dirigido a prioridades. O que seria desejvel que as
inverses de prioridades que eventualmente possam ocorrer nas escalas produzidas
sejam limitadas. nesse contexto que alguns mtodos para controlar o acesso em
recursos compartilhados foram introduzidos. Esses mtodos impem certas regras no
compartilhamento dos recursos de modo que o pior caso de bloqueio experimentado por
uma tarefa no acesso a uma varivel compartilhada possa sempre ser conhecido a
priori.
Nesse item examinamos duas destas tcnicas: o Protocolo Herana de Prioridade e
o Protocolo de Prioridade Teto (Priority Ceiling Protocol) desenvolvidos para
esquemas de prioridades fixas [SRL90]. A tcnica Poltica de Pilha (Stack Resource
Policy [Bak91]) prpria para escalonamentos de prioridades dinmicas apresentada
no anexo A.
2.6 Tarefas Dependentes:Compartilhamento de Recursos 37
2.6.1 Protocolo Herana de Prioridade
Uma soluo simples para o problema de inverses prioridades no limitadas seria
ter desabilitada a preempo quando tarefas entrassem em sees crticas [AuB90].
Esse mtodo de escalonamento hbrido (preemptivo e no preemptivo) evita as
interferncias de tarefas intermedirias, porm, bastante penalizante com tarefas mais
prioritrias que no usam os recursos compartilhados, quando as sees crticas
envolvidas no so pequenas.
O mtodo de Herana de Prioridade apresentado por [SRL90] corresponde a uma
soluo eficiente para tratar o problema de inverses de prioridades provocadas pelas
relaes de excluso. Nesse protocolo as prioridades deixam de ser estticas; toda vez
que uma tarefa menos prioritria bloqueia uma de mais alta prioridade em um recurso
compartilhado, a menos prioritria ascende prioridade da tarefa bloqueada mais
prioritria.
Descrio do Protocolo
O uso do Protocolo Herana de Prioridade (PHP) determina que as tarefas sejam
definidas possuindo uma prioridade nominal ou esttica, atribuda por alguma poltica
de prioridade fixa (RM, DM, etc.) e uma prioridade dinmica ou ativa derivada das
aes de bloqueio que ocorrem no sistema. Inicialmente, numa situao sem bloqueio
no sistema, todas as tarefas apresentam suas prioridades estticas coincidindo com suas
prioridades ativas. As tarefas so escalonadas tomando como base suas prioridades
ativas.
Quando uma tarefa T
i
bloqueada em um semforo, sua prioridade dinmica ou
ativa transferida para a tarefa T
j
que mantm o recurso bloqueado. Quando reassume,
T
j
executa o resto de sua seo crtica com a prioridade herdada de T
i
(p
j
= p
i
). Uma
tarefa herdada, ao se executar, sempre a mais alta das prioridades das tarefas que
mantenha sob bloqueio. No momento em que T
j
ao completar sua seo crtica, libera o
semforo associado, a sua prioridade ativa retorna prioridade nominal ou assume a
mais alta prioridade das tarefas que ainda estejam sob seu bloqueio.
A aplicao do Protocolo Herana de Prioridade no exemplo anterior (da figura 2.9)
implica que T
4
no mais sofrer de interferncias intermedirias (preempes de T
2
e
T
3
) porque herda a prioridade de T
1
em t=5 (figura 2.10). E, ao sair da sua seo crtica
(em t=7, figura 2.10), T
4
volta ao nvel de sua prioridade original.
2. O Escalonamento de Tempo Real 38
T
T
2
p 1 > p 2 > p 3 > p 4
b l o q u e i o d i r e t o p o r T 4
e x e c u t a n d o e m S C
T
3
T
4
F i g u r a 2 . 1 0 : E x e m p l o d o u s o d o P H P
0 1 2 3 4 5 6 7 8 9 1 0 1 1
t
b l o q u e i o p o r h e r a n a
d e T 2 e T 3 p o r T 4
Uma tarefa mais prioritria quando executando sob o PHP pode sofrer dois tipos de
bloqueios [But97]:
Bloqueio direto: que ocorre quando a tarefa mais prioritria tenta acessar o recurso
compartilhado j bloqueado pela tarefa menos prioritria.
Bloqueio por herana: ocorre quando uma tarefa de prioridade intermediria
impedida de continuar sua execuo por uma tarefa que tenha herdado a prioridade
de uma tarefa mais prioritria.
No exemplo da figura 2.10, as tarefas T
2
e T
3
sofrem bloqueios por herana em t =6
(T
2
e T
3
chegam em t = 6), e T
1
est sujeita a um bloqueio direto em t = 5.
O PHP define um limite superior para o nmero de bloqueios que uma tarefa pode
sofrer de outras menos prioritrias. Se uma tarefa T
i
pode ser bloqueada por n tarefas
menos prioritrias, isto significa que, em uma ativao, T
i
pode ser bloqueada por n
sees crticas, uma por cada tarefa menos prioritria. Por outro lado, se houverem m
distintos semforos (recursos compartilhados) que podem bloquear diretamente T
i
,
ento essa tarefa pode ser bloqueada no mximo a durao de tempo correspondente s
m sees crticas, sendo uma por cada semforo. Em [SRL90] ento assumido que sob
o Protocolo Herana de Prioridade, uma tarefa T
i
pode ser bloqueada no mximo a
durao de min (n, m) sees crticas.
A ocorrncia de sees crticas aninhadas permite o surgimento de um terceiro tipo
de bloqueio: o transitivo. A figura 2.11, mostra quatro tarefas (T
1
, T
2
, T
3
e T
4
) onde T
2
e
T
3
possuem sees aninhadas. T
1
mostrada bloqueada por T
2
; por sua vez, a tarefa T
2
bloqueada por T
3
e, por fim, T
3
bloqueada por T
4
. Nessa cadeia de bloqueios, a
tarefa T
1
sofre um bloqueio indireto ou transitivo de T
4
. A tarefa T
1
s retoma o seu
processamento quando houver a liberao, na seqncia, das sees crticas de T
4
, T
3
e
T
2
, respectivamente. Bloqueios transitivos portanto, criam a possibilidade de que se
formem cadeias de bloqueios que podem levar at mesmo a situaes de deadlocks.
2.6 Tarefas Dependentes:Compartilhamento de Recursos 39
T
1
T
P r i o r i d a d e s : p 1 > p 2 > p 3 > p 4
b l o q u e i o t r a n s i t i v o :
T
4
h e r d a a p r i o r i d a d e d e T
1
T
3
T
4
F i g u r a 2 . 1 1 : B l o q u e i o t r a n s i t i v o
S e e s C r t i c a s :
E x e c u t a n d o e m S C
0 1 2 3 4 5 6 7 8 9 1 0 1 1
t
Extenses de Testes de Escalonabilidade Tomando como Base o PHP
Uma determinao precisa do valor de bloqueio mximo B
i
que uma tarefa T
i
pode
sofrer quando do uso do PHP certamente bem difcil, uma vez que, sees crticas de
tarefas menos prioritrias podem interferir com T
i
atravs de diferentes tipos de
bloqueios. Dependendo da complexidade do modelo de tarefas, fica impraticvel a
determinao precisa de B
i
. Alguns autores apresentam mtodos para estimativas desse
tempo de bloqueio ([BuW97], [But97] e [Raj91]). Um clculo mais preciso de B
i
envolve procuras exaustivas que considerando a complexidade do conjunto de tarefas
pode ser impraticvel.
O limite imposto pelo PHP no bloqueio mximo (B
i
) que uma tarefa T
i
pode sofrer
de tarefas menos prioritrias, tem que se refletir nas anlises de escalonabilidade de
esquemas baseados em prioridades fixas. Em [SRL90] e [SSL89] o teste do RM
(equao [2]) estendido no sentido de incorporar as relaes de excluso de um
conjunto de tarefas:
[ ]
C
P
B
P
i i
j
j j
i
i
i
i
_
,
+
1
1
2 1 15 ( ), .
O somatrio do teste acima considera a utilizao de tarefas com prioridade maior
ou igual a p
i
e o termo B
i
/P
i
corresponde utilizao perdida no bloqueio de T
i
por
tarefas menos prioritrias. Para que um conjunto de n tarefas seja considerado
escalonvel pelo "Rate Monotonic", necessrio que as n condies geradas a partir
desse teste sejam verificadas.
2. O Escalonamento de Tempo Real 40
t a r e f a s C i P i B i
T 1 6 1 8 2
T 2 4 2 0 4
T 3 1 0 5 0 0
T a b e l a 2 . 5
A tabela 2.5 apresenta um conjunto de tarefas peridicas com seus respectivos
bloqueios mximos quando executadas sob o PHP. O uso do teste [15] nesse conjunto
de tarefas implica nas relaes abaixo:
C
P
B
P
1
1
1
1
1 +
C
P
C
P
B
P
1
1
2
2
2
2
0 8 2 + + ,
C
P
C
P
C
P
1
1
2
2
3
3
0 7 8 + + ,
Todas essas relaes acima se verificam para os valores de indicados na tabela 2.5;
o que indica que o conjunto escalonvel e todas as tarefas se executaro dentro de
seus "deadlines".
Uma outra variante desse teste onde a escalonabilidade pode ser verificada apenas
por uma equao s, tambm apresentado em [SRL90]:
[ ]
C
P
max
B
P
B
P
n
i
i
n
n
n
i
n
+
_
,
_
,
1
1
1
1
2 1 16 , . . . . , . .
O novo teste mais simples que o anterior porm mais restritivo e menos preciso.
Como exemplo, considere o uso do teste [16] na verificao da escalonabilidade do
mesmo conjunto de tarefas da tabela 2.5. A equao [16] aplicada s condies desse
mesmo conjunto implica em:
C
P
C
P
C
P
m a x
B
P
B
P
1
1
2
2
3
3
1
1
2
2
1
3
3 2 1 + + +
_
,
_
,
,
onde, se substituirmos os valores da tabela 2.5, chegaremos a concluso que o conjunto
no escalonvel. Como esse teste mais restritivo, todo o conjunto descartado em
relao ao teste [16] deve ser verificado com o teste [15] no sentido de confirmar o
descarte. Porm o conjunto que passar pelo teste [16] certamente escalonvel.
Os testes para polticas de prioridades fixas, apresentados na seo 2.5, podem ser
facilmente estendidos no sentido de incluir os bloqueios que sofrem cada tarefa no
conjunto. O teste proposto em [LSD89] baseado em utilizao, na sua verso estendida
2.6 Tarefas Dependentes:Compartilhamento de Recursos 41
toma a seguinte forma, ([Fid98]) :
[ ] U t
t
P
C B
t
i min U t
i
j j
i
j i
t P i
i
( ) , , ( ) .
1
1
1
1
+
<
1
0
1 17
O bloqueio B
i
nessa equao tambm apresentado como utilizao perdida no
bloqueio de T
i
por tarefas menos prioritrias. O teste baseado em tempo de resposta
para modelos envolvendo "deadlines" arbitrrios apresentado em [TBW94] tambm
facilmente estendido:
[ ] W q q C B
W q J
P
C
i i i
i j
j j
j
( ) ( )
( )
. + + +
+
1
1
1
1
1 18
hp(i)
O bloqueio B
i
apresentado na equao [18] como uma interferncia sofrida por T
i
.
Todos os testes apresentados com as extenses referentes ao limite mximo de bloqueio
definido sob o PHP, deixam de ser exatos e passam a ser condies suficientes. Isto
porque, o clculo de B
i
conforme citado acima, no exato, refletindo um pessimismo
por vezes exagerado.
2.6.2 Protocolo de Prioridade Teto (Priority Ceiling Protocol)
A idia central no "Priority Ceiling Protocol" (PCP), introduzido em [SRL90],
limitar o nmero de bloqueios ou inverses de prioridades e evitar a formao de
cadeias de bloqueios e "deadlocks" em uma ativao de tarefa. O PCP dirigido para
escalonamentos de prioridade fixa, como o "Rate Monotonic". Esse protocolo uma
extenso do Protocolo Herana de Prioridade ao qual se adiciona uma regra de controle
sobre os pedidos de entrada em excluso mtua.
Em essncia, o PCP assegura no mximo uma inverso de prioridades por ativao.
Ou seja, se uma tarefa menos prioritria T
j
tiver uma seo crtica executando em um
recurso compartilhado com T
i
, ento nenhuma outra tarefa menos prioritria que T
i
conseguir entrar em seo crtica que possa tambm bloquear T
i
.
Essa regra evita
tambm que uma tarefa possa entrar em uma seo crtica se j houverem semforos
que podem lev-la a bloqueios.
Descrio do Protocolo
Nesse protocolo, todas as tarefas apresentam tambm uma prioridade nominal ou
esttica, definida pelo RM. Uma prioridade ativa ou dinmica que incorpora o
mecanismo de herana do PHP, tambm usada para definir a incluso da tarefa nas
escalas em tempo de execuo. Sempre que uma tarefa menos prioritria bloquear uma
mais prioritria, sua prioridade ativa assume a prioridade da tarefa mais prioritria. A
2. O Escalonamento de Tempo Real 42
herana de prioridades transitiva, ou seja, se uma tarefa menos prioritria T
3
bloqueia
uma tarefa T
2
de prioridade mdia e, por sua vez, T
2
bloqueia uma tarefa mais
prioritria T
1
, ento T
3
herda a prioridade de T
1
.
Todos os recursos acessados em excluso mtua possuem um valor de prioridade
teto (ceiling C(S
k
)) que corresponde prioridade da tarefa mais prioritria que acessa
o recurso.
A regra que define as entradas ou no em sees crticas enunciada como se segue:
Uma tarefa s acessa um recurso compartilhado se sua prioridade ativa for maior que
a prioridade teto (ceiling) de qualquer recurso j previamente bloqueado. So
excludos dessa comparao recursos bloqueados pela tarefa requerente. Se S
l
for o
semforo com maior prioridade teto entre todos os semforos bloqueados, ento uma
tarefa T
i
s entrar em sua seo crtica se sua prioridade dinmica p
i
for maior que o
"ceiling" C(S
l
). Se p
i
C(S
l
) o acesso negado a T
i
.
Quando nenhum recurso estiver bloqueado ento o acesso ao primeiro recurso ser
sempre permitido. A conseqncia do uso do Protocolo de Prioridade Teto (PCP) que
uma tarefa mais prioritria s pode ser bloqueada por tarefas menos prioritrias uma s
vez por ativao [SRL90].
O exemplo apresentado em [Kop92c] reproduzido aqui no sentido de ilustrar o
efeito do PCP sobre um conjunto de tarefas. As tarefas T
1
, T
2
e T
3
cujas evolues so
apresentadas na figura 2.12, acessam em excluso mtua os recursos R
1
, R
2
e R
3
. A
prioridade teto de cada semforo definido segundo o compartilhamento dos recursos
indicado na figura: C(S
1
)=1, C(S
2
)=1 e C(S
3
)=2. Os eventos na evoluo das tarefas,
sinalizados na figura, so tambm descritos na prpria figura 2.12. Nesse exemplo, a
tarefa T
1
, em cada ativao, bloqueada no mximo uma vez por uma seo crtica de
uma tarefa menos prioritrio.
Alm dos bloqueios diretos e por herana, o PCP introduz uma outra forma de
bloqueio conhecida como bloqueio de "ceiling" onde uma tarefa fica bloqueada porque
no possui prioridade dinmica superior a maior prioridade teto dentre os recursos
ocupados. Esse bloqueio necessrio para evitar as cadeias de bloqueios e os
"deadlocks" [But97]. Na figura 2.12 a tarefa T
1
sofre um bloqueio de "ceiling" no
tempo do evento 7.
O "Immediate Priority Ceiling Protocol (IPCP) uma verso do PCP cuja
finalidade principal a de apresentar um melhor desempenho. A herana de prioridade
no IPCP deixa de se dar quando a seo crtica bloqueia a tarefa mais prioritria. A
tarefa menos prioritria tem sua prioridade ativa elevada, assumindo logo no incio da
seo crtica a prioridade teto do recurso acessado [BuW97]. Uma conseqncia dessa
mudana que uma tarefa pode sofrer bloqueio somente no incio de sua execuo.
Uma vez que comece a executar, a tarefa ter todos os recursos que necessite para o seu
processamento. Sua execuo s poder ser postergada pelas interferncias de tarefas
mais prioritrias. O IPCP mais fcil de se implementar que o PCP e envolve menos
troca de contextos de tarefas. O "Priority Protect Protocol" apresentado nas
2.6 Tarefas Dependentes:Compartilhamento de Recursos 43
especificaes POSIX baseado no IPCP.
Prioridades : p
1
>
p
2
>
p
3 (com p
1
= 1, p
2
= 2 e p
3
= 3)
Semforos : S
1
- S
2
- S
3
-
Eventos Descrio
1 T
3
comea sua execuo
2 T
3
entra em seo crtica (fecha o Semforo S
3
)
3 T
2
inicia seu processamento interrompendo T
3
(preempo de T
3
).
4 T
2
sofre bloqueio direto: S
3
fechado por T
3
que reassume e herda prioridade de T
2
.
5 T
3
entra na seo crtica aninhada ao fechar semforo S
2
6 T
1
inicia e interrompe T
3
. T
1
mais prioritria que T
3
com a prioridade herdada de T
2
.
7 T
1
tenta fechar semforo S
1
, bloqueado por ceiling; possui prioridade igual ao maior
ceiling de semforo j fechado pelas outras tarefas (C(S
2
)=1).
8 T
3
libera semforo S
2
. T
1
reativado e interrompe T
3
. T
1
entra em S
1
.
9 T
1
libera S
1
.
10 T
1
fecha Semforo S
2
.
11 T
1
libera S
2
.
12 T
1
termina e T
3
reassume na prioridade herdada de T
2
.
13 T
3
libera S
3
retornando a sua prioridade esttica. T
2
interrompe T
3
e fecha S
3
.
14,15,16,17 T
2
libera S
3
; fecha e libera S
1
; e completa. T
3
reassume e completa.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Figura 2.12: Exemplo de uso do PCP
T
1
T
T
3
t
Extenses de Testes de Escalonabilidade Tomando como Base o PCP
Os testes de escalonabilidade mostrados anteriormente quando da aplicao do
PHP sobre um conjunto de tarefas continuam vlidos na aplicao do Protocolo de
Prioridade Teto (PCP). A diferena est no valor limite de bloqueio mximo B
i
que
pode experimentar uma tarefa T
i
. No PCP esse valor limite corresponde a durao da
maior seo crtica de tarefas menos prioritrias que podem bloquear T
i
. Logo, nas
equaes [16], [17] e [18], quando se considera o uso do PCP, B
i
assume sempre o
2. O Escalonamento de Tempo Real 44
valor da maior seo crtica que bloqueia T
i
.
Uma seo crtica pertencente a uma tarefa T
j
, guardada pelo semforo S
k
e de
durao D
j,k
pode bloquear por "ceiling" uma tarefa mais prioritria T
i
se e somente se
[SRL90]: p
i
> p
j
e C(S
k
) p
i
. O mximo bloqueio B
i
que T
i
pode sofrer dado pela
durao da maior seo crtica que pode bloquear por "ceiling" essa tarefa ([AuB90],
[But97]):
( ) ( )
{ }
B max D p p C S p
i
j k
j k j i k i
<
,
,
( ) .
t a r e f a s S 1 S 2 S 3
t a r e f a T 1 1 1 0
t a r e f a T 2 1 0 1
t a r e f a T 3 0 4 8
T a b e l a 2 . 6
Para ilustrar o clculo de B
i
sob o uso do PCP, considere a tabela 2.6 que descreve
as duraes de sees crticas (D
j,k
) a partir de condies do problema apresentado na
figura 2.12. De acordo com a equao acima os bloqueios mximos por tarefas so
dados por:
2.7 Tarefas Dependentes: Relaes de Precedncia
Em muitas aplicaes, alguns processamentos no podem ser executados em ordens
arbitrrias mas sim, em ordens previamente definidas, o que determina o surgimento de
relaes de precedncia entre tarefas do conjunto. As escalas produzidas devem
refletir as ordens parciais definidas atravs destas relaes.
Alguns autores preferem expressar as relaes de precedncia entre tarefas com o
uso de "offsets" [Aud93]. Neste caso, a tarefa sucessora de uma precedncia liberada
pela passagem do tempo (liberada por valor de tempo correspondente ao "offset" que
garante o tempo de resposta da predecessora). O uso de "offsets" pode representar em
sub-utilizao de recursos, uma vez que a sucessora sempre liberada por tempo em
situao de pior caso: um "offset" calculado para a pior situao possvel em termos
B1 = max (1,4) = 4
B2 = max (8)= 8
B3 = 0
2.7 Tarefas Dependentes: Relaes de Precedncia 45
de tempo de resposta da tarefa predecessora.
Relaes de precedncia podem ser definidas atravs das necessidades de
comunicao e sincronizao entre as tarefas. As tarefas tipicamente, recebem
mensagens, executam seus processamentos e por fim, enviam seus resultados ou sinais
de sincronizao na forma de mensagens. Com isto, a liberao de uma tarefa sucessora
pode se dar por meio de mensagem [TBW94]. Uma conseqncia direta destas
liberaes por mensagem a existncia de "release jitters" nas liberaes de tarefas
sucessoras.
Conforme a tcnica usada para a liberao de sucessoras, seja por passagem de
tempo ou por mensagem, as relaes de precedncia so representadas nas anlises de
escalonabilidade, por valores de "offsets" ou de "jitters". Em ambos os casos, esses
valores devem garantir o pior caso de tempo de resposta da tarefa predecessora na
relao de precedncia. Ou seja, em termos de anlise de escalonabilidade, os dois
mtodos so equivalentes pois tanto "offsets" como "jitters" devem assumir valores que
garantam a execuo da predecessora no seu pior caso de tempo de resposta, antes da
liberao da sucessora. A diferena est em tempo de execuo; enquanto, a liberao
por passagem de tempo uma tcnica esttica onde o "offset" definido previamente,
impondo sempre o pior caso de liberao, a liberao por mensagem dinmica e o pior
caso de liberao eventualmente pode acontecer.
O conceito de atividade usado como a entidade encapsuladora de tarefas que se
comunicam e/ou se sincronizam. Cada atividade representada por um grafo orientado
acclico onde os nodos representam tarefas e os arcos identificam as relaes de
precedncia. As atividades so ditas sncronas (loosely synchronous activity) quando
as tarefas liberam suas sucessoras pelo envio de mensagens; no outro caso, onde a
liberao envolve "offsets", as atividades so identificadas como assncronas
(asynchronous activity) [BNT93]. Um exemplo de atividades assncronas pode ser
encontrada no sistema MARS [Kop97], onde as entidades encapsuladoras das tarefas
dependentes so identificadas como transaes e apresentam suas tarefas liberadas por
passagem de tempo no sentido de implementar as relaes de precedncia.
Na seqncia deste item, concentramos nossas descries em atividades sncronas
(liberaes por mensagem) para esquemas de prioridades fixas e nas relaes de
precedncia que, para efeito de anlise, so representadas como "jitters". Nessas
condies, o modelo de tarefas assume carga esttica e, portanto, uma aplicao
constituda por atividades peridicas. Cada atividade peridica A
i
corresponde a uma
seqncia infinita de ativaes ocorrendo em intervalos regulares de tempo P
i
(perodo
da atividade). Uma atividade A
i
caracterizada por um "deadline" D
i
: limite mximo
associado concluso de todas as suas tarefas. As tarefas de uma mesma atividade
possuem os mesmos tempos de chegada, porm suas liberaes dependem dos tempos
de resposta de suas predecessoras.
A figura 2.13 mostra duas atividades: a primeira constituda de apenas uma tarefa T
1
e uma segunda, formada pelas tarefas T
2
, T
3
e T
4
. As relaes de precedncia nesta
2. O Escalonamento de Tempo Real 46
segunda atividade implicam na ordem T
2
T
3
T
4
2
.
tarefas Ji Ci Pi Di
T1 1 10 40 40
T2 3 10 80 25
T3 - 5 80 40
T4 - 10 80 80
T2
T3
T4
T1
Figura 2.13: Uma aplicao constituda por duas atividades
Quando se considera um grafo de precedncias (uma atividade), a maneira natural
de se atribuir prioridades seguindo as relaes do grafo com um decrscimo nas
prioridades das tarefas envolvidas, ou seja, as prioridades so decrescentes ao longo do
grafo de precedncias seguindo as orientaes dos arcos. Este tipo de atribuio,
respeitando as relaes de precedncia, se aproxima da poltica "Deadline Monotonic".
As comunicaes usando variveis compartilhadas conforme visto no item 2.6
podem levar a inverses de prioridades (bloqueios). Se a atribuio de prioridades
feita segundo as orientaes dos grafos e as liberaes de tarefa obedecem s relaes
de precedncia, diminuem as possibilidades de bloqueios e inverses de prioridades,
uma vez que as tarefas mais prioritrias so liberadas antes nas relaes de precedncia.
Considere como exemplo o conjunto de tarefas ilustrado na figura 2.13. Tomando as
relaes de precedncia e as restries temporais indicadas na figura, queremos
verificar a escalonabilidade do conjunto. A atribuio de prioridades feita segundo as
orientaes dos grafos; os ndices das tarefas representam as suas respectivas
prioridades (se T
i
mais prioritria que T
j
ento i < j)
.
O modelo introduzido coloca as atividades como sncronas o que implica em tratar
precedncias como "release jitters". Como as tarefas possuem "deadlines" relativos
menores que seus respectivos perodos, a verificao de escalonabilidade pode ser feita
usando as equaes [9] e [10] do item 2.5, onde os tempos de resposta so obtidos a
partir de :
W C
W J
P
C e R W J
i i
i j
j j
j i i i
+
+
1
1
1
1
+
hp(i )
,
2
As precedncias entre tarefas nas atividades podem ser expressas pela relao de ordem parcial
, definida sobre o conjunto de tarefas. Se Ti precede uma outra tarefa Tj (ou seja, Tj
sucessora de Ti), esta relao representada por TiTj, indicando que Tj no pode iniciar sua
execuo antes de Ti terminar. A relao transitiva.
2.7 Tarefas Dependentes: Relaes de Precedncia 47
onde a escalonabilidade verificada por : i R
i
D
i
.
No clculo destes tempos devem ser consideradas as relaes de precedncia no
conjunto de tarefas. O teste acima permite a considerao de precedncias na forma de
"jitters". O valor de "jitter" de uma tarefa determinado a partir do tempo de resposta
mximo da sua predecessora (pior situao de liberao).
O conjunto de tarefas com relaes de precedncias, passa a ser tomado como um
conjunto de tarefas independentes com "jitters" associados. Mas as interferncias assim
calculadas, a partir de tarefas com "jitters" associados e tomadas como independentes,
resultam em tempos de respostas extremamente grandes e muitas vezes, irreais. Na
verdade, tarefas sujeitas a precedncias determinam cenrios mais restritos de
interferncia e bem distante do instante crtico [OlF97]. Por exemplo, na figura 2.13, a
tarefa T
2
embora mais prioritria, no interfere com T
3
e T
4
porque ambas so liberadas
aps a sua concluso; a influncia de T
2
sobre estas duas tarefas se d s na forma de
"jitter".
No caso da figura 2.13, T
1
a mais prioritria e no sofre interferncia de outras
tarefas. O seu tempo de resposta dado por seu tempo de computao acrescentado
pelo "jitter" que sofre: R
1
= C
1
+J
1
= 11. A tarefa T
2
sofre interferncia s da tarefa T
1
e
o seu tempo de resposta mximo calculado facilmente a partir das equaes [9] e [10]:
W
2
0
10 = C
2
W
2
1
1 0
1 0 1
4 0
1 0 2 0
+
1
1
1
+
W
2
2
1 0
2 0 1
4 0
1 0 2 0
+
1
1
1
+
Com W
2
=20 e tomando J
2
=3, o valor do tempo de resposta dado por R
2
= 23. A
tarefa T
3
, por sua vez, sofre interferncias de T
1
e um "jitter" porque sua liberao
depende da concluso de T
2
(J
3
= R
2
):
W C
W
3
0
3
3
1
5
5 1
40
1
1
1
5 + 10 = 15
W
3
2
1 5 1
4 0
1
1
1
5 + 1 0 = 1 5
O tempo de resposta de T
3
dado por: R
3
= W
3
+J
3
= 38. A tarefa T
4
, por sua vez,
sofre interferncias de T
1
e T
3
e um "jitter" de T
2
(J
4
= R
2
):
W
4
0
10 = C
4
W
4
1
10
10 1
40
1
1
1
1
1
1
+ 10 +
10 + 23
80
5 = 25
2. O Escalonamento de Tempo Real 48
W
4
2
1 0
2 5 1
4 0
1
1
1
1
1
1
+ 1 0 +
2 5 + 2 3
8 0
5 = 2 5
A tarefa T
4
tem o seu pior tempo de resposta portanto em 48 (R
4
=W
4
+J
4
). Se
compararmos os tempos de resposta encontrados com os "deadlines' relativos das
respectivas tarefas na figura 2.13, verificamos que as tarefas so escalonveis..
No modelo de tarefas apresentado, as relaes de precedncia so implementadas a
partir de ativaes por mensagens. Os tempos em comunicaes locais nos modelos de
tarefas ideais so desconsiderados; em situaes reais, tempos no desprezveis podem
ser adicionados aos tempos de computao das tarefas predecessoras (emissoras de
mensagens), aproximando ento o modelos reais de premissas de tempos nulos em
comunicaes locais.
Os clculos de tempos de resposta em ambientes distribudos, envolvendo
precedncias, no muito explorado na literatura [Fid98]. As atividades nestes
ambientes se estendem por vrios ns (vrios domnios de escalonamento local) o que
implica em precedncias remotas. Estas situaes exigem consideraes especiais.
Solues para problemas distribudos devem se basear na assim chamada holistic
schedulability analisys para sistemas de tempo real distribudos [TiC94]: O "release
jitter" de uma mensagem depende do pior caso de tempo de resposta da tarefa emissora.
O pior caso de tempo de resposta de uma tarefa receptora depende do tempo de resposta
de suas mensagens.
2.8 Escalonamento de Tarefas Aperidicas
Todas as tcnicas de escalonamento apresentadas at este item eram dirigidas para
modelos de tarefas peridicas. Mas aplicaes de tempo real, de um modo geral,
envolvem tanto tarefas peridicas como aperidicas. Examinamos neste item o
escalonamento de tarefas aperidicas em abordagens mistas, envolvendo tarefas crticas
e no crticas. As tarefas peridicas so assumidas como crticas, necessitando de
garantias em tempo de projeto para condies de pior caso. As tarefas aperidicas
podem envolver diferentes requisitos temporais: crticos, no crticos ou ainda sem
requisitos temporais.
As aperidicas apresentando um mnimo intervalo entre suas ativaes e um
"deadline hard" so identificadas como tarefas espordicas, possuindo um
comportamento temporal determinista o que facilita, portanto, a obteno de garantias
em tempo de projeto. As tarefas aperidicas que no possuem seus tempos de chegada
conhecidos e tambm no se caracterizam por um intervalo mnimo entre suas
ativaes, definem o que se pode chamar de uma carga computacional dinmica. Com
estas ltimas tarefas possvel a obteno de garantias dinmicas ou, ainda, usar
tcnicas de melhor esforo no sentido de execut-las segundo as disponibilidades do
2.8 Escalonamento de Tarefas Aperidicas 49
processador em tempo de execuo. As aperidicas que apresentam "deadlines hard" e
necessitam de garantias dinmicas em seus escalonamentos so chamadas de tarefas
aperidicas "firm". As tarefas aperidicas com requisitos no crticos ("deadline soft") e
as sem requisitos temporais (aplicaes no de tempo real) necessitam apenas de bons
tempos de resposta.
Num quadro misto, uma questo que pode ser colocada est ligada ao tipo de
poltica adequado para tarefas peridicas e que possa ser estendido para carga dinmica:
so as polticas de prioridade fixa (RM, DM e etc.) ou polticas de prioridade dinmica
(EDF) as mais apropriadas? As polticas baseadas em prioridade fixa foram sempre as
preferidas para esquemas mistos de escalonamento. Embora apresentem melhor fator de
utilizao, se comparado com esquemas de prioridade fixa, as polticas de prioridade
dinmica como o EDF eram consideradas por alguns autores at pouco tempo como
instveis para tratar com carga dinmica [SSL89]. Nos ltimos anos, a direo dos
trabalhos tem mudado e o EDF tem sido tambm alvo de extenses para
escalonamentos mistos. Os algoritmos dinmicos apresentam os mais altos limites de
escalonabilidade o que permite uma maior utilizao do processador o que, por sua vez,
aumenta a capacidade de processamento da carga aperidica.
As sobras de processador nas escalas so importantes para o escalonamento de
tarefas aperidicas em modelos hbridos. Existem dois tipos de abordagens para a
determinao de sobras de processador: as solues baseadas em servidores [SSL89] e
as baseadas em tomadas de folgas (slack stealing) [DtB93], [LeR92]. Neste texto so
apresentadas unicamente tcnicas de escalonamento para tarefas aperidicas baseadas
no conceito de servidor. Os escalonamentos hbridos neste captulo so construdos com
polticas de prioridade fixa [SSL89]. No Anexo A so apresentados escalonamentos
mistos usando polticas de prioridade dinmica [SpB96].
2.8.1 Servidores de Prioridade Fixa [LSS87, SSL89]
As tcnicas examinadas nesse item so para polticas baseadas em prioridades fixas,
mais precisamente, o "Rate Monotonic". As sobras nas escalas de carga peridica, so
determinadas estaticamente, em tempo de projeto, e posteriormente, em tempo de
execuo, so atribudas ao processamento aperidico usando o conceito de servidor.
Servidor de "Background"
Este servidor extremamente simples. A idia central corresponde em atender as
requisies aperidicas quando a fila de prontos envolvendo tarefas peridicas est
vazia, ou seja, se tarefas peridicas no esto se executando ou pendentes, o
processador entregue para a carga aperidica.
A determinao de prioridades nesta abordagem feita atribuindo - segundo o RM -
as prioridades mais altas para as tarefas peridicas. As prioridades mais baixas so
destinadas para as tarefas aperidicas. Como conseqncia, o "Background Server"
2. O Escalonamento de Tempo Real 50
(BS) apresenta tempos de resposta muito altos para cargas aperidicas. Se a carga
envolvendo as tarefas peridicas alta, ento a utilizao deixada para o servio de
"Background" baixa ou no freqente.
t a r e f a A -
t a r e f a B -
t a r e f a C -
t a r e f a D -
t a r e f a s C i P i D i p i
t a r e f a p e r i d i c a A 4 1 0 1 0 1
t a r e f a p e r i d i c a B 8 2 0 2 0 2
t a r e f a a p e r i d ic a C 1 - - 3
t a r e f a a p e r io d ic a D 1 - - 3
0 2 4 6 8 1 0 1 2 1 4 1 6 1 8 2 0 2 2 2 4
t
A , B A , B
A
F i g u r a 2 . 1 4 : S e r v i d o r a d e B a c k g r o u n d
C D
A figura 2.14 ilustra um exemplo introduzido em [SSL89] onde duas tarefas
peridicas e duas requisies aperidicas so executadas usando uma atribuio de
prioridades RM. Com base no teste do RM, a carga peridica tem garantia em tempo de
projeto pois a sua utilizao no passa o limite de 0,828 (equao [2], item 2.4). As
requisies C e D so executadas no fim da escala da figura 2.16, depois que a carga
peridica foi completada.
O BS bastante simples na sua implementao, porm s aplicvel quando as
requisies aperidicas no so crticas e a carga peridica no alta.
"Polling Server"
O esquema do "Polling Server" (PS) consiste na definio de uma tarefa peridica
para atender a carga aperidica [SSL89]. Um espao aberto periodicamente na escala
para a execuo da carga aperidica, atravs da tarefa Servidora de "Polling". A tarefa
servidora possui um perodo PPS e um tempo de computao CPS e, como as outras
tarefas da carga peridica do sistema, tem a sua prioridade atribuda segundo o "Rate
Monotonic". Em cada ativao, a tarefa servidora executa as requisies aperidicas
pendentes dentro do limite de sua capacidade CPS o tempo destinado para o
atendimento de carga aperidica em cada perodo da servidora.
Quando no houver requisies aperidicas pendentes, a tarefa PS se suspende at a
sua nova chegada, no prximo perodo. Neste caso, a sua capacidade CPS entregue
para a execuo de tarefas peridicas pendentes. Se um pedido aperidico ocorre logo
depois da suspenso da tarefa servidora, o pedido deve aguardar at o incio do prximo
perodo da tarefa PS.
2.8 Escalonamento de Tarefas Aperidicas 51
tarefa A -
tarefa B -
tarefa C -
tarefa D -
tarefas Ci Pi Di pi
tarefa peridica A 4 10 10 3
tarefa peridica B 8 20 20 2
tarefa servidora PS 1 5 - 1
tarefa aperidica C 1 - - -
tarefa aperiodica D 0,5 - - -
CPS
A,B A C D
A,B
0 5 6 10 15 16 20
Figura 2.15: Algortmo Polling Server
0 2 4 6 8 10 12 14 16 18 20 22 24
1
t
O mesmo exemplo usado com o BS mostrado na figura 2.15 onde a carga
aperidica escalonada segundo o algoritmo PS. Nesse caso, a tarefa servidora criada
com capacidade CPS de uma unidade e o perodo PPS
de 5 unidades. Na ativao da
servidora em t=0 no existe carga aperidica e a sua capacidade entregue para a
execuo das tarefas peridicas. Em t = 5, a chegada de uma requisio aperidica C
coincide com a chegada da servidora PS. Com isto, a capacidade CPS
consumida
totalmente at t = 6. No perodo seguinte da servidora (t = 10), novamente no existe
carga aperidica pendente e a capacidade da servidora, que foi restaurada no seu
mximo no incio deste perodo, entregue a carga peridica. A servidora, por no estar
mais ativa, no atende a segunda requisio aperidica D que chega em t=12. No incio
de seu perodo seguinte (em t=15), esta requisio executada, consumindo a metade
da capacidade da servidora, conforme mostra a figura.
A interferncia da tarefa servidora sobre o conjunto de tarefas peridicas do sistema
no pior caso igual a interferncia causada por uma tarefa com tempo de computao
CPS e perodo PPS ou seja, dada a utilizao do PS, a escalonabilidade do conjunto
peridico garantido por :
( )
C
P
C
P
n
i
i i
n
PS
PS
n
+ +
_
,
1
1
1
1 2 1
( )
,
ou seja
( ) U n U
P
n
S
+
_
,
+
+
1 2 1
1
1 ( )
.
A abordagem do "Polling Server", se comparada com a abordagem BS, melhora o
tempo de resposta mdio de tarefas aperidicas. O PS porm no fornece servio de
2. O Escalonamento de Tempo Real 52
resposta imediato para processamentos aperidicos. O tempo de resposta de requisies
aperidicas depende do perodo e da capacidade da tarefa servidora.
"Deferrable Server"
O "Deferrable Server" (DS) tambm baseado na criao de uma tarefa peridica
que no conjunto de tarefas da carga esttica, recebe uma prioridade segundo uma
atribuio RM. Ao contrrio do PS, o DS conserva a sua capacidade tempo destinado
para o processamento aperidico mesmo quando no existir requisies durante a
ativao da tarefa DS. Requisies no peridicas podem ser atendidas no nvel de
prioridade da tarefa servidora, enquanto a sua capacidade C
DS
no se esgotar no perodo
correspondente. No incio de cada perodo da tarefa servidora, a sua capacidade
processamento restaurada.
Por preservar sua capacidade, a abordagem DS fornece melhores tempos de resposta
para as tarefas aperidicas que o "Polling Server". Como a tarefa servidora usualmente
executa na prioridade mais alta do conjunto peridico, se a capacidade for suficiente, o
atendimento de requisies aperidicas imediato.
t a r e fa A -
t a r e fa B -
t a r e fa C -
t a r e fa D -
t a r e f a s C i P i D i p i
t a r e fa p e r i d i c a A 4 1 0 1 0 3
t a r e fa p e r i d i c a B 8 2 0 2 0 2
t a r e fa s er vi d o r a P S 1 5 - 1
t a r e fa a p er i d i ca C 1 - - -
t a r e fa a p er i od i ca D 0 , 5 - - -
C D S
0 5 6 1 0 1 2 1 5 2 0
1
F ig u r a 2 . 1 6 : A lg o r t mo D e fe r r a ble S e r ve r
A, B A C D A, B
0 2 4 6 8 1 0 1 2 1 4 1 6 1 8 2 0 2 2 2 4
t
A figura 2.16 ilustra o uso do algoritmo DS no escalonamento da carga aperidica
com o mesmo exemplo introduzido em [SSL89]. Neste exemplo criada uma tarefa
servidora com capacidade C
DS
=1 e de perodo P
DS
= 5. Na ativao da servidora em
t=0 no existe carga aperidica e a sua capacidade preservada durante todo o perodo
P
DS
. Em t=5, a chegada de uma requisio aperidica C coincide com a chegada da
servidora DS, o que determina o consumo total da capacidade da servidora at t=6
2.8 Escalonamento de Tarefas Aperidicas 53
(figura 2.16). No perodo seguinte da servidora (t=10), a capacidade C
DS
novamente
preenchida ao seu mximo. Este valor de capacidade se mantm at a chegada da
requisio aperidica D em t=12 que ento consome 0,5 da capacidade da servidora at
t=12,5. No incio do perodo seguinte da servidora (t=15), a sua capacidade volta ao
seu valor mximo (C
DS
=1). A figura 2.16 confirma sobre o mesmo exemplo usado nas
tcnicas anteriores, o melhor desempenho do servidor DS sobre os anteriores em termos
de tempo de resposta e servio de resposta imediata.
Quando usando a poltica RM, a influncia da tarefa servidora DS sobre a utilizao
da carga peridica no pode ser determinada de maneira to simples como no caso do
PS. O comportamento da servidora com a prioridade mais alta, podendo se executar em
qualquer ponto do seu perodo no captada pelo teste do RM (equao [2], item 2.4).
Nas condies do teste original do RM, a tarefa peridica de mais alta prioridade
necessita executar em seu tempo de chegada; qualquer atraso pode prejudicar as tarefas
menos prioritrias. Em [SSL89], derivada do ajuste no teste do RM para captar o
comportamento singular da servidora DS, apresentada uma relao entre a utilizao
da servidora e a utilizao da carga peridica:
U
U
U
P
DS
DS
+
+
_
,
ln .
2
2 1
[19]
A equao [19] vlida somente para um muito grande nmero de tarefas
peridicas no sistema.
Servidor Troca de prioridade (Priority Exchange Server)
Uma outra tcnica de escalonamento apresentada em [LSS87] e [SSL89] para o
processamento de requisies aperidicas em escalonamento hbrido o "Priority
Exchange Server" (PE). Diferentemente do DS, neste servidor, diante da ausncia de
requisies aperidicas, a capacidade de processamento aperidico C
PE
(tempo de
computao da tarefa servidora) preservada executando trocas de prioridades da
servidora com tarefas peridicas pendentes. No ser discutido neste texto o algoritmo
do PE devido a pouca possibilidade de aplicao deste servidor ligada complexidade
do mecanismo de troca de prioridades. Os leitores interessados podem encontrar
informaes sobre este servidor nas indicaes bibliogrficas acima.
Servidor Espordico
O "Sporadic Server" (SS), a exemplo dos algoritmos DS e PE, outra tcnica
introduzida em [SSL89] que apresenta bons tempos de resposta e de servio imediato
para requisies aperidicas. Com caractersticas semelhantes a dos anteriores, foi
introduzido para possibilitar a execuo de tarefas aperidicas com restries crticas.
O SS cria uma tarefa peridica que atua em um s nvel de prioridade para executar
requisies aperidicas. Para entender o funcionamento do algoritmo do SS
2. O Escalonamento de Tempo Real 54
necessrio que se introduza alguns termos:
p
s
: corresponde ao nvel de prioridade em execuo no processador;
p
i
: um dos nveis de prioridades do sistema.
Intervalo Ativo : uma prioridade p
i
dita em um intervalo ativo quando
p
i
p
s
.
Intervalo de Prioridade Desativada: uma prioridade p
i
dita desativada
quando p
i
> p
s
.
Tempo de Preenchimento RT
i
: define o instante de tempo em que se d a
restaurao da capacidade consumida durante o intervalo em que a
prioridade p
i
estava ativa.
A tarefa servidora no SS preserva sempre a sua capacidade no nvel em que foi
projetada. Mas difere das outras abordagens anteriores na forma do preenchimento de
sua capacidade:
Se a servidora tem seu tempo computao (capacidade) consumido em um
de seus perodos, o preenchimento correspondente ocorrer no seu tempo
de preenchimento (RT
i
) que determinado adicionando o valor do
perodo da servidora ao tempo de incio do intervalo onde p
i
era ativo e
ocorreu o consumo considerado.
A quantidade a ser preenchida igual a capacidade do servidor consumida
no intervalo ativo.
A figura 2.17 apresenta um exemplo de um escalonamento hbrido com um servidor
espordico possuindo prioridade mdia no conjunto de tarefas peridicas. Neste
exemplo tambm apresentado em [SSL89], a tarefa servidora SS definida com
capacidade CSS=2,5 e perodo PSS=10. Em t=0, a tarefa A (a mais prioritria) comea a
executar. A prioridade p
s
em execuo
(p
s
= pA) ento maior que a prioridade da
servidora SS (pSS); o que define o primeiro intervalo ativo da servidora SS nesta
execuo de A (pSS< pA). Neste intervalo no ocorre consumo de capacidade CSS
devido
a ausncia de requisies aperidicas.
Em t=4,5 uma requisio aperidica C chega e como a tarefa SS mais prioritria
que B (tarefa em execuo), ocorre a preempo da tarefa peridica. O consumo da
capacidade da servidora por parte de C vai at t = 5 quando, pela chegada da tarefa
peridica A, ocorre a interrupo da tarefa aperidica C. Pelo RM a tarefa A a mais
prioritria. Concluda esta ativao de A, a tarefa C reassume. Em t = 6,5 o
processamento aperidico C concludo. O tempo de preenchimento (RT
i
), referente ao
consumo de capacidade por parte da requisio C, programado considerando o
intervalo ativo correspondente (pSS p
s
) que, neste caso, inicia com a chegada da
2.8 Escalonamento de Tarefas Aperidicas 55
requisio aperidica (t = 4,5). Portanto, como pode ser visto na figura 2.17, o
preenchimento da capacidade consumida neste intervalo ocorre em t=14,5
(RT
i
=t
a
+PSS). A preempo de C pela tarefa A em t = 5 no define dois intervalos
ativos da servidora para as duas partes de C da figura 2.17. Na verdade, um mesmo
intervalo ativo se mantm durante as execues de C e A porque, entre os tempos t=4,5
e t = 6,5, a condio pSS
p
s
se mantm como vlida.
B A
A A B A A
0 2 4 6 8 10 12 14 16 18 20 22 24
0 2 4 5 6 8 10 12 14 16 18 20
tarefa A -
tarefa B -
tarefa C -
tarefa D -
tarefas Ci Pi Di pi
tarefa peridica A 1 5 5 1
tarefa peridica B 6 14 14 3
tarefa servidora SS 2,5 10 - 2
tarefa aperidica C 1 - - -
tarefa aperiodica D 1 - - -
C
SS
1
Figura 2.17: Algortmo Sporadic Server
t
C D
2
3
Uma outra requisio aperidica (tarefa D) chega em outro intervalo ativo da
servidora SS. A requisio D tambm interrompe a tarefa B e consome uma unidade de
CSS. O tempo de incio do intervalo ativo de D coincide com a sua chegada e, portanto, o
tempo de preenchimento (RT
i
) correspondente deve ocorrer em t=18.
A tarefa servidora SS no apresenta um comportamento convencional de tarefa
peridica, uma vez que, a capacidade desta servidora preservada no mesmo nvel
como o DS e a sua execuo postergada at a ocorrncia de uma requisio
aperidica. Porm em [SSL89], provado que a tcnica de preenchimento da
capacidade da servidora compensa este comportamento no convencional, permitindo
que, em termos de anlise de escalonabilidade, esta tarefa possa assumir um
comportamento peridico. Ou seja, a servidora SS pode ser substituda no teste do RM
([2] no item 2.4) por uma tarefa peridica com perodo P
SS
e tempo de computao C
SS
.
A limitao que a servidora SS impe sobre uma carga peridica dada por :
[ ] U
U
P
S S
_
,
l n .
2
1
2 0
2. O Escalonamento de Tempo Real 56
A equao [20] idntica obtida para o servidor PE e tambm s vlida para um
nmero muito grande de tarefas peridicas no sistema.
A tabela 2.7 mostra um exemplo de comparao das utilizaes dos servidores DS,
PE e SS quando envolvidos com uma mesma carga peridica ([SSL89]). O algoritmo
SS possui a simplicidade do DS e a vantagem da maior capacidade do PE para o
processamento de requisies aperidicas. Porm, diferente destes outros algoritmos, o
SS pode tambm ser usado na garantia em tempo de projeto.
t a r e f a s C i P i U i ( % )
t a r e f a 1 2 1 0 2 0 , 0
t a r e f a 2 6 1 4 4 2 , 9
s e r v i d o r D S 1 , 0 0 5 2 0 , 0
s e r v i d o r P E 1 , 3 3 5 2 6 , 7
s e r v i d o r S S 1 , 3 3 5 2 6 , 7
T a b e l a 2 . 7 : U t i l i z a o d o s s e r v i d o r e s D S , P E e S S
Na verdade, o SS foi introduzido com o objetivo de garantir a execuo de tarefas
espordicas um caso especial de aperidicas onde existe um limite conhecido como o
mnimo intervalo entre ativaes (min
i
). Os "deadlines" associados a estas tarefas so
crticos ("hard") e, portanto, precisam de uma garantia em tempo de projeto. Esta
garantia pode ser obtida criando uma servidora SS para tratar exclusivamente uma
tarefa espordica nas suas diversas ativaes. A servidora SS assume os "deadlines" das
requisies da tarefa associada. O perodo P
SS
, por sua vez, deve ser no mximo igual
ao intervalo mnimo entre ativaes da tarefa espordica (min
i
). Esta tarefa servidora
conserva a capacidade de processamento aperidico no seu nvel de prioridade at a
ocorrncia de uma requisio espordica. A capacidade CSS da servidora deve ser
suficiente para atender as necessidades de tempo de computao da tarefa espordica
associada, em cada uma de suas ativaes. Nestas condies, os "deadlines" crticos
podem ser garantidos em tempo de projeto.
O algoritmo SS pode ser usado para garantir tarefas espordicas apresentando
"deadlines" relativos (D
i
) iguais ou menores que os seus respectivos intervalos
mnimos entre ativaes (min
i
). Nos casos onde os "deadlines" relativos so iguais aos
respectivos intervalos mnimos, as prioridades da tarefa servidora SS e da carga
peridica so determinadas seguindo uma atribuio RM e as escalas so produzidas
usando os mesmos algoritmos citados acima.
Para os casos onde tarefas espordicas apresentam D
i
< min
i
a atribuio RM no
pode ser usada; necessria uma outra atribuio de prioridades que no seja mais
baseada na freqncia de chegada das tarefas peridicas. A figura 2.18 ilustra um
exemplo de uma escala com atribuio RM onde ocorre uma sobrecarga com perda de
"deadline" da tarefa aperidica C em t=10. Neste exemplo, a servidora SS que possui o
"deadline" relativo mais restritivo (D
SS
=10) apresenta o maior perodo (P
SS
=32) e
portanto a menor prioridade segundo o RM.
2.8 Escalonamento de Tarefas Aperidicas 57
t a r e fa A -
t a r e fa B -
t a r e fa C -
t a r e f a s C i P i D i M i n i p i
t a r e fa p e r i d i c a A 4 1 2 1 2 - 1
t a r e fa p e r i d i c a B 4 2 0 2 0 - 2
t a r e fa s e r v i d o r a S S 8 3 2 1 0 - 3
t a r e fa a p e r i d i c a C 8 - 1 0 3 2 -
F ig u r a 2 . 1 8 : S e r v id o r S S e R M u s a d o s e m c a r g a a p e r i d ic a c o m D i = M i n i
A , B , C
d C
A B
0 2 4 6 8 1 0 1 2 1 4 1 6 1 8 2 0 2 2 2 4
t
Nos casos de tarefas espordicas com D
i
<min
i
, so necessrias polticas que sejam
dirigidas por "deadlines", permitindo ento a atribuio do mais alto nvel de prioridade
servidora SS associada. A poltica de atribuio esttica "Deadline Monotonic" a
mais apropriada nestes casos. Na figura 2.19 uma escala mostrada com o mesmo
conjunto de tarefas sujeito a uma atribuio DM de prioridades e onde todos os
"deadlines" so respeitados. A tarefa C se executa em t=0 (a servidora SS a tarefa
mais prioritria) e, o preenchimento da capacidade consumida correspondente ocorre
em t=32, portanto, antes de esgotado o intervalo mnimo entre ativaes de C (min
C
).
tar efa A -
tar efa B -
tar efa C -
Figura 2. 19: Servidor SS e DM usados em carga aperidica co m Di < Mini
A,B, C
dC
A B
8
CS S
0 4 8 12 16 20 24 28 32
0 4 8 12 16 20 24 28 32
t
tarefas Ci Pi Di Mini pi
tar efa per idica A 4 12 12 - 2
tar efa per idica B 4 20 20 - 3
tar efa ser vidor a SS 8 32 10 - 1
tar efa aper i dica C 8 - 10 32 -
2. O Escalonamento de Tempo Real 58
2.8.2 Consideraes sobre as Tcnicas de Servidores
Algumas das premissas assumidas para os servidores seguiram modelos de tarefas
originais dos algoritmos de escalonamento usados, mas isto no limita o uso destas
tcnicas de servidores. Os algoritmos de servidores apresentados neste texto podem ser
usados em modelos com tarefas peridicas possuindo "deadlines" relativos arbitrrios e
com recursos compartilhados. Neste caso a anlise de escalonabilidade deve levar em
considerao as particularidades do modelo de tarefas usado.
Neste texto, as requisies aperidicas foram apresentadas como processamentos
sem prazos ("deadlines"), escalonadas segundo abordagens de melhor esforo usando
polticas FIFO. Tarefas aperidicas podem possuir restries temporais e serem
ordenadas segundo estas restries com polticas diferentes das que conduzem a
ordenao das peridicas no escalonamento hbrido. As tarefas aperidicas necessitando
a cada ativao de uma garantia dinmica so identificadas como tarefas firmes (item
2.8). Neste caso, um teste de aceitao necessrio para verificar a escalonabilidade da
tarefa aperidica recm chegada junto com as tarefas previamente garantidas. Se o teste
falha a tarefa aperidica descartada. Em [But97] discutido essa verificao de
tarefas firmes. Os algoritmos PS, PE e DS so apropriados na verificao dinmica da
escalonabilidade de tarefas aperidicas firmes. O servidor SS, por sua vez, permite o
tratamento de tarefas espordicas que necessitam de garantias em tempo de projeto para
os seus "deadlines hard".
2.9 Concluso
Em sistemas onde as noes de tempo e de concorrncia so tratadas explicitamente,
conceitos e tcnicas de escalonamentos formam o ponto central na previsibilidade do
comportamento de sistemas de tempo real. Esse captulo se concentrou sobre tcnicas
para escalonamentos dirigidos a prioridades. Essa escolha na abordagem de
escalonamento porque a mesma cobre diversos aspectos de possveis comportamentos
temporais em aplicaes de tempo real e, tambm, devido a importncia da literatura
disponvel.
Vrios problemas de escalonamento que podem ser vistos como extenses aos
problemas propostos em [LiL73] foram examinados neste captulo. Particularmente,
foram apresentados escalonamentos de tarefas peridicas com "deadlines" arbitrrios,
o compartilhamento de recursos e a implementao de relaes de precedncia. As
tarefas aperidicas so escalonadas usando escalonamentos hbridos baseados no
conceito de servidor. Todos estes problemas foram discutidos usando atribuies de
prioridades fixas neste captulo. Estes mesmos problemas so revistos com polticas de
prioridade dinmica no Anexo A. Escalonamentos com atribuies dinmicas como os
definidos pelo EDF, embora determinem uma maior utilizao apresentam sempre uma
complexidade maior em tempo de execuo.
2.9 Concluso 59
A grande difuso de suportes (ncleos, sistemas operacionais), na forma de
produtos, que baseiam seus escalonamentos em mecanismos dirigidos a prioridade
sem dvida uma forte justificativa para o uso das tcnicas apresentadas neste captulo
em problemas prticos. Alguns dos algoritmos apresentados nesse captulo so
recomendados por entidades de padronizao como a POSIX e a OMG ("Object
Management Group" [OMG98]).
Leituras complementares recomendadas referente ao assunto tratado neste captulo
so encontradas em: [AuB90], [Bak91], [Fid98], [RaS94], [SRL90], [SSL89], [Spu96],
[TBW94].