Escolar Documentos
Profissional Documentos
Cultura Documentos
2.1 Introduo
Em sistemas onde as noes de tempo e de concorrncia so tratadas explicitamente,
conceitos e tcnicas de escalonamento formam o ponto central na previsibilidade do
comportamento de sistemas de tempo real. Nos ltimos anos, uma quantidade
significativa de novos algoritmos e de abordagens foi introduzida na literatura tratando
de escalonamento de tempo real. Infelizmente muitos desses trabalhos definem tcnicas
restritas e conseqentemente de uso limitado em aplicaes reais. Esse captulo se
concentra em algumas tcnicas gerais e em suas extenses, visando tambm
perspectiva de um uso mais prtico.
O foco desse captulo sobre tcnicas para escalonamentos dirigidos a prioridades.
Essa escolha devido importncia da literatura disponvel e, porque cobre diversos
aspectos de possveis comportamentos temporais em aplicaes de tempo real. A grande
difuso de suportes (ncleos, sistemas operacionais), na forma de produtos, que baseiam
seus escalonamentos em mecanismos dirigidos a prioridade sem dvida outra
justificativa bastante forte para a escolha do enfoque dado nesse captulo. Essa difuso
to significativa que organismos de padronizao tm adotado essa abordagem de
escalonamento de tempo real. Os padres POSIX [Gal95] - referncia para produtos
comerciais - enfatizam em suas especificaes para tempo real escalonamentos dirigidos
a prioridades. Alguns dos algoritmos apresentados nesse captulo so recomendados
pelas especificaes POSIX.
12
Tarefas Crticas (tarefas "hard") : Uma tarefa dita crtica quando ao ser
completada depois de seu "deadline" pode causar falhas catastrficas no sistema de
tempo real e em seu ambiente. Essas falhas podem representar em danos
irreversveis em equipamentos ou ainda, em perda de vidas humanas.
13
14
coincidir com o tempo de chegada da tarefa. Em geral assumido que to logo uma
instncia de uma tarefa chegue, a mesma liberada na fila de Pronto. Mas, nem sempre
esse o caso; uma tarefa pode ser retardada na sua liberao pelo "polling" de um
escalonador ativado por tempo ("tick scheduler") ou talvez pelo bloqueio na recepo
de uma mensagem (tarefas ativadas por mensagem). Essa no coincidncia dos tempos
de chegada com as liberaes da tarefa conduz ao que identificado como "Release
Jitter", que representa a mxima variao dos tempos de liberao das instncias da
tarefa.
Diante das restries temporais citadas temos ento o comportamento temporal de
uma tarefa peridica Ti descrito pela qudrupla (Ji, Ci, Pi, Di) onde Ci representa o
tempo de computao da tarefa, Pi o perodo da tarefa, Di o "deadline" e Ji o
"Release Jitter" da tarefa que, de certa maneira, corresponde a pior situao de
liberao da tarefa. Nessa representao de tarefas peridicas, Ji e Di so grandezas
relativas (intervalos), medidas a partir do incio do perodo Pi. O "deadline" absoluto e
o tempo de liberao da ksima ativao da tarefa peridica Ti so determinados a partir
dos perodos anteriores:
dik = (k-1)Pi + Di
ri = (k-1)Pi +Ji
(pior situao de liberao).
a tiv a o 1
a tiv a o 2
a tiv a o 3
Pi
Pi
D
Pi
D
J
Ci
a
r1
Ci
ct
st
a =r
st
Ci
ct
r3
st
ct
F i g u r a 2 . 1 : A ti v a e s d e u m a t a r e f a p e r i d ic a
Na figura 2.1 ilustrado alguns dos parmetros descritos acima. Porm, cada
ativao da tarefa peridica (Ji, Ci, Pi, Di) definida a partir de tempos absolutos: os
tempos de chegada (ai), os tempos de liberao (ri), os tempos de incio (sti), os tempos
de trmino (cti) e os "deadlines" absolutos (di).
r e q u is i o 2
r e q u is i o 1
m in i
m in i
Di
Di
Ci
0
st
C
ct
st
= a
ct
F ig u r a 2 .2 : A tiv a e s d e u m a ta re f a a p e r i d ic a
15
Uma tarefa espordica descrita pela tripla (Ci, Di, mini) onde Ci o tempo de
computao, Di o "deadline" relativo medido a partir do instante da requisio do
processamento aperidico (chegada da tarefa espordica) e mini corresponde ao
mnimo intervalo entre duas requisies consecutivas da tarefa espordica. A descrio
de uma tarefa aperidica pura se limita apenas s restries Ci e Di. Na figura 2.2, a
tarefa aperidica espordica (Ci, Di, mini) apresentada com duas requisies.
Tomando o tempo de chegada da requisio espordica 2 como a2, o "deadline"
absoluto desta ativao assume o valor dado por: d2=a2+Di.
16
17
18
No clculo da escala o pior caso considerado, levando em conta a pior situao de chegada
das tarefas, as tarefas se executando com os seus piores tempos de computao, as tarefas
espordicas ocorrendo na mxima freqncia possvel definida por seus intervalos mnimos entre
ativaes (mini), etc.
19
20
A b o rd a g e n s c o m G a ra n tia
e m T e m p o d e P ro je to
E x e c u tiv o
C c lic o
A b o rd a g e n s c o m
G a ra n tia D in m ic a
A b o rd a g e n s d e
M e lh o r E sfo r o
T c n ic a s
A d a p ta tiv a s
D irig id o a
P rio rid a d e s
F ig u r a 2 . 3 : A b o r d a g e n s d e E s c a lo n a m e n t o d e T e m p o R e a l
te ste su fic ie n te
c o n ju n to s d e ta re fa s n o e sc a lo n v e is
A u m e n to d a c o m p le x id a d e
d o s c o n ju n to s d e ta re fa s
te ste e x a to
te ste n e c e ss rio
F ig u r a 2 .4 : T ip o s d e te ste s d e e sc a lo na bilid a d e
21
U =
[1]
O conceito de utilizao serve de base para testes simples e bastante usados. A idia
central nesses testes que a soma dos fatores de utilizao (Ui) das tarefas do conjunto
no ultrapasse o nmero de processadores disponveis para suas execues:
U =
22
23
Ci
Pi n 2
[2 ]
1 .
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]:
n
U =
C
i
Tarefas Peridicas
Pi 1.
Periodo
Tempo de Computao
Prioridade RM
Utilizao
(Pi)
(Ci)
(pi)
(Ui)
tarefa A
100
20
0,2
tarefa B
150
40
0,267
tarefa C
350
100
0,286
0 , 753 n 2
1 = 0 , 779
24
A ,B ,C
40
80
1 20
A ,B
1 60
2 00
2 40
2 80
3 20
3 60
U =
i=1
Ci
25
[3 ]
Pi 1 .
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 DiPi), 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.
C
ta r e fa A
10
20
20
ta r e fa B
25
50
50
A ,B
ta r e fa A -
ta re fa s p e ri d ic a s
10
20
30
(a)
A ,B
ta r e fa B -
40
50
60
E sc a lo n a m e n to E D F
B
p e r d a d e d e a d lin e d e B
10
20
30
(b)
40
50
60
E sc a lo n a m e n to R M
F ig u r a 2 . 6 : E s c a la s p r o d u z id a s p e lo ( a ) E D F e ( b ) R M
26
Ci
Pi
Di
pi
ta r e f a A
10
ta r e f a B
10
ta r e f a C
20
16
ta r e f a A ta r e f a B ta r e f a C -
A ,B ,C
A ,B ,C
A ,B
d
dB
dC
12
16
20
24
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
27
j =1
t
. C j ,
Pj
[4 ]
28
S i = kPj 1 j i,
Pi
k = 1 ,2 , . . . ,
.
P j
[6 ]
i, min t Si Ui(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 T2 em t=50. Para a verificao
29
Ci
Pi
Di
t a r e fa T 1
10
20
20
t a r e fa T 2
25
50
50
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 Ui (t) para todas as
tarefas do conjunto. Comeamos ento calculando a carga de trabalho correspondente
de cada tarefa (equao [4]):
t
W1 (t ) =
.1 0
2 0
t
t
W 2 (t ) =
.2 5 +
.1 0 ,
5 0
2 0
W1 ( t )
t
W2 (t )
.
t
30
"deadlines" relativos iguais aos seus respectivos perodos. O modelo assume tambm
tarefas com "deadlines" menores aos seus perodos (Di Pi). 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 Ri que corresponda ao intervalo de tempo mximo
transcorrido da liberao de uma tarefa Ti at o trmino de sua execuo. A largura Ri
corresponde ao tempo necessrio, em situao de instante crtico, para a execuo de Ti
e de todas as tarefas com prioridades maiores ou iguais a i (pi=i). Nestas condies, o
tempo de resposta mximo Ri da tarefa Ti dado por :
Ri = Ci +
j h p (i)
R
= i C
Pj
31
conjunto de n tarefas de tempo real como escalonvel sempre que a condio i:1 in
RiDi for verificada. Os clculos dos tempos de respostas formam a base para um teste
suficiente e necessrio.
ta re fa s p e ri d ic a s
ta r efa A
ta r efa B
ta r efa C
Ci
2
2
8
Pi
10
10
20
Di
6
8
16
T a bela 2 .3 : E x em p lo d a fig u r 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 TA, por ser a mais
prioritria, no sofre interferncia das demais e o seu tempo de resposta dado por
RA=CA=2. TA escalonvel porque seu tempo de resposta mximo menor que seu
"deadline" relativo (DA = 6) O clculo de RB, ao contrrio, envolve mais passos devido
a interferncia que TB sofre de TA. Aplicando [8] obtido:
R B0 = C B = 2
2
R B1 = 2 +
.2 = 4
1 0
4
R B2 = 2 +
.2 = 4
1 0
A tarefa TB que apresenta RB = 4 tambm escalonvel (RB DB). O tempo RC, por
sua vez, envolve as interferncias de TA e TB em TC. A partir de [8]:
R C0 = C C = 8
8
8
.2 +
.2 = 1 2
R C1 = 8 +
1 0
1 0
12
12
.2 +
.2 = 1 6
R C2 = 8 +
1
0
1 0
16
16
.2 +
.2 = 1 6
R C3 = 8 +
1 0
1 0
32
Wi + J j
Cj
Pj
j h p (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 Ti. Para o clculo do tempo de
resposta mximo (Ri), correspondendo ao intervalo de tempo entre a chegada e o
trmino da instncia da tarefa Ti, necessrio que se considere tambm o atraso mximo
experimentado por Ti na sua liberao:
R i = Wi + J i .
[10 ]
2.5.3
Deadline Arbitrrio
33
interferncias internas, ou seja, uma vez que se pode ter Di > Pi, 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 Ti onde suas ativaes podem se sobrepor. O "ibusy period" no comea mais com a liberao da instncia de Ti que se deseja calcular
o tempo de resposta. O perodo ocupado i continua sendo a janela de tempo Wi que
inclui essa instncia de Ti e que corresponde a maior execuo contnua de tarefas com
prioridade maior ou igual a i (pi = i). Porm, o incio desse perodo de execuo
contnua de tarefas se d com a liberao de outra ativao anterior de Ti. 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 Ti que podem se
sobrepor na concorrncia ao processador pois Di > Pi. O valor da janela de tempo Wi(q)
correspondente dado por [TBW94]:
W i ( q ) = ( q + 1) C i +
Wi (q )
C .
Pj j
j h p (i)
[1 1 ]
[1 2 ]
34
W i ( q ) = ( q + 1) C i +
Wi ( q ) + J j
Cj
Pj
j h p (i)
[1 3 ]
[1 4 ]
R i = m a x ( J i + W i ( q ) q Pi ).
q = 0 , 1 , 2 ,...
Ji
Ci
Pi
Di
ta r efa T 1
10
40
40
ta r efa T 2
10
80
25
ta r efa T 3
20
40
5 + 3
8 0 .1 0 = 2 5
25 + 3
+
.1 0 = 2 5
8 0
O valor do tempo de resposta R3(0) dado por [12] e corresponde a 25. Com W3(0)
superando o perodo P3 (P3 = 20) ento, essa janela no corresponde ao maior "busy
35
5 + 3
8 0 .1 0 = 3 0
30 + 3
.1 0 = 3 0
+
8 0
Com isto obtemos pela equao [12] R3(1) = W3(1) - P3 = 10. Como W3(1) < 2P3,
temos ento o mximo "3-busy period" envolvendo duas ativaes da tarefa T3. Logo o
tempo de resposta mximo da tarefa T3 o maior dos tempos de resposta obtidos, ou
seja, de valor 25, correspondendo a primeira ativao de T3 no maior "3-busy period".
A figura 2.8 mostra esse perodo ocupado de prioridade 3 onde T3 liberada em suas
duas ativaes em t = 0 e t = 20. Por sua vez, devido aos seus "releases jitters", as
tarefas T1 e T2 que chegam em 1 e 3, respectivamente, s so liberadas em t = 0. A
primeira ativao de T3 empurrada para fora de seu perodo interferindo com a
ativao seguinte da mesma tarefa.
tar efa T 1 -
Ji
Ci
Pi
Di
tar efa T 2 -
tar efa T 1
10
40
40
tar efa T 2
10
80
25
tar efa T 3
20
40
tar efa T 3 -
T2
T1 T3
-3
-1 0
T3
10
d2
20
30
36
tarefas comunicantes.
p
> p
> p
> p
p e d id o d e e n tr a d a e m S C
T1
T2
T
e x e c u ta n d o e m S C
T4
F ig u r a 2 .9 : In v e rs o d e p rio rid a d e s
37
Descrio do Protocolo
38
> p
> p
> p
b lo q u e io d ir e to p o r T
T
e x e c u ta n d o e m
S C
T 2
T 3
b lo q u e io p o r h e r a n a
d e T 2 e T 3 p o r T 4
T 4
0
1 0
1 1
F ig u ra 2 .1 0 : E x e m p lo d o u s o d o P H P
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.
> p
> p
39
b lo q u e io tr a n s itiv o :
T 4 h e rd a a p rio rid a d e d e T 1
S e e s C rtic a s :
T1
E x e c u ta n d o e m
SC
T3
T4
0
10
11
F ig u ra 2 .1 1 : B lo q u e io tra n s itiv o
Uma determinao precisa do valor de bloqueio mximo Bi que uma tarefa Ti pode
sofrer quando do uso do PHP certamente bem difcil, uma vez que, sees crticas de
tarefas menos prioritrias podem interferir com Ti atravs de diferentes tipos de
bloqueios. Dependendo da complexidade do modelo de tarefas, fica impraticvel a
determinao precisa de Bi. Alguns autores apresentam mtodos para estimativas desse
tempo de bloqueio ([BuW97], [But97] e [Raj91]). Um clculo mais preciso de Bi
envolve procuras exaustivas que considerando a complexidade do conjunto de tarefas
pode ser impraticvel.
O limite imposto pelo PHP no bloqueio mximo (Bi) que uma tarefa Ti 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:
i C j Bi
1
+
i ( 2 i 1),
P
P
j =1 j
i
i.
[15 ]
40
ta r e f a s
Ci
Pi
Bi
T1
18
T2
20
T3
10
50
T a b e la 2 .5
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]:
n
i =1
B
1
Ci
B
+ m a x 1 , . . . . , n n . 2 n 1 .
Pi
P
P
1
n
[1 6 ]
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:
B B
1
C1
C
C
+ 2 + 3 + m a x 1 , 2 3 2 3 1
P1
P2
P3
P1 P2
41
i , min 0 < t Pi U i ( t ) 1.
[17 ]
Wi ( q ) + J j
C j.
Pj
j h p (i)
[1 8 ]
O bloqueio Bi apresentado na equao [18] como uma interferncia sofrida por Ti.
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 Bi conforme citado acima, no exato, refletindo um pessimismo
por vezes exagerado.
Descrio do Protocolo
42
43
S2 -
S3 -
T1
T3
1
Eventos
10
11 12
13
14 15
16
17
Descrio
T 1 tenta fechar semforo S 1, bloqueado por ceiling; possui prioridade igual ao maior
ceiling de semforo j fechado pelas outras tarefas (C(S2 )=1).
T 1 libera S 1 .
10
T 1 fecha Semforo S2 .
11
T 1 libera S 2 .
12
13
14,15,16,17
44
B i = m a x D j ,k
j ,k
(p
< p i (C ( S k ) p i ) .
ta r e f a s
S1
S2
S3
ta r e f a T 1
ta r e f a T 2
ta r e f a T 3
T a b e la 2 .6
Para ilustrar o clculo de Bi sob o uso do PCP, considere a tabela 2.6 que descreve
as duraes de sees crticas (Dj,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:
B 1 = max (1,4) = 4
B 2 = max (8)= 8
B3 = 0
45
46
tarefas
T2
T4
T1
J i Ci
Pi
Di
T1
10 40 40
T2
10 80 25
T3
T4
10 80 80
80 40
T3
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.
47
10 + 1
W 21 = 1 0 +
10 = 20
4 0
20 + 1
W 22 = 1 0 +
10 = 20
4 0
Com W2 =20 e tomando J2=3, o valor do tempo de resposta dado por R2 = 23. A
tarefa T3, por sua vez, sofre interferncias de T1 e um "jitter" porque sua liberao
depende da concluso de T2 (J3 = R2):
W 30 = C 3 = 5
5 + 1
10 = 15
W 31 = 5 +
4 0
15 + 1
W 32 = 5 +
10 = 15
4 0
O tempo de resposta de T3 dado por: R3 = W3+J3 = 38. A tarefa T4, por sua vez,
sofre interferncias de T1 e T3 e um "jitter" de T2 (J4 = R2):
W 40 = C 4 = 10
10 + 23
10 + 1
5 = 25
10 +
W 41 = 1 0 +
8 0
4 0
48
25 + 1
25 + 23
W 42 = 1 0 +
10 +
5 = 2 5
4
0
80
49
Servidor de "Background"
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.
ta r e f a
ta r e f a
ta r e f a
ta r e f a
ta r e f a s
p e r i d ic a A
p e r i d ic a B
a p e r i d ic a C
a p e r io d ic a D
Ci
4
8
1
1
Pi
10
20
-
Di
10
20
-
ta r e f a A -
pi
1
2
3
3
ta r e f a B ta r e f a C ta r e f a D -
A ,B
10
12
A ,B
14
16
18
20
22
24
F ig u r a 2 .1 4 : S e r v id o r a d e B a c k g r o u n d
"Polling Server"
tarefa
tarefa
tarefa
tarefa
tarefa
tarefas
peridica A
peridica B
servidora PS
aperidica C
aperiodica D
Ci
4
8
1
1
0,5
Pi
10
20
5
-
Di
10
20
-
51
pi
3
2
1
-
A ,B
10
12
A ,B
14
16
18
20
22
24
C PS
1
10
15
16
20
i =1
ou seja
Ci
C
+ P S (n + 1) 2
Pi
PP S
U P ( n + 1) 2
( n + 1)
( n + 1)
1 ,
1 + U S .
52
"Deferrable Server"
Ci
Pi
Di
pi
t a r e fa p e r i d i c a A
ta re fa s
10
10
t a r e fa p e r i d i c a B
20
20
t a r e fa s e r v i d o r a P S
t a r e fa a p e r i d i c a C
t a r e fa a p e r i o d i c a D
0 ,5
A ,B
t a r e fa A t a r e fa B t a r e fa C t a r e fa D -
10
12
A ,B
14
16
18
20
22
24
C DS
10
12
15
20
F ig u r a 2 .1 6 : A lg o r t m o D e fe r r a b le S e r v e r
53
U +2
U P ln DS
. [19]
2U DS + 1
A equao [19] vlida somente para um muito grande nmero de tarefas
peridicas no sistema.
Servidor Espordico
54
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
(RTi=ta+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 ps se mantm como vlida.
tarefa A tarefa
tarefa
tarefa
tarefa
tarefa
Ci
1
6
2 ,5
1
1
Pi
5
14
10
-
Di
5
14
-
pi
1
3
2
-
ta refa s
p e ri d ic a A
p e ri d ic a B
serv id o ra S S
ap eri d ica C
ap erio d ica D
10
12
14
16
18
20
10
12
14
16
18
20
22
24
C SS
3
2
1
5
2
ln
.
U SS + 1
[2 0 ]
56
ta r e f a 1
10
ta r e f a 2
14
4 2 ,9
se rv id o r D S
1 ,0 0
2 0 ,0
se rv id o r P E
1 ,3 3
2 6 ,7
se rv id o r S S
1 ,3 3
2 6 ,7
U i (% )
2 0 ,0
T a b e la 2 .7 : U tiliz a o d o s s e r v id o re s D S , P E e S S
ta re fa s
57
Ci
Pi
Di
M in i
pi
t a r e fa p e r i d i c a A
12
12
t a r e fa p e r i d i c a B
20
20
t a r e fa s e r v i d o r a S S
32
10
t a r e fa a p e r i d i c a C
10
32
A ,B ,C
t a r e fa A t a r e fa B t a r e fa C -
dC
10
12
14
16
18
20
22
24
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
Nos casos de tarefas espordicas com Di<mini, 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 (minC).
ta r efa A -
ta re fa s
ta r efa B ta r efa C -
A ,B ,C
Ci
Pi
Di
M in i
pi
ta r efa p er i d ica A
12
12
ta r efa p er i d ica B
20
20
ta r efa ser v id o r a S S
32
10
ta r efa a p er id ica C
10
32
dC
12
16
20
24
28
32
12
16
20
24
28
32
CSS
8
58
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