Sei sulla pagina 1di 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.

12

2. O Escalonamento de Tempo Real

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

14

2. O Escalonamento de Tempo Real

coincidir com o tempo de chegada da tarefa. Em geral assumido que to logo uma
instncia de uma tarefa chegue, a mesma liberada na fila de Pronto. Mas, nem sempre
esse o caso; uma tarefa pode ser retardada na sua liberao pelo "polling" de um
escalonador ativado por tempo ("tick scheduler") ou talvez pelo bloqueio na recepo
de uma mensagem (tarefas ativadas por mensagem). Essa no coincidncia dos tempos
de chegada com as liberaes da tarefa conduz ao que identificado como "Release
Jitter", que representa a mxima variao dos tempos de liberao das instncias da
tarefa.
Diante das restries temporais citadas temos ento o comportamento temporal de
uma tarefa peridica Ti descrito pela qudrupla (Ji, Ci, Pi, Di) onde Ci representa o
tempo de computao da tarefa, Pi o perodo da tarefa, Di o "deadline" e Ji o
"Release Jitter" da tarefa que, de certa maneira, corresponde a pior situao de
liberao da tarefa. Nessa representao de tarefas peridicas, Ji e Di so grandezas
relativas (intervalos), medidas a partir do incio do perodo Pi. O "deadline" absoluto e
o tempo de liberao da ksima ativao da tarefa peridica Ti so determinados a partir
dos perodos anteriores:
dik = (k-1)Pi + Di
ri = (k-1)Pi +Ji
(pior situao de liberao).
a tiv a o 1

a tiv a o 2

a tiv a o 3

Pi

Pi
D

Pi

D
J

Ci
a

r1

Ci
ct

st

a =r

st

Ci
ct

r3

st

ct

F i g u r a 2 . 1 : A ti v a e s d e u m a t a r e f a p e r i d ic a

Na figura 2.1 ilustrado alguns dos parmetros descritos acima. Porm, cada
ativao da tarefa peridica (Ji, Ci, Pi, Di) definida a partir de tempos absolutos: os
tempos de chegada (ai), os tempos de liberao (ri), os tempos de incio (sti), os tempos
de trmino (cti) e os "deadlines" absolutos (di).
r e q u is i o 2

r e q u is i o 1

m in i

m in i
Di

Di

Ci
0

st

C
ct

st

= a

ct

F ig u r a 2 .2 : A tiv a e s d e u m a ta re f a a p e r i d ic a

2.3 Escalonamento de Tempo Real

15

Uma tarefa espordica descrita pela tripla (Ci, Di, mini) onde Ci o tempo de
computao, Di o "deadline" relativo medido a partir do instante da requisio do
processamento aperidico (chegada da tarefa espordica) e mini corresponde ao
mnimo intervalo entre duas requisies consecutivas da tarefa espordica. A descrio
de uma tarefa aperidica pura se limita apenas s restries Ci e Di. Na figura 2.2, a
tarefa aperidica espordica (Ci, Di, mini) apresentada com duas requisies.
Tomando o tempo de chegada da requisio espordica 2 como a2, o "deadline"
absoluto desta ativao assume o valor dado por: d2=a2+Di.

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 Tj precedida por uma outra Ti (Ti Tj), se Tj pode iniciar sua execuo somente
aps o trmino da execuo de Ti. 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 Ti exclui Tj quando a execuo de uma seo crtica de Tj que
manipula o recurso compartilhado no pode executar porque Ti 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

16

2. O Escalonamento de Tempo Real

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 ("offline 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.

18

2. O Escalonamento de Tempo Real

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
caso1. 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 (mini), 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

20

2. O Escalonamento de Tempo Real

abordagem de escalonamento dirigido a prioridades.


E sc a lo n a m e n to d e T e m p o R e a l

A b o rd a g e n s c o m G a ra n tia
e m T e m p o d e P ro je to

E x e c u tiv o
C c lic o

A b o rd a g e n s c o m
G a ra n tia D in m ic a

A b o rd a g e n s d e
M e lh o r E sfo r o

T c n ic a s
A d a p ta tiv a s

D irig id o a
P rio rid a d e s

F ig u r a 2 . 3 : A b o r d a g e n s d e E s c a lo n a m e n t o d e T e m p o R e a l

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.
c o n ju n to s d e ta re fa s e sc a lo n v e is

te ste su fic ie n te

c o n ju n to s d e ta re fa s n o e sc a lo n v e is

A u m e n to d a c o m p le x id a d e
d o s c o n ju n to s d e ta re fa s

te ste e x a to
te ste n e c e ss rio

F ig u r a 2 .4 : T ip o s d e te ste s d e e sc a lo na bilid a d e

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 Ti que serve como uma medida da ocupao do


processador pela mesma, dado por:
Ui = Ci / Pi se a tarefa Ti peridica, ou
Ui = Ci / Mini se a tarefa Ti espordica,
onde Ci, Pi e Mini so respectivamente o tempo mximo de computao, o perodo e o
intervalo mnimo entre requisies da tarefa Ti. A utilizao de um processador (U) d a
medida da ocupao do mesmo por um conjunto de tarefas { T1, T2, T3, ..., Tn}:
n

U =

[1]

O conceito de utilizao serve de base para testes simples e bastante usados. A idia
central nesses testes que a soma dos fatores de utilizao (Ui) das tarefas do conjunto
no ultrapasse o nmero de processadores disponveis para suas execues:

U =

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

22

2. O Escalonamento de Tempo Real

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.
b.
c.
d.

As tarefas so peridicas e independentes.


O "deadline" de cada tarefa coincide com o seu perodo (Di=Pi).
O tempo de computao (Ci) de cada tarefa conhecido e constante (Worst
Case Computation Time).
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

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:
U =

Ci

Pi n 2

[2 ]

1 .

A medida que n cresce, nesse teste, a utilizao do processador converge para 0,69.
Uma utilizao de aproximadamente 70% define uma baixa ocupao do processador
que, certamente, implica no descarte de muitos conjuntos de tarefas com utilizao
maior e que, mesmo assim, apresentam escalas realizveis (feasible).
Essa condio suficiente pode ser relaxada quando as tarefas do conjunto
apresentam perodos mltiplos do perodo da tarefa mais prioritria. Nesse caso a
utilizao alcanada sob o RM se aproxima do mximo terico, coincidindo o teste
abaixo com uma condio necessria e suficiente [Kop92c]:
n

U =

C
i

Tarefas Peridicas

Pi 1.

Periodo

Tempo de Computao

Prioridade RM

Utilizao

(Pi)

(Ci)

(pi)

(Ui)

tarefa A

100

20

0,2

tarefa B

150

40

0,267

tarefa C

350

100

0,286

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:

0 , 753 n 2

1 = 0 , 779

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

24

2. O Escalonamento de Tempo Real

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.
tarefa A tarefa B tarefa C -

A ,B ,C

40

80

1 20

A ,B

1 60

2 00

2 40

2 80

3 20

3 60

F igura 2.5 : E scala R M produzida a partir da T abela 2.1

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.
b.
c.
d.

As tarefas so peridicas e independentes.


O "deadline" de cada tarefa coincide com o seu perodo (Di=Pi).
O tempo de computao (Ci) de cada tarefa conhecido e constante (Worst
Case Computation Time).
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
(di). A tarefa mais prioritria a que tem o "deadline" di 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 Ti, 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):
dik=kPi.
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

U =

i=1

Ci

25

[3 ]

Pi 1 .

Esse teste suficiente e necessrio na classe de problema definida para o EDF pelas
premissas a, b, c e d. Se qualquer uma dessas premissas relaxada (por exemplo,
assumindo DiPi), a condio [3] continua a ser necessria porm no mais suficiente.
No exemplo mostrado na figura 2.6, o mesmo conjunto de tarefas submetido a
escalonamentos EDF e RM. A utilizao do conjunto de tarefas de 100%. Com isto
pela equao [2] o conjunto no escalonvel pelo RM. Entretanto, a equao [3]
garante a produo de uma escala pelo EDF. No caso (b) da figura 2.6, no tempo t = 50
a tarefa B perde seu "deadline". Alm da melhor utilizao, uma outra diferena,
normalmente citada na literatura, que o EDF produz menos preempes que o RM. A
favor do RM est a sua simplicidade que facilita a sua implementao.
C

ta r e fa A

10

20

20

ta r e fa B

25

50

50

A ,B

ta r e fa A -

ta re fa s p e ri d ic a s

10

20

30

(a)
A ,B

ta r e fa B -

40

50

60

E sc a lo n a m e n to E D F

B
p e r d a d e d e a d lin e d e B

10

20

30

(b)

40

50

60

E sc a lo n a m e n to R M

F ig u r a 2 . 6 : E s c a la s p r o d u z id a s p e lo ( a ) E D F e ( b ) R M

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 (Di=Pi), 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 (Ci) e o

26

2. O Escalonamento de Tempo Real

chaveamento entre tarefas de durao nula. Porm assume "deadlines" relativos


menores ou iguais aos perodos das tarefas (Di Pi).
A poltica do DM define uma atribuio esttica de prioridades, baseada nos
"deadlines" relativos das tarefas (Di). 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.
ta r e fa s p e r i d ic a s

Ci

Pi

Di

pi

ta r e f a A

10

ta r e f a B

10

ta r e f a C

20

16

ta r e f a A ta r e f a B ta r e f a C -

A ,B ,C

A ,B ,C

A ,B
d

dB

dC

12

16

20

24

F i g u r a 2 .7 : E s c a l a p r o d u z i d a p e l o D M

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 Pi
tambm como o mnimo intervalo entre requisies (mini) de uma tarefa espordica Ti
[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 (Ci) 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") Wi(t) deste intervalo e dada
por:
Wi (t ) =

j =1

t
. C j ,

Pj

[4 ]

28

2. O Escalonamento de Tempo Real

onde t/Pj corresponde ao mximo nmero de ocorrncias de uma tarefa Tj no intervalo


t e t/Pj.Cj define as necessidades de processador dessa mesma tarefa no intervalo
considerado. A diviso do "workload" Wi(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 :
W (t )
[5 ]
U i (t ) = i
.
t
A condio necessria e suficiente para que a tarefa Ti seja escalonvel que exista
um valor de t em que a sua utilizao Ui(t) seja menor ou igual a 1, isto , que a carga
de trabalho Wi(t) no supere o intervalo de tempo t (Wi(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 Ti 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,Pi]. Neste caso a procura de t pode se resumir a testar
os valores de mnimo de Ui(t) no intervalo considerado:

i, min 0< t Pi Ui(t) 1,


No lugar de fazer uma procura entre todos os valores de t no intervalo (0, Pi], os
clculos podem se resumir a testar os valores de :

S i = kPj 1 j i,

Pi
k = 1 ,2 , . . . ,
.
P j

[6 ]

Os pontos descritos em Si correspondem aos tempos de chegada das ativaes das


tarefas Tj de prioridade maior ou igual a Ti, ocorrendo dentro do perodo Pi. Estes
pontos correspondem aos mnimos de Ui(t), uma vez que, esta funo monotnica
decrescente nos intervalos entre chegadas de tarefas Tj. 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 Ui(t) 1.

[7]

O teste acima quando comparado com [2], embora mais complexo, pode aprovar
conjuntos de tarefas que seriam rejeitados pelo teste suficiente proposto originalmente
para o RM. O teste composto a partir de [5] e [7] permite uma maior utilizao do
processador, formando uma condio suficiente e necessria [LSD89], [Fid98].
Como exemplo, considere o conjunto de tarefas da figura 2.6 (tabela 2.2) em que
ocorre na escala do RM, a perda do "deadline" da tarefa T2 em t=50. Para a verificao

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].
ta re fa s p e ri d ic a s

Ci

Pi

Di

t a r e fa T 1

10

20

20

t a r e fa T 2

25

50

50

T a b e la 2 . 2 : E x e m p lo d a fig u r a 2 . 6

Nessa verificao, inicialmente temos que calcular as utilizaes Ui (t) para todas as
tarefas do conjunto. Comeamos ento calculando a carga de trabalho correspondente
de cada tarefa (equao [4]):
t
W1 (t ) =
.1 0
2 0

t
t
W 2 (t ) =
.2 5 +
.1 0 ,
5 0
2 0

determinamos as utilizaes (equao [5]):


U 1 (t ) =

W1 ( t )
t

W2 (t )
.
t

A dificuldade fazer a inspeo na procura de valores de t que determinam Ui(t) 1.


Para a tarefa T1 esses valores so obtidos a partir de S1 ([6]): S1 = {20}. Ento, para o
valor de t=20, a utilizao U1(20) determinada como sendo de 0,5. Logo, pela
condio [7], a tarefa T1 escalonvel.
O conjunto referente a T2, usando tambm [6], formado por: S2 = {20, 40, 50}.
A partir deste conjunto determinada U2(t):
t = 20 U 2 (20) = 1,75
t = 40 U 2 (40) = 1,12
t =50 U 2 (50) = 1,1.

O mximo valor de utilizao U2(t) ocorre em t = 20 (o menor valor de t em S2) 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

30

2. O Escalonamento de Tempo Real

"deadlines" relativos iguais aos seus respectivos perodos. O modelo assume tambm
tarefas com "deadlines" menores aos seus perodos (Di Pi). Esse teste, diferentemente
dos anteriores, est fundamentado no conceito de tempo de resposta. Em [JoP86],
tempo de resposta mximo de uma tarefa foi introduzido como sendo o tempo
transcorrido entre a chegada e o trmino de sua execuo, considerando a mxima
interferncia que a tarefa pode sofrer de outras tarefas de maior ou igual prioridade.
Uma anlise de escalonabilidade que se utilize desse conceito deve representar ento o
pior caso de interferncias (em termos de tempo) sobre cada tarefa do sistema.
Para o clculo do tempo de resposta mximo de uma tarefa necessrio que se
defina uma janela de tempo Ri que corresponda ao intervalo de tempo mximo
transcorrido da liberao de uma tarefa Ti at o trmino de sua execuo. A largura Ri
corresponde ao tempo necessrio, em situao de instante crtico, para a execuo de Ti
e de todas as tarefas com prioridades maiores ou iguais a i (pi=i). Nestas condies, o
tempo de resposta mximo Ri da tarefa Ti dado por :
Ri = Ci +

j h p (i)

onde hp(i) o conjunto de prioridades maior que i e, Ij a interferncia que a tarefa Ti


pode sofrer de uma tarefa Tj de prioridade maior, durante a largura Ri. A interferncia Ij
calculada por:
I

R
= i C
Pj

onde Ri / Pj representa o nmero de liberaes de Tj em Ri. A expresso do tempo de


resposta Ri pode ser reescrita como:
R
Ri = Ci + i C j
[8 ]
j h p (i) P j
Uma tarefa Ti mantm suas propriedades temporais sempre que Ri Di. Nesta
verificao necessrio a determinao de Ri a partir de [8]. Porm a largura Ri
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]:
Rn
R in + 1 = C i + i C j
j h p (i) P j
onde a soluo conseguida a partir do clculo de Rin, a nsima aproximao de Ri,
quando Rin+1= Rin. Nesse mtodo iterativo assumido, como condio de partida,
Ri0=Ci. 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
RiDi for verificada. Os clculos dos tempos de respostas formam a base para um teste
suficiente e necessrio.
ta re fa s p e ri d ic a s
ta r efa A
ta r efa B
ta r efa C

Ci
2
2
8

Pi
10
10
20

Di
6
8
16

T a bela 2 .3 : E x em p lo d a fig u r a 2 .7

Para clarificar o uso desse teste de escalonabilidade, considere o exemplo que foi
apresentado na figura 2.7 onde era apresentada uma escala produzida pelo "Deadline
Monotonic". As caractersticas das tarefas so reproduzidas na tabela 2.3.
A poltica DM pelos valores da tabela define uma atribuio de prioridades onde
pA>pB>pC. Os tempos de resposta das tarefas consideradas so determinados a partir da
aplicao da equao [8] nos valores da tabela 2.3. A tarefa TA, por ser a mais
prioritria, no sofre interferncia das demais e o seu tempo de resposta dado por
RA=CA=2. TA escalonvel porque seu tempo de resposta mximo menor que seu
"deadline" relativo (DA = 6) O clculo de RB, ao contrrio, envolve mais passos devido
a interferncia que TB sofre de TA. Aplicando [8] obtido:
R B0 = C B = 2
2
R B1 = 2 +
.2 = 4
1 0
4
R B2 = 2 +
.2 = 4
1 0

A tarefa TB que apresenta RB = 4 tambm escalonvel (RB DB). O tempo RC, por
sua vez, envolve as interferncias de TA e TB em TC. A partir de [8]:
R C0 = C C = 8
8
8
.2 +
.2 = 1 2
R C1 = 8 +
1 0
1 0
12
12
.2 +
.2 = 1 6
R C2 = 8 +

1
0

1 0
16
16
.2 +
.2 = 1 6
R C3 = 8 +
1 0
1 0

A tarefa TC tambm escalonvel apresentando um tempo de resposta (16 unidades


de tempo) no limite mximo para o seu "deadline" relativo (RC = DC). Os resultados
obtidos confirmaram a escala obtida pelo DM para o conjunto de tarefas da figura 2.7.

32

2. O Escalonamento de Tempo Real

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 Wi onde ocorre a execuo contnua de tarefas com
prioridade maior ou igual a i (pi = i). O "i-busy period" associado com a tarefa Ti
comea quando da liberao da instncia de Ti e parte do pressuposto que todas as
tarefas de prioridades maior que i esto na fila de pronto.
Se considerarmos a janela Wi, o limite mximo das ocorrncias de Tj nesse intervalo
dado por Wi /Pj. Porm ao se assumir que uma instncia de Tj, anterior ao incio de
Wi, experimenta um atraso mximo Jj na sua liberao determinando a interferncia
dessa instncia sobre Ti associada com Wi, o nmero de ativaes de Tj que interferem
com Ti passa a ser (Wi+Jj) / Pj. Nessas condies o clculo de Wi dado por
[TBW94] :
Wi = C i +

Wi + J j

Cj
Pj

j h p (i)

[9 ]

onde a soluo de [9] conseguida pelo mesmo mtodo iterativo usado para resolver
[8]. Wi o intervalo entre a liberao e o termino de Ti. Para o clculo do tempo de
resposta mximo (Ri), correspondendo ao intervalo de tempo entre a chegada e o
trmino da instncia da tarefa Ti, necessrio que se considere tambm o atraso mximo
experimentado por Ti na sua liberao:

R i = Wi + J i .

[10 ]

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

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 Di Pi. Porm em modelos de "deadlines" arbitrrios
onde "deadlines" podem assumir valores maiores que os respectivos perodos (Di > Pi),
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 Di > Pi, ocorrncias anteriores
de uma mesma tarefa podem interferir numa ativao posterior.
necessrio que se estenda o conceito de "busy period" para se determinar o pior
caso de interferncia em uma tarefa Ti onde suas ativaes podem se sobrepor. O "ibusy period" no comea mais com a liberao da instncia de Ti que se deseja calcular
o tempo de resposta. O perodo ocupado i continua sendo a janela de tempo Wi que
inclui essa instncia de Ti e que corresponde a maior execuo contnua de tarefas com
prioridade maior ou igual a i (pi = i). Porm, o incio desse perodo de execuo
contnua de tarefas se d com a liberao de outra ativao anterior de Ti. Nessa
extenso assumido que a execuo de qualquer liberao de uma tarefa ser atrasada
at que liberaes anteriores da mesma tarefa sejam executadas completamente.
Considera-se ento o "i-busy period" incluindo q+1 ativaes de Ti que podem se
sobrepor na concorrncia ao processador pois Di > Pi. O valor da janela de tempo Wi(q)
correspondente dado por [TBW94]:
W i ( q ) = ( q + 1) C i +

Wi (q )

C .
Pj j
j h p (i)

[1 1 ]

O valor q.Ci em [11] representa a interferncia interna que a ltima instncia de Ti


sofre em Wi(q). Por exemplo, se q=2 ento Ti ter trs liberaes em Wi(q). O tempo de
resposta da (q+1)sima ativao de Ti dada por:
R i ( q ) = W i ( q ) q Pi

[1 2 ]

ou seja, o tempo de resposta dado considerando o desconto do nmero de perodos de


Ti em Wi(q), anteriores a (q+1)sima ativao de Ti. Para que se obtenha o tempo de
resposta mximo Ri da tarefa Ti 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:
Wi ( q ) ( q + 1) Pi .
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 Ri calculado por:
R i = m a x R i ( q ).
q = 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 Ti, a janela de tempo
Wi(q) e o tempo de resposta Ri passam a ser dados, respectivamente, por:

34

2. O Escalonamento de Tempo Real

W i ( q ) = ( q + 1) C i +

Wi ( q ) + J j

Cj
Pj

j h p (i)

[1 3 ]

[1 4 ]

R i = m a x ( J i + W i ( q ) q Pi ).
q = 0 , 1 , 2 ,...

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 RiDi. 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].
ta re fa s p e ri d ic a s

Ji

Ci

Pi

Di

ta r efa T 1

10

40

40

ta r efa T 2

10

80

25

ta r efa T 3

20

40

T a bela 2 .4 : T a r efa s com D ea d lin es A r 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 T3. Considerando uma atribuio de
prioridades onde p1> p2> p3. A tarefa T3 sofre interferncia das outras duas e pela
equao [13], obtemos:
W (q ) + 1
W 3 (q ) + 3
W 3 ( q ) = ( q + 1 ) .5 + 3
.1 0 +
.1 0
40
80

Para que se obtenha o tempo de resposta mximo R3 da tarefa T3 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: W3(q) (q+1).P3. Ento,
para q = 0 e usando a equao [13], obtido:
W 30 ( 0 ) = C 3 = 5
5 + 1
W 31 ( 0 ) = 5 +
.1 0 +
4 0
25 + 1
W 32 ( 0 ) = 5 +
.1 0
4 0

5 + 3
8 0 .1 0 = 2 5
25 + 3
+
.1 0 = 2 5
8 0

O valor do tempo de resposta R3(0) dado por [12] e corresponde a 25. Com W3(0)
superando o perodo P3 (P3 = 20) ento, essa janela no corresponde ao maior "busy

2.6 Tarefas Dependentes:Compartilhamento de Recursos

35

period" de prioridade 3. Assumindo ento q =1:


W 30 ( 1 ) = C 3 = 5
5 + 1
W 31 ( 1 ) = 1 0 +
.1 0 +
4 0
30 + 1
W 32 ( 1 ) = 1 0 +
.1 0
4 0

5 + 3
8 0 .1 0 = 3 0
30 + 3
.1 0 = 3 0
+
8 0

Com isto obtemos pela equao [12] R3(1) = W3(1) - P3 = 10. Como W3(1) < 2P3,
temos ento o mximo "3-busy period" envolvendo duas ativaes da tarefa T3. Logo o
tempo de resposta mximo da tarefa T3 o maior dos tempos de resposta obtidos, ou
seja, de valor 25, correspondendo a primeira ativao de T3 no maior "3-busy period".
A figura 2.8 mostra esse perodo ocupado de prioridade 3 onde T3 liberada em suas
duas ativaes em t = 0 e t = 20. Por sua vez, devido aos seus "releases jitters", as
tarefas T1 e T2 que chegam em 1 e 3, respectivamente, s so liberadas em t = 0. A
primeira ativao de T3 empurrada para fora de seu perodo interferindo com a
ativao seguinte da mesma tarefa.

tar efa T 1 -

tare fas peridic as

Ji

Ci

Pi

Di

tar efa T 2 -

tar efa T 1

10

40

40

tar efa T 2

10

80

25

tar efa T 3

20

40

tar efa T 3 -

T2

T1 T3

-3

-1 0

T3

10

d2

20

30

Fig u ra 2 .8 : M aio r P ero d o O cu p ad o d a T arefa T 3

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

36

2. O Escalonamento de Tempo Real

tarefas comunicantes.
p

> p

> p

> p

p e d id o d e e n tr a d a e m S C

T1

T2

T
e x e c u ta n d o e m S C

T4
F ig u r a 2 .9 : In v e rs o d e p rio rid a d e s

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 T1, T2, T3 e T4, apresentadas na ordem crescente
de seus perodos. Uma escala construda sobre o conjunto de tarefas baseada no
algoritmo "Rate Monotonic". T1 e T4 compartilham um recurso guardado por um
mecanismo de excluso mtua. Na escala da figura 2.9, o bloqueio que T1 sofre pelo
acesso anterior de T4 ao recurso compartilhado caracteriza um exemplo de inverso de
prioridade: mesmo liberada a tarefa T1 no consegue evoluir devido ao bloqueio. A
tarefa T1, durante o bloqueio, sofre tambm interferncias de T2 e de T3. Esse fato
ocorre porque T4 a tarefa menos prioritria do conjunto e sofre preempes dessas
tarefas intermedirias. As preempes de T2 e de T3 sobre a tarefa T4 podem
caracterizar um bloqueio de T1 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 Ti bloqueada em um semforo, sua prioridade dinmica ou
ativa transferida para a tarefa Tj que mantm o recurso bloqueado. Quando reassume,
Tj executa o resto de sua seo crtica com a prioridade herdada de Ti (pj = pi). Uma
tarefa herdada, ao se executar, sempre a mais alta das prioridades das tarefas que
mantenha sob bloqueio. No momento em que Tj 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 T4 no mais sofrer de interferncias intermedirias (preempes de T2 e
T3) porque herda a prioridade de T1 em t=5 (figura 2.10). E, ao sair da sua seo crtica
(em t=7, figura 2.10), T4 volta ao nvel de sua prioridade original.

38

2. O Escalonamento de Tempo Real

> p

> p

> p

b lo q u e io d ir e to p o r T

T
e x e c u ta n d o e m

S C

T 2

T 3
b lo q u e io p o r h e r a n a
d e T 2 e T 3 p o r T 4

T 4
0

1 0

1 1

F ig u ra 2 .1 0 : E x e m p lo d o u s o d o P H P

Uma tarefa mais prioritria quando executando sob o PHP pode sofrer dois tipos de
bloqueios [But97]:

Bloqueio direto: que ocorre quando a tarefa mais prioritria tenta acessar o recurso
compartilhado j bloqueado pela tarefa menos prioritria.

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 T2 e T3 sofrem bloqueios por herana em t =6


(T2 e T3 chegam em t = 6), e T1 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 Ti pode ser bloqueada por n tarefas
menos prioritrias, isto significa que, em uma ativao, Ti 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 Ti,
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 Ti 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 (T1, T2, T3 e T4) onde T2 e
T3 possuem sees aninhadas. T1 mostrada bloqueada por T2; por sua vez, a tarefa T2
bloqueada por T3 e, por fim, T3 bloqueada por T4. Nessa cadeia de bloqueios, a
tarefa T1 sofre um bloqueio indireto ou transitivo de T4. A tarefa T1 s retoma o seu
processamento quando houver a liberao, na seqncia, das sees crticas de T4, T3 e
T2, 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

P rio rid a d e s : p 1 > p

> p

> p

39

b lo q u e io tr a n s itiv o :
T 4 h e rd a a p rio rid a d e d e T 1

S e e s C rtic a s :

T1
E x e c u ta n d o e m

SC

T3
T4
0

10

11

F ig u ra 2 .1 1 : B lo q u e io tra n s itiv o

Extenses de Testes de Escalonabilidade Tomando como Base o PHP

Uma determinao precisa do valor de bloqueio mximo Bi que uma tarefa Ti pode
sofrer quando do uso do PHP certamente bem difcil, uma vez que, sees crticas de
tarefas menos prioritrias podem interferir com Ti atravs de diferentes tipos de
bloqueios. Dependendo da complexidade do modelo de tarefas, fica impraticvel a
determinao precisa de Bi. Alguns autores apresentam mtodos para estimativas desse
tempo de bloqueio ([BuW97], [But97] e [Raj91]). Um clculo mais preciso de Bi
envolve procuras exaustivas que considerando a complexidade do conjunto de tarefas
pode ser impraticvel.
O limite imposto pelo PHP no bloqueio mximo (Bi) que uma tarefa Ti pode sofrer
de tarefas menos prioritrias, tem que se refletir nas anlises de escalonabilidade de
esquemas baseados em prioridades fixas. Em [SRL90] e [SSL89] o teste do RM
(equao [2]) estendido no sentido de incorporar as relaes de excluso de um
conjunto de tarefas:
i C j Bi
1

+
i ( 2 i 1),
P
P
j =1 j
i

i.

[15 ]

O somatrio do teste acima considera a utilizao de tarefas com prioridade maior


ou igual a pi e o termo Bi /Pi corresponde utilizao perdida no bloqueio de Ti 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.

40

2. O Escalonamento de Tempo Real

ta r e f a s

Ci

Pi

Bi

T1

18

T2

20

T3

10

50

T a b e la 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:
C1
B1
+
1
P1
P1
C1
C2
B2
+
+
0 ,8 2
P1
P2
P2
C1
C2
C3
+
+
0 ,7 8
P1
P2
P3

Todas essas relaes acima se verificam para os valores de indicados na tabela 2.5;
o que indica que o conjunto escalonvel e todas as tarefas se executaro dentro de
seus "deadlines".
Uma outra variante desse teste onde a escalonabilidade pode ser verificada apenas
por uma equao s, tambm apresentado em [SRL90]:
n

i =1

B
1

Ci
B
+ m a x 1 , . . . . , n n . 2 n 1 .
Pi
P
P

1
n

[1 6 ]

O novo teste mais simples que o anterior porm mais restritivo e menos preciso.
Como exemplo, considere o uso do teste [16] na verificao da escalonabilidade do
mesmo conjunto de tarefas da tabela 2.5. A equao [16] aplicada s condies desse
mesmo conjunto implica em:
B B
1

C1
C
C
+ 2 + 3 + m a x 1 , 2 3 2 3 1
P1
P2
P3

P1 P2

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]) :


t
C j + Bi
j =1
j
U i (t ) =
,
t
i

i , min 0 < t Pi U i ( t ) 1.

[17 ]

O bloqueio Bi nessa equao tambm apresentado como utilizao perdida no


bloqueio de Ti por tarefas menos prioritrias. O teste baseado em tempo de resposta
para modelos envolvendo "deadlines" arbitrrios apresentado em [TBW94] tambm
facilmente estendido:
W i ( q ) = ( q + 1) C i + B i +

Wi ( q ) + J j

C j.
Pj
j h p (i)

[1 8 ]

O bloqueio Bi apresentado na equao [18] como uma interferncia sofrida por Ti.
Todos os testes apresentados com as extenses referentes ao limite mximo de bloqueio
definido sob o PHP, deixam de ser exatos e passam a ser condies suficientes. Isto
porque, o clculo de Bi conforme citado acima, no exato, refletindo um pessimismo
por vezes exagerado.

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 Tj tiver uma seo crtica executando em um
recurso compartilhado com Ti, ento nenhuma outra tarefa menos prioritria que Ti
conseguir entrar em seo crtica que possa tambm bloquear Ti. 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

42

2. O Escalonamento de Tempo Real

herana de prioridades transitiva, ou seja, se uma tarefa menos prioritria T3 bloqueia


uma tarefa T2 de prioridade mdia e, por sua vez, T2 bloqueia uma tarefa mais
prioritria T1, ento T3 herda a prioridade de T1.
Todos os recursos acessados em excluso mtua possuem um valor de prioridade
teto (ceiling C(Sk)) 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 Sl for o
semforo com maior prioridade teto entre todos os semforos bloqueados, ento uma
tarefa Ti s entrar em sua seo crtica se sua prioridade dinmica pi for maior que o
"ceiling" C(Sl). Se pi C(Sl) o acesso negado a Ti.
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 T1, T2 e T3 cujas evolues so
apresentadas na figura 2.12, acessam em excluso mtua os recursos R1, R2 e R3. A
prioridade teto de cada semforo definido segundo o compartilhamento dos recursos
indicado na figura: C(S1)=1, C(S2)=1 e C(S3)=2. Os eventos na evoluo das tarefas,
sinalizados na figura, so tambm descritos na prpria figura 2.12. Nesse exemplo, a
tarefa T1, 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 T1 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 : p1 > p2 > p 3 (com p1= 1, p 2 = 2 e p 3 = 3)


Semforos : S1 -

S2 -

S3 -

T1

T3
1

Eventos

10

11 12

13

14 15

16

17

Descrio

T 3 comea sua execuo

T 3 entra em seo crtica (fecha o Semforo S 3 )

T 2 inicia seu processamento interrompendo T 3 (preempo de T 3).

T 2 sofre bloqueio direto: S 3 fechado por T 3 que reassume e herda prioridade de T 2.

T 3 entra na seo crtica aninhada ao fechar semforo S 2

T 1 inicia e interrompe T 3 . T 1 mais prioritria que T 3 com a prioridade herdada de T 2.

T 1 tenta fechar semforo S 1, bloqueado por ceiling; possui prioridade igual ao maior
ceiling de semforo j fechado pelas outras tarefas (C(S2 )=1).

T 3 libera semforo S 2 . T 1 reativado e interrompe T 3. T 1 entra em S1 .

T 1 libera S 1 .

10

T 1 fecha Semforo S2 .

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. T2 interrompe T 3 e fecha S3 .

14,15,16,17

T 2 libera S 3 ; fecha e libera S 1 ; e completa. T 3 reassume e completa.

Figura 2.12: Exemplo de uso do PCP

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 Bi que
pode experimentar uma tarefa Ti. No PCP esse valor limite corresponde a durao da
maior seo crtica de tarefas menos prioritrias que podem bloquear Ti. Logo, nas
equaes [16], [17] e [18], quando se considera o uso do PCP, Bi assume sempre o

44

2. O Escalonamento de Tempo Real

valor da maior seo crtica que bloqueia Ti.


Uma seo crtica pertencente a uma tarefa Tj, guardada pelo semforo Sk e de
durao Dj,k pode bloquear por "ceiling" uma tarefa mais prioritria Ti se e somente se
[SRL90]: pi > pj e C(Sk) pi. O mximo bloqueio Bi que Ti pode sofrer dado pela
durao da maior seo crtica que pode bloquear por "ceiling" essa tarefa ([AuB90],
[But97]):

B i = m a x D j ,k
j ,k

(p

< p i (C ( S k ) p i ) .

ta r e f a s

S1

S2

S3

ta r e f a T 1

ta r e f a T 2

ta r e f a T 3

T a b e la 2 .6

Para ilustrar o clculo de Bi sob o uso do PCP, considere a tabela 2.6 que descreve
as duraes de sees crticas (Dj,k) a partir de condies do problema apresentado na
figura 2.12. De acordo com a equao acima os bloqueios mximos por tarefas so
dados por:

B 1 = max (1,4) = 4
B 2 = max (8)= 8
B3 = 0

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

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 Ai corresponde a uma
seqncia infinita de ativaes ocorrendo em intervalos regulares de tempo Pi (perodo
da atividade). Uma atividade Ai caracterizada por um "deadline" Di: 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 T1
e uma segunda, formada pelas tarefas T2, T3 e T4. As relaes de precedncia nesta

46

2. O Escalonamento de Tempo Real

segunda atividade implicam na ordem T2 T3 T4 2.

tarefas

T2
T4

T1

J i Ci

Pi

Di

T1

10 40 40

T2

10 80 25

T3

T4

10 80 80

80 40

T3

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 Ti mais prioritria que Tj 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 :
Wi + J j
Wi = C i +
e
R i = Wi + J i ,
Cj
Pj
j h p (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 Ri Di.


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 T2 embora mais prioritria, no interfere com T3 e T4 porque ambas so liberadas
aps a sua concluso; a influncia de T2 sobre estas duas tarefas se d s na forma de
"jitter".
No caso da figura 2.13, T1 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: R1 = C1+J1= 11. A tarefa T2 sofre interferncia s da tarefa T1 e
o seu tempo de resposta mximo calculado facilmente a partir das equaes [9] e [10]:
W 20 = C 2 = 1 0

10 + 1
W 21 = 1 0 +
10 = 20
4 0
20 + 1
W 22 = 1 0 +
10 = 20
4 0

Com W2 =20 e tomando J2=3, o valor do tempo de resposta dado por R2 = 23. A
tarefa T3, por sua vez, sofre interferncias de T1 e um "jitter" porque sua liberao
depende da concluso de T2 (J3 = R2):
W 30 = C 3 = 5
5 + 1
10 = 15
W 31 = 5 +
4 0
15 + 1
W 32 = 5 +
10 = 15
4 0

O tempo de resposta de T3 dado por: R3 = W3+J3 = 38. A tarefa T4, por sua vez,
sofre interferncias de T1 e T3 e um "jitter" de T2 (J4 = R2):
W 40 = C 4 = 10
10 + 23
10 + 1
5 = 25
10 +
W 41 = 1 0 +
8 0
4 0

48

2. O Escalonamento de Tempo Real

25 + 1
25 + 23
W 42 = 1 0 +
10 +

5 = 2 5
4
0

80

A tarefa T4 tem o seu pior tempo de resposta portanto em 48 (R4=W4+J4). 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"

50

2. O Escalonamento de Tempo Real

(BS) apresenta tempos de resposta muito altos para cargas aperidicas. Se a carga
envolvendo as tarefas peridicas alta, ento a utilizao deixada para o servio de
"Background" baixa ou no freqente.

ta r e f a
ta r e f a
ta r e f a
ta r e f a

ta r e f a s
p e r i d ic a A
p e r i d ic a B
a p e r i d ic a C
a p e r io d ic a D

Ci
4
8
1
1

Pi
10
20
-

Di
10
20
-

ta r e f a A -

pi
1
2
3
3

ta r e f a B ta r e f a C ta r e f a D -

A ,B

10

12

A ,B

14

16

18

20

22

24

F ig u r a 2 .1 4 : S e r v id o r a d e B a c k g r o u n d

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

tarefa
tarefa
tarefa
tarefa
tarefa

tarefas
peridica A
peridica B
servidora PS
aperidica C
aperiodica D

Ci
4
8
1
1
0,5

Pi
10
20
5
-

Di
10
20
-

51

pi
3
2
1
-

tarefa A tarefa B tarefa C tarefa D -

A ,B

10

12

A ,B

14

16

18

20

22

24

C PS
1

10

15

16

20

F igura 2.15: A lgortm o P olling Server

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 :
n

i =1

ou seja

Ci
C
+ P S (n + 1) 2
Pi
PP S

U P ( n + 1) 2

( n + 1)

( n + 1)

1 ,

1 + U S .

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

52

2. O Escalonamento de Tempo Real

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

Ci

Pi

Di

pi

t a r e fa p e r i d i c a A

ta re fa s

10

10

t a r e fa p e r i d i c a B

20

20

t a r e fa s e r v i d o r a P S

t a r e fa a p e r i d i c a C

t a r e fa a p e r i o d i c a D

0 ,5

A ,B

t a r e fa A t a r e fa B t a r e fa C t a r e fa D -

10

12

A ,B

14

16

18

20

22

24

C DS

10

12

15

20

F ig u r a 2 .1 6 : A lg o r t m o D e fe r r a b le S e r v e r

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 CDS=1 e de perodo PDS = 5. Na ativao da servidora em
t=0 no existe carga aperidica e a sua capacidade preservada durante todo o perodo
PDS. 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 CDS 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 (CDS=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 +2
U P ln DS
. [19]
2U DS + 1
A equao [19] vlida somente para um muito grande nmero de tarefas
peridicas no sistema.

Servidor 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 CPE (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

54

2. O Escalonamento de Tempo Real

necessrio que se introduza alguns termos:

ps : corresponde ao nvel de prioridade em execuo no processador;

pi : um dos nveis de prioridades do sistema.

Intervalo Ativo : uma prioridade pi dita em um intervalo ativo quando


pi ps.

Intervalo de Prioridade Desativada: uma prioridade pi dita desativada


quando pi > ps.

Tempo de Preenchimento RTi : define o instante de tempo em que se d a


restaurao da capacidade consumida durante o intervalo em que a
prioridade pi 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 (RTi) que determinado adicionando o valor do
perodo da servidora ao tempo de incio do intervalo onde pi 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 ps em execuo (ps = 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 (RTi), referente ao
consumo de capacidade por parte da requisio C, programado considerando o
intervalo ativo correspondente (pSS ps) 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
(RTi=ta+PSS). A preempo de C pela tarefa A em t = 5 no define dois intervalos
ativos da servidora para as duas partes de C da figura 2.17. Na verdade, um mesmo
intervalo ativo se mantm durante as execues de C e A porque, entre os tempos t=4,5
e t = 6,5, a condio pSS ps se mantm como vlida.

tarefa A tarefa
tarefa
tarefa
tarefa
tarefa

tarefa B tarefa C tarefa D A

Ci
1
6
2 ,5
1
1

Pi
5
14
10
-

Di
5
14
-

pi
1
3
2
-

ta refa s
p e ri d ic a A
p e ri d ic a B
serv id o ra S S
ap eri d ica C
ap erio d ica D

10

12

14

16

18

20

10

12

14

16

18

20

22

24

C SS
3
2
1
5

F ig u ra 2 .1 7 : A lg o rtm o S p o rad ic S erv er

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 (RTi) 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 PSS e tempo de computao CSS.
A limitao que a servidora SS impe sobre uma carga peridica dada por :
U

2
ln
.
U SS + 1

[2 0 ]

56

2. O Escalonamento de Tempo Real

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.
ta r e f a s

ta r e f a 1

10

ta r e f a 2

14

4 2 ,9

se rv id o r D S

1 ,0 0

2 0 ,0

se rv id o r P E

1 ,3 3

2 6 ,7

se rv id o r S S

1 ,3 3

2 6 ,7

U i (% )
2 0 ,0

T a b e la 2 .7 : U tiliz a o d o s s e r v id o re s D S , P E e S S

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 (mini). 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 PSS, por sua vez, deve ser no mximo igual
ao intervalo mnimo entre ativaes da tarefa espordica (mini). 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 (Di) iguais ou menores que os seus respectivos intervalos
mnimos entre ativaes (mini). 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 Di < mini 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 (DSS=10) apresenta o maior perodo (PSS=32) e
portanto a menor prioridade segundo o RM.

2.8 Escalonamento de Tarefas Aperidicas

ta re fa s

57

Ci

Pi

Di

M in i

pi

t a r e fa p e r i d i c a A

12

12

t a r e fa p e r i d i c a B

20

20

t a r e fa s e r v i d o r a S S

32

10

t a r e fa a p e r i d i c a C

10

32

A ,B ,C

t a r e fa A t a r e fa B t a r e fa C -

dC

10

12

14

16

18

20

22

24

F ig u r a 2 . 1 8 : S e r v id o r S S e R M u s a d o s e m c a r g a a p e r i d ic a c o m D i = M i n i

Nos casos de tarefas espordicas com Di<mini, so necessrias polticas que sejam
dirigidas por "deadlines", permitindo ento a atribuio do mais alto nvel de prioridade
servidora SS associada. A poltica de atribuio esttica "Deadline Monotonic" a
mais apropriada nestes casos. Na figura 2.19 uma escala mostrada com o mesmo
conjunto de tarefas sujeito a uma atribuio DM de prioridades e onde todos os
"deadlines" so respeitados. A tarefa C se executa em t=0 (a servidora SS a tarefa
mais prioritria) e, o preenchimento da capacidade consumida correspondente ocorre
em t=32, portanto, antes de esgotado o intervalo mnimo entre ativaes de C (minC).

ta r efa A -

ta re fa s

ta r efa B ta r efa C -

A ,B ,C

Ci

Pi

Di

M in i

pi

ta r efa p er i d ica A

12

12

ta r efa p er i d ica B

20

20

ta r efa ser v id o r a S S

32

10

ta r efa a p er id ica C

10

32

dC

12

16

20

24

28

32

12

16

20

24

28

32

CSS
8

F ig u ra 2 .1 9 : S e rvid o r S S e D M u sad o s e m c arg a a p e ri d ic a co m D i < M in i

58

2. O Escalonamento de Tempo Real

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

Potrebbero piacerti anche