Você está na página 1de 49

Captulo 2

O Escalonamento de Tempo Real


Em sistemas de tempo real que seguem a abordagem assncrona os aspectos de
implementao esto presentes mesmo na fase de projeto. Na implementao de
restries temporais, de fundamental importncia o conhecimento das propriedades
temporais do suporte de tempo de execuo usado e da escolha de uma abordagem de
escalonamento de tempo real adequada classe de problemas que o sistema deve tratar.
Neste sentido, este captulo e o prximo apresentam aspectos da teoria de
escalonamento e de sistemas operacionais sob a tica de tempo real.
Este captulo trata sobre escalonamento de tempo real de um modo geral. Conceitos,
objetivos, hipteses e mtricas so claramente apresentados no sentido de introduzir o
que chamamos de um problema de escalonamento. Posteriormente, diferentes classes
de problemas de escalonamento so examinadas em suas solues algortmicas.
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.
2. O Escalonamento de Tempo Real 12
Na seqncia introduzido um conjunto de conceitos que permitem a caracterizao
de um problema de escalonamento.
2.2 Modelo de Tarefas
O conceito de tarefa uma das abstraes bsicas que fazem parte do que
chamamos um problema de escalonamento. Tarefas ou processos formam as unidades
de processamento seqencial que concorrem sobre um ou mais recursos computacionais
de um sistema. Uma simples aplicao de tempo real constituda tipicamente de vrias
tarefas. Uma tarefa de tempo real, alm da correo lgica ("correctness"), deve
satisfazer seus prazos e restries temporais ou seja, apresentar tambm uma correo
temporal ("timeliness").
As restries temporais, as relaes de precedncia e de excluso usualmente
impostas sobre tarefas so determinantes na definio de um modelo de tarefas que
parte integrante de um problema de escalonamento. Nas sees subseqentes
descrevemos essas formas de restries que normalmente esto presentes em
processamentos de tempo real.
2.2.1 Restries Temporais
Aplicaes de tempo real so caracterizadas por restries temporais que devem ser
respeitadas para que se tenha o comportamento temporal desejado ou necessrio. Todas
as tarefas de tempo real tipicamente esto sujeitas a prazos: os seus "deadlines". A
princpio, uma tarefa deve ser concluda antes de seu "deadline". As conseqncias de
uma tarefa ser concluda aps o seu "deadline" define dois tipos de tarefas de tempo
real:
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.
Tarefas Brandas ou No Crticas (tarefas "soft"): Essas tarefas quando se
completam depois de seus "deadlines" no mximo implicam numa diminuio de
desempenho do sistema. As falhas temporais nesse caso so identificadas como
benignas onde a conseqncia do desvio do comportamento normal no representa
um custo muito significativo.
Outra caracterstica temporal de tarefas em sistemas de tempo real est baseada na
regularidade de suas ativaes. Os modelos de tarefa comportam dois tipos de tarefas
segundo suas freqncias de ativaes:
2.2 Modelo de Tarefas 13
Tarefas Peridicas: Quando as ativaes do processamento de uma tarefa ocorrem,
numa seqncia infinita, uma s ativao por intervalo regular chamado de
Perodo, essa tarefa identificada como peridica. As ativaes de uma tarefa
peridica formam o conjunto de diferentes instncias da tarefa. Nesse texto
assumimos a primeira ativao de uma tarefa peridica ocorrendo na origem dos
tempos considerados na aplicao (em t=0).
Tarefas Aperidicas ou Tarefas Assncronas: Quando a ativao do processamento
de uma tarefa responde a eventos internos ou externos definindo uma caracterstica
aleatria nessas ativaes, a tarefa dita aperidica.
As tarefas peridicas pela regularidade e portanto pela previsibilidade, usualmente
so associadas a "deadlines hard", ou seja, so tarefas crticas. As tarefas aperidicas
pela falta de previsibilidade em suas ativaes, normalmente, tem "deadlines soft"
associados a suas execues, compondo portanto as tarefas brandas de um sistema de
tempo real. Tarefas espordicas que correspondem a um subconjunto das tarefas
aperidicas, apresentam como caracterstica central a restrio de um intervalo mnimo
conhecido entre duas ativaes consecutivas e por isso, podem ter atributos de tarefas
crticas. As tarefas espordicas portanto so tambm associadas a "deadlines hard". As
figuras 2.1 e 2.2 apresentam caractersticas temporais de tarefas peridicas e
aperidicas, respectivamente.
Outras restries temporais so importantes na definio do comportamento
temporal de uma tarefa:

Tempo de computao ("Computation Time"): O tempo de computao de uma
tarefa o tempo necessrio para a execuo completa da tarefa.
Tempo de incio ("Start Time"): Esse tempo corresponde ao instante de incio do
processamento da tarefa em uma ativao.
Tempo de trmino ("Completion Time"): o instante de tempo em que se
completa a execuo da tarefa na ativao.
Tempo de chegada ("Arrival Time"): O tempo de chegada de uma tarefa o
instante em que o escalonador toma conhecimento de uma ativao dessa tarefa.
Em tarefas peridicas, o tempo de chegada coincide sempre com o incio do
perodo da ativao. As tarefas aperidicas apresentam o tempo de chegada
coincidindo com o tempo da requisio do processamento aperidico.
Tempo de liberao ("Release Time"): O tempo de liberao de uma tarefa
coincide com o instante de sua incluso na fila de Pronto (fila de tarefas prontas)
para executar.
Dependendo do modelo de tarefas assumido o tempo de liberao pode ou no
2. O Escalonamento de Tempo Real 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 T
i
descrito pela qudrupla (J
i
, C
i
, P
i
, D
i
) onde C
i
representa o
tempo de computao da tarefa, P
i
o perodo da tarefa, D
i
o "deadline" e J
i
o
"Release Jitter" da tarefa que, de certa maneira, corresponde a pior situao de
liberao da tarefa. Nessa representao de tarefas peridicas, J
i
e D
i
so grandezas
relativas (intervalos), medidas a partir do incio do perodo P
i
. O "deadline" absoluto e
o tempo de liberao da k
sima
ativao da tarefa peridica T
i
so determinados a partir
dos perodos anteriores:
d
ik
= (k-1)P
i
+ D
i
r
i
= (k-1)P
i
+J
i
(pior situao de liberao).



a
C
i
J
d r 1 s t c t
P
i
a = r d
C
i
s t c t
P
i
a d r
3
C
i
s t c t
t
F i g u r a 2 . 1 : A t i v a e s d e u m a t a r e f a p e r i d i c a
P
i
a t i v a o 1 a t i v a o 2 a t i v a o 3
D D D

Na figura 2.1 ilustrado alguns dos parmetros descritos acima. Porm, cada
ativao da tarefa peridica (J
i
, C
i
, P
i
, D
i
) definida a partir de tempos absolutos: os
tempos de chegada (a
i
), os tempos de liberao (r
i
), os tempos de incio (st
i
), os tempos
de trmino (ct
i
) e os "deadlines" absolutos (d
i
).



D
i
d st = a
C
ct a
t
F igur a 2.2: Ati vaes de uma taref a aper idica
D
i
mi n
i
d
C
i
st ct
mi n
i
req ui si o 1 req ui si o 2
0

2.3 Escalonamento de Tempo Real 15
Uma tarefa espordica descrita pela tripla (C
i
, D
i
, min
i
) onde C
i
o tempo de
computao, D
i
o "deadline" relativo medido a partir do instante da requisio do
processamento aperidico (chegada da tarefa espordica) e min
i
corresponde ao
mnimo intervalo entre duas requisies consecutivas da tarefa espordica. A descrio
de uma tarefa aperidica pura se limita apenas s restries C
i
e D
i
. Na figura 2.2, a
tarefa aperidica espordica (C
i
, D
i
, min
i
) apresentada com duas requisies.
Tomando o tempo de chegada da requisio espordica 2 como a
2
, o "deadline"
absoluto desta ativao assume o valor dado por: d
2
=a
2
+D
i
.
2.2.2 Relaes de Precedncia e de Excluso
Em aplicaes de tempo real, muitas vezes, os processamentos no podem executar
em ordem arbitrria. Implicaes semnticas definem relaes de precedncia entre as
tarefas da aplicao determinando portanto, ordens parciais entre as mesmas. Uma
tarefa T
j
precedida por uma outra T
i
(T
i
T
j
), se T
j
pode iniciar sua execuo somente
aps o trmino da execuo de T
i
. Relaes de precedncia podem tambm expressar a
dependncia que tarefas possuem de informaes (ou mesmo sinais de sincronizao)
produzidas em outras tarefas. As relaes de precedncia em um conjunto de tarefas
usualmente so representadas na forma de um grafo acclico orientado, onde os ns
correspondem s tarefas do conjunto e os arcos descrevem as relaes de precedncia
existentes entre as tarefas.
O compartilhamento de recursos em excluso mtua define outra forma de relaes
entre tarefas tambm significativas em escalonamentos de tempo real: as relaes de
excluso. Uma tarefa T
i
exclui T
j
quando a execuo de uma seo crtica de T
j
que
manipula o recurso compartilhado no pode executar porque T
i
j ocupa o recurso.
Relaes de excluso em escalonamentos dirigidos a prioridade podem levar a
inverses de prioridades onde tarefas mais prioritrias so bloqueadas por tarefas
menos prioritrias.
As relaes de precedncia e de excluso sero retomadas no item que trata sobre os
algoritmos de escalonamento dirigidos a prioridades.
2.3 Escalonamento de Tempo Real
2.3.1 Principais Conceitos
O termo escalonamento ("scheduling") identifica o procedimento de ordenar tarefas
na fila de Pronto. Uma escala de execuo ("schedule") ento uma ordenao ou lista
que indica a ordem de ocupao do processador por um conjunto de tarefas disponveis
2. O Escalonamento de Tempo Real 16
na fila de Pronto. O escalonador ("scheduler") o componente do sistema responsvel
em tempo de execuo pela gesto do processador. o escalonador que implementa
uma poltica de escalonamento ao ordenar para execuo sobre o processador um
conjunto de tarefas.
Polticas de escalonamento definem critrios ou regras para a ordenao das tarefas
de tempo real. Os escalonadores utilizando ento essas polticas produzem escalas que
se forem realizveis ("feasible"), garantem o cumprimento das restries temporais
impostas s tarefas de tempo real. Uma escala dita tima se a ordenao do conjunto
de tarefas, de acordo com os critrios pr-estabelecidos pela poltica de escalonamento,
a melhor possvel no atendimento das restries temporais.
Tendo como base a forma de clculo da escala (ordenao das tarefas), algumas
classificaes so encontradas para a grande variedade de algoritmos de escalonamento
de tempo real encontrados na literatura [AuB90, But97, CSR88]. Os algoritmos so
ditos preemptivos ou no preemptivos quando em qualquer momento tarefas se
executando podem ou no, respectivamente, ser interrompidas por outras mais
prioritrias. Algoritmos de escalonamento so identificados como estticos quando o
clculo da escala feito tomando como base parmetros atribudos s tarefas do
conjunto em tempo de projeto (parmetros fixos). Os dinmicos, ao contrrio, so
baseados em parmetros que mudam em tempo de execuo com a evoluo do sistema.
Os algoritmos de escalonamento que produzem a escala em tempo de projeto so
identificados como algoritmos "off-line". Se a escala produzida em tempo de
execuo o algoritmo de escalonamento dito de "on-line". A partir dessas
classificaes podemos ter algoritmos off-line estticos, on-line estticos e on-line
dinmicos. Essas classificaes sero revistas na apresentao de algoritmos de
escalonamento.
Um problema de escalonamento, na sua forma geral, envolve um conjunto de
processadores, um conjunto de recursos compartilhados e um conjunto de tarefas
especificadas segundo um modelo de tarefas definindo restries temporais, de
precedncia e de excluso. O escalonamento de tempo real, na sua forma geral,
identificado como um problema intratvel (NP-completo [GaJ79], [AuB90]). Muito
freqentemente os algoritmos existentes representam uma soluo polinomial para um
problema de escalonamento particular, onde um conjunto de hipteses podem expressar
simplificaes no modelo de tarefas ou ainda na arquitetura do sistema, no sentido de
diminuir a complexidade do problema. Quando nenhuma simplificao usada para
abrandar a complexidade no escalonamento, uma heurstica usada para encontrar uma
escala realizvel ainda que no sendo tima mas que garanta as restries do problema.
Os algoritmos de escalonamento esto ento ligados a classes de problemas de
escalonamento de tempo real. Um algoritmo identificado como timo se minimiza
algum custo ou mtrica definida sobre a sua classe de problema. Quando nenhum custo
ou mtrica definido, a nica preocupao ento encontrar uma escala realizvel.
Nesse caso, o algoritmo dito timo quando consegue encontrar uma escala realizvel
para um conjunto de tarefas sempre que houver um algoritmo da mesma classe que
tambm chega a uma escala realizvel para esse mesmo conjunto; se o algoritmo timo
2.3 Escalonamento de Tempo Real 17
falha em um conjunto de tarefas na determinao de uma escala realizvel ento todos
os algoritmos da mesma classe de problema tambm falharo.
2.3.2 Abordagens de Escalonamento
Uma aplicao de tempo real expressa na forma de um conjunto de tarefas e, para
efeito de escalonamento, o somatrio dos tempos de computao dessas tarefas na fila
de Pronto determina a carga computacional ("task load") que a aplicao constitui para
os recursos computacionais em um determinado instante. Uma carga toma
caractersticas de carga esttica ou limitada quando todas as suas tarefas so bem
conhecidas em tempo de projeto na forma de suas restries temporais, ou seja, so
conhecidas nas suas condies de chegada ("arrival times" das tarefas). O fato de
conhecer a priori os tempos de chegada torna possvel a determinao dos prazos a que
uma carga est sujeita. As situaes de pico (ou de pior caso) nestas cargas so tambm
conhecidas em tempo de projeto. Cargas estticas so modeladas atravs de tarefas
peridicas e espordicas.
Cargas dinmicas ou ilimitadas ocorrem em situaes onde as caractersticas de
chegada das tarefas no podem ser antecipadas. Essas cargas so modeladas usando
tarefas aperidicas, ou seja, basta que se tenha uma tarefa aperidica no conjunto cujo
intervalo mnimo entre requisies seja nulo e teremos as condies de pico dessa carga
desconhecida em tempo de projeto.
O escalonamento muitas vezes dividido em duas etapas. Um teste de
escalonabilidade inicialmente executado, no sentido de determinar se as restries
temporais de um conjunto de tarefas so atendidas considerando os critrios de
ordenao definidos no algoritmo de escalonamento. A segunda etapa envolve ento o
clculo da escala de execuo.
Diferentes abordagens de escalonamento so identificadas na literatura, tomando
como base o tipo de carga tratado e as etapas no escalonamento identificados acima. Em
[RaS94] definida uma taxonomia que identifica trs grupos principais de abordagens
de escalonamento de tempo real: as abordagens com garantia em tempo de projeto ("off-
line guarantee"), com garantia em tempo de execuo ("on-line guarantee") e
abordagens de melhor esforo ("best-effort").
O grupo garantia em tempo de projeto formado por abordagens que tem como
finalidade a previsibilidade determinista. A garantia em tempo de projeto conseguida
a partir de um conjunto de premissas:

a carga computacional do sistema conhecida em tempo de projeto (carga
esttica);
no sistema existe uma reserva de recursos suficientes para a execuo das
tarefas, atendendo suas restries temporais, na condio de pior caso.
2. O Escalonamento de Tempo Real 18
O fato de se conhecer a priori a carga (conhecer os tempos de chegada das tarefas),
permite que se possa fazer testes de escalonabilidade, determinando se o conjunto de
tarefas considerado escalonvel e, portanto, garantindo suas restries temporais ainda
em tempo de projeto. O conhecimento prvio da situao de pior caso (situao de pico)
permite at que se possa redimensionar o sistema de modo a garantir as restries
temporais mesmo nessa situao de pico. O grupo de abordagens com garantia em
tempo de projeto prprio para aplicaes deterministas ou crticas onde a carga
conhecida previamente, como em aplicaes embarcadas, controle de trfego
ferrovirio, controle de processos em geral, etc.
So basicamente dois os tipos de abordagens com garantia em tempo de projeto: o
executivo cclico e os escalonamentos dirigidos a prioridades. No executivo cclico
([Kop97] [XuP93]) ambos, o teste de escalonabilidade e a produo da escala, so
realizados em tempo de projeto. Essa escala (ou grade), definida em tempo de projeto,
de tamanho finito e determina a ocupao dos slots do processador em tempo de
execuo. O teste de escalonabilidade fica implcito no processo de montagem da
escala. A complexidade dos algoritmos ou heursticas usadas no clculo da escala
depende da abrangncia do modelo de tarefas usado. Modelos mais complexos
envolvem o uso de funes heursticas para dirigir tcnicas de "branch and bound" na
procura de escalas realizveis [Pin95].
Essa abordagem chamada de executivo cclico porque o escalonador em tempo de
execuo se resume a um simples dispachante, ativando tarefas segundo a grade,
ciclicamente. A escala calculada nessa abordagem, em tempo de projeto, reflete o pior
caso
1
. Como o pior caso distante do caso mdio e nem sempre ocorre, a ativao das
tarefas segundo essas grades, embora satisfaa s restries temporais, implica em
desperdcio de recursos que so sempre reservados para o pior caso.
Abordagens com garantia em tempo de projeto baseadas em escalonadores dirigidos
a prioridades so mais flexveis. O teste de escalonamento realizado em tempo de
projeto enquanto a escala produzida "on-line" por um escalonador dirigido a
prioridades. As tarefas tm suas prioridades definidas segundo polticas de
escalonamento que envolvem atribuies estticas (prioridades fixas) ou dinmicas
(prioridades variveis), caracterizando escalonadores on-line estticos ou dinmicos.
Nessa abordagem, o pior caso se reflete apenas no teste de escalonabilidade que
executado em tempo de projeto, decidindo se o conjunto de tarefas escalonvel ou
no. Por no existir uma reserva de recursos em tempo de execuo como no executivo
cclico, os escalonamentos dirigidos a prioridades definem solues mais flexveis,
porm, mantendo tambm garantias de recursos para o pior caso.
Os grupos de abordagens garantia dinmica ("on-line guarantee") e de melhor


1
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 (min
i
), etc.

2.3 Escalonamento de Tempo Real 19
esforo ("best-effort"), ao contrrio do grupo anterior, no tratam com uma carga
computacional previsvel; na verdade, a carga tratada por essas abordagens dinmica:
os tempos de chegada das tarefas no so conhecidos previamente. Quando o pior caso
no pode ser antecipado em tempo de projeto, no se consegue prever recursos para
todas as situaes de carga. No existindo portanto, a possibilidade de se antecipar que
todas as tarefas, em qualquer situao de carga, tero sempre seus "deadlines"
respeitados. Essas abordagens que tratam com carga dinmica devem ento lidar com
situaes, em tempo de execuo, onde os recursos computacionais so insuficientes
para os cenrios de tarefas que se apresentam (situaes de sobrecarga). Tanto a escala
como os testes de escalonabilidade so realizados em tempo de execuo nessas
abordagens (escalonadores "on-line" e dinmicos).
O grupo de abordagens com garantia dinmica ([RaS94]) se utilizam de um teste
para verificar a escalonabilidade do conjunto formado por uma nova tarefa que chega
no sistema e das tarefas que j existiam previamente na fila de pronto. Esses testes so
chamados de testes de aceitao e esto baseados em anlises realizadas com hipteses
de pior caso sobre alguns parmetros temporais. Se o teste indica o conjunto como no
escalonvel, a nova tarefa que chegou ento descartada. Esse mecanismo de garantia
dinmica em qualquer situao preserva as tarefas j previamente garantidas como
escalonveis. Essas abordagens que oferecem garantia dinmica so prprias para
aplicaes que possuam restries crticas mas que operam em ambientes no
deterministas. Sistemas militares, sistemas de radar e controle areo exemplificam
alguns desses sistemas que esto sujeitos a cargas dinmicas e necessitam atender
restries temporais.
As abordagens de melhor esforo so constitudas por algoritmos que tentam
encontrar uma escala realizvel em tempo de execuo sem realizar testes ou ainda,
realizando testes mais fracos. No existe a garantia de execues de tarefas atendendo
suas restries temporais. Essas abordagens so adequadas para aplicaes no crticas,
envolvendo tarefas "soft" onde a perda de "deadlines" no representa custos alm da
diminuio do desempenho nessas aplicaes. As abordagens de melhor esforo so
adequadas para aplicaes de tempo real brandas como sistemas de multimdia.
O desempenho de esquemas de melhor esforo, na ocorrncia de casos mdios,
melhor que os baseados em garantia. As hipteses pessimistas feitas em abordagens
com garantia dinmica podem desnecessariamente descartar tarefas. Nas abordagens de
melhor esforo tarefas so abortadas somente em condies reais de sobrecarga, na
ocorrncia de falhas temporais ("deadline"s no podem ser atendidos).
Algumas tcnicas foram introduzidas no sentido de tratar com sobrecargas. A
Computao Imprecisa [LSL94], o "Deadline (m,k) Firm" [HaR95], Tarefas com
Duplo "Deadlines" [GNM97] so exemplos dessas tcnicas adaptativas. Essas tcnicas
de escalonamento adaptativo so usadas em abordagens de melhor esforo para tratar
com sobrecargas em cargas dinmicas. A figura 2.3 sintetiza as abordagens descritas
nesse item.
Nesse captulo, o estudo de escalonamento de tempo real concentrado sobre a
2. O Escalonamento de Tempo Real 20
abordagem de escalonamento dirigido a prioridades.



E s c a l o n a m e n t o d e T e m p o R e a l
A b o r d a g e n s c o m G a r a n t i a
e m T e m p o d e P r o j e t o
E x e c u t i v o
C c l i c o
D i r i g i d o a
P r i o r i d a d e s
A b o r d a g e n s d e
M e l h o r E s f o r o
T c n i c a s
A d a p t a t i v a s
A b o r d a g e n s c o m
G a r a n t i a D i n m i c a
F ig u r a 2 . 3 : Abo r d a g e ns d e E s c a lo na ment o d e T e mp o R e a l

2.3.3 Teste de Escalonabilidade
Testes de escalonabilidade so importantes no processo de escalonamento de tarefas
de tempo real no sentido de determinar se um conjunto de tarefas escalonvel, ou seja,
se existe para esse conjunto de tarefas uma escala realizvel. Esses testes variam
conforme os modelos de tarefas e polticas definidas em um problema de
escalonamento. Normalmente, correspondem a anlises de pior caso que em certas
classes de problemas, apresentam complexidade NP.



t este suf ic ient e
t este e xato
t este ne cessrio
conjunt os de t are fas escal onveis conjunt os de t are fas no escal onv eis
Aument o da c omplex idade
dos conjunt os de tare fas
Figur a 2. 4 : Tipo s de t est es de escalo nabilidade

Na literatura so identificados alguns tipos de testes [Kop92c]:

Testes exatos so anlises que no afastam conjuntos de tarefas que apresentam
escalas realizveis. So precisos na medida em que identificam tambm conjuntos
no escalonveis. Em muitos problemas so impraticveis os testes exatos.
Testes suficientes so mais simples na execuo porm apresentam o custo do
descarte de conjuntos de tarefas escalonveis. um teste mais restritivo onde
2.4 Escalonamento de Tarefas Peridicas 21
conjuntos de tarefas aceitos nesses testes certamente so escalonveis; porm entre
os descartados podem existir conjuntos escalonveis.
Testes necessrios correspondem tambm a anlises simples porm no to
restritivas. O fato de um conjunto ter passado por um teste necessrio no implica
que o mesmo seja escalonvel. A nica garantia que esse tipo de teste pode
fornecer que os conjuntos descartados de tarefas certamente so no escalonveis.
A figura 2.4 ilustra os trs tipos de testes descritos acima.
A utilizao de uma tarefa T
i
que serve como uma medida da ocupao do
processador pela mesma, dado por:
U
i
= C
i
/ P
i
se a tarefa T
i
peridica, ou
U
i
= C
i
/ Min
i
se a tarefa T
i
espordica,
onde C
i
, P
i
e Min
i
so respectivamente o tempo mximo de computao, o perodo e o
intervalo mnimo entre requisies da tarefa T
i
. A utilizao de um processador (U) d a
medida da ocupao do mesmo por um conjunto de tarefas { T
1
, T
2
, T
3
, ..., T
n
}:
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 (U
i
) das tarefas do conjunto
no ultrapasse o nmero de processadores disponveis para suas execues:
onde m o nmero de processadores. Testes baseados na utilizao podem ser exatos,
necessrios ou suficientes, dependendo da poltica usada e do modelo de tarefas
assumido [Kop92c].
2.4 Escalonamento de Tarefas Peridicas
Nesse item tratado o problema do escalonamento de tarefas peridicas. Se
considerarmos aplicaes de tempo real de uma maneira geral, sejam controle de
processos ou mesmo aplicaes de multimdia, as atividades envolvidas nessas
aplicaes se caracterizam basicamente pelo comportamento peridico de suas aes.
As caractersticas de tarefas peridicas que determinam o conhecimento a priori dos
tempos de chegada e, por conseqncia, da carga computacional do sistema, permitem
que se obtenha garantias em tempo de projeto sobre a escalonabilidade de um conjunto
de tarefas peridicas.
O escalonamento de tarefas peridicas, nesse texto, discutido em esquemas
[ ] U U
i
i
n


. 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].

Você também pode gostar