Você está na página 1de 19

Algoritmos de Escalonamento de Tarefas 1/19

INTRODUO
Um sistema de tempo real definido como um sistema em que a preciso e a
correco finais dependem no s do resultado computacional, mas tambm do tempo
consumido para produzir esses resultados.
Hoje em dia encontramo-nos rodeados de sistemas de tempo real, desde simples
sistemas de controlo de uma linha de montagem at ao controlo dos sistemas de voo dos
avies e futuramente no controlo das estaes espaciais.
A maior parte dos sistemas baseiam-se em informao conhecida priori
sistemas estticos o que leva a elevados custos de produo e manuteno. A prxima
gerao de sistemas de tempo real para situaes crticas (hard real time) sero
desenvolvidas de forma a serem dinmicas, previsveis e flexveis.
Quando temos que levar em linha de conta o tempo, como o caso dos sistemas
de tempo real, um dos principais problemas que se nos depara consiste em arrumar o
conjunto de tarefas que compe o sistema dentro de um determinado perodo de tempo.
O escalonamento de tarefas envolve a distribuio de recursos e tempo pelas
tarefas de forma a serem atingidos certos patamares de performances. Este talvez o
assunto mais estudado no mbito dos sistemas de tempo real e tambm aquele que se
apresenta com mais possibilidades de aprofundamento visto que um tema em
constante desenvolvimento.
A forma de medir a performance de um sistema de escalonamento depende do
propsito do sistema de tempo real. Isto faz com que haja um sem nmero de formas de
avaliar essas performances j que em cada situao temos que dar mais nfase a um
determinado aspecto do sistema. Enquanto num algoritmo esttico prevalece a
necessidade de diminuir o tamanho da tabela (horrio), num sistema dinmico temos
que dar mais importncia minimizao do tempo de resposta.
Esta variedade de mtricas que existem torna mais difcil a comparao de
algoritmos de escalonamento. Outro aspecto que torna esta comparao menos clara,
so as caractersticas das tarefas que cada sistema executa. As tarefas podem ser
associadas a tempos de computao, utilizao de recursos, prioridades, precedncias e,
como no podia deixar de ser, tempo. Se uma tarefa for peridica a sua frequncia
importante, se for espordica ento d-se importncia ao tempo limite de execuo
(deadline).
Do que vimos at agora podemos concluir que uma das principais caractersticas
de um sistema de tempo real a previsibilidade. A anlise do escalonamento tem que
Algoritmos de Escalonamento de Tarefas 2/19

ser feita de modo a prever se o conjunto de tarefas a escalonar vai ou no cumprir o
tempo limite de execuo. Aparecem assim vrios paradigmas do escalonamento que
dependem de :
Se um sistema faz ou no a anlise do escalonamento.
Em caso afirmativo, este esttico ou dinmico?
O resultado da anlise produz uma tabela na qual so indicadas todas as
tarefas a executar?

Baseado-nos nestes pontos podemos identificar os seguintes tipos de algoritmos :
Algoritmos estticos geridos por uma tabela Estes algoritmos so
estticos ou seja, no h alteraes ao longo da execuo, e as tarefas a
executar esto indicadas numa tabela que o algoritmo consulta
constantemente.
Algoritmos estticos preemptivos aqui a diferena para o anterior reside na
inexistncia de qualquer tabela. Durante a execuo as tarefas so executadas
comeando pela de maior prioridade.
Algoritmos dinmicos planeados ao contrrio dos anteriores aqui o
algoritmo no executa todas as tarefas que chegam ao processador, executa
apenas aqueles que possvel concluir dentro do prazo.
Algoritmos dinmicos de melhor esforo nestes algoritmos no se
analisa a executabilidade da tarefa, o sistema tenta apenas cumprir todos os
deadlines, pode por isso acontecer que uma tarefa seja abortada durante a
execuo.









Algoritmos de Escalonamento de Tarefas 3/19

STATIC CYCLIC SCHEDULING
(Escalonamento Esttico Cclico - EEC)

Esta talvez a mais antiga forma de escalonamento. um tipo de escalonamento
off-line, que s suporta tarefas peridicas.
O padro de execuo das tarefas armazenado num calendrio, aps ter sido
determinado por um algoritmo configurador. Durante a execuo o programa de
escalonamento segue risca a informao contida no calendrio.
A primeira questo a surgir prende-se com o tamanho da tabela e a quantidade de
memria que ela ir ocupar, pois com o crescente nmero de vezes que as tarefas se
executariam, ela tornar-se-ia gigantesca. Na realidade no isto que se verifica. O que
acontece que o programa percorre toda a tabela e quando atinge o seu fim regressa ao
incio do calendrio dando assim origem ao nome de escalonamento cclico. O perodo
de repetio dado pelo mnimo mltiplo comum (m.m.c.) entre os perodos de cada
uma das tarefas ( T= mmc (t
i
) ). Vai-se apresentar de seguida um cronograma que
demonstra do escalonamento de cinco tarefas utilizando este tipo de algoritmo :

Tarefa T C
A 25 10
B 25 8
C 50 5
D 50 4
E 100 2





Legenda :
T : Perodo
C : Tempo de computao
Algoritmos de Escalonamento de Tarefas 4/19

Uma vez que o algoritmo de execuo to simples, a anlise do cumprimento
dos deadlines tambm efectuada de uma forma simples. apenas necessrio percorrer o
calendrio para verificar que os requisitos temporais de cada tarefa so obedecidos. O
mago da questo prende-se ento com o algoritmo de escalonamento off-line utilizado
para gerar a tabela.
Podemos encontrar vrios algoritmos que efectuam essa operao, mas antes de
entrarmos nesse assunto temos de encontrar um modelo que represente este sistema de
escalonamento.
No necessrio criar restries ao modelo, estas surgem das limitaes do
algoritmo e devidas ao escalonamento esttico.
Uma vez que a execuo das tarefas pr-planeada s podemos permitir tarefas
peridicas, pois as espordicas seriam de difcil tratamento e ocupariam mais tempo do
aquele necessrio para a sua execuo - o seu tratamento seria feito atravs de polling, o
que faria aumentar o tempo de execuo (polling+execuo ).
Outra limitao diz respeito ao tamanho da tabela. Esta no pode ocupar muito
espao de memria uma vez que esta um recurso muito limitado. A tabela deve ser
percorrida no mais pequeno perodo de tempo possvel de forma que o regresso seu ao
incio seja feito sem introduzir estagnaes na execuo.
Como vimos anteriormente o perodo mnimo de execuo das tarefas -nos dado
atravs do conceito de mnimo mltiplo comum do perodo das tarefas em questo. Esta
abordagem pode levar obteno de perodos de execuo muito superiores ao
necessrio e consequentemente a um calendrio maior. A forma normalmente utilizada
para resolver esta situao consiste em alterar o valor dos perodos das tarefas
normalmente diminu-los de forma a torn-los mltiplos simples uns dos outros,
tornando assim a tabela mais pequena. Em contrapartida este processo provoca o
aumento da utilizao do processador e torna os perodos de execuo das tarefas mais
pequenos que o necessrio.
O algoritmo construtor da tabela avaliado pela sua performance. Um modelo
simples (tarefas peridicas e independentes) pode ser facilmente resolvido atravs deste
tipo de escalonamento, mas podemos criar um modelo mais complexo introduzindo o
conceito de partilha de dados por duas tarefas. Neste caso o algoritmo tem que garantir a
execuo de uma tarefa, que esteja a aceder a esses dados, no permitindo a sua
interrupo.
Algoritmos de Escalonamento de Tarefas 5/19

ESCALONAMENTO DE PRIORIDADES FIXAS.

- Escalonamento RATE MONOTONI C.

Este tipo de escalonamento comeou a ser desenvolvido no incio da dcada de
70, principalmente a partir do aparecimento de um artigo da autoria de C. L. Liu e J. W.
Layland.
No escalonamento de prioridade fixa o controlador do processo tem que garantir
que a tarefa de prioridade mais alta que est a ser executada em qualquer altura.
Basicamente o funcionamento pode descrever-se da seguinte forma :














A anlise de um algoritmo de escalonamento requer um modelo onde se
consideram os aspectos mais relevantes para o comportamento do sistema. No estudo
deste algoritmo vamos considerar os seguintes aspectos para efectuar a pretendida
modelizao :
- Todas as tarefas so peridicas.
- Os perodos so iguais aos tempos limite (deadlines).
- As tarefas no podem autobloquear-se ou auto-suspender-se.

Outra considerao que devemos efectuar consiste no modo como as prioridades so
determinadas. Neste caso quanto menor for o perodo da tarefa maior ser a sua
prioridade, ou seja estas so determinadas de acordo com o perodo (RATE
MONOTONIC).
Outros aspectos levados em considerao no desenvolvimento deste tipo de
escalonamento, embora desnecessrios, foram a assumpo que as tarefas tinham que
Se tivermos uma tarefa de baixa prioridade a ser executada, no
momento em que chaga uma tarefa de prioridade mais alta a execuo
da primeira interrompida para dar lugar exe cuo da outra
(preempo). Se durante a execuo desta tarefa por pedida a
execuo de outra de prioridade intermdia o processador continua a
executar a tarefa de prioridade mais elevada e s depois de a terminar
que vai iniciar a execuo da tarefa de prioridade intermdia.
A tarefa de prioridade reduzida ser executada no fim e s apenas
se no aparecer no nenhuma de prioridade mais elevada.
Algoritmos de Escalonamento de Tarefas 6/19

ser peridicas e que os tempos de execuo das tarefas deveriam ser constantes.
Resumindo, este algoritmo efectua um escalonamento preemptivo e de prioridades
fixas.
Como podemos verificar se um conjunto de tarefas escalonvel ?
Uma possibilidade de verificar a escalonabilidade de um conjunto de tarefas pode
ser atravs da utilizao do seguinte teste :

( ) 1 2
1
1

,
_

n
n
T
C
n
i i
i


Mas a anlise efectuada atravs desta expresso no exacta. A situao da
desigualdade no se verificar no significa que as tarefas no sejam escalonveis.
Vai-se apresentar de seguida um exemplo demonstrativo da falibilidade deste
mtodo :
Considere-se o seguinte conjunto de tarefas :

TAREFA T D C PRI ORI DADE
A 52 52 12 BAIXA
B 40 40 10 MDIA
C 30 30 10 ALTA


Atravs do clculo do somatrio indicado na expresso obtemos uma taxa de
utilizao (U) de 81.41%. Calculando o segundo membro da inequao chegamos ao
valor 77.98%. conclu-se ento que, segundo este teste, as tarefas no so escalonveis
podendo verificar-se falhas no cumprimento dos deadlines. No entanto estas tarefas so
escalonveis, pois se todas as tarefas cumprirem os prazos na situao mais difcil
(invocao simultnea de todas as tarefas) ento os deadlines sero cumpridos. esta
situao que se apresenta de seguida :
n n. de tarefas a
escalonar
Algoritmos de Escalonamento de Tarefas 7/19


Como se verifica conseguiu-se efectuar o escalonamento de todas as tarefas
todas cumprem os deadlines apesar do teste de escalonamento indicar o contrrio.


- Anlise Exacta.

Em 1986 dois investigadores Mathai Joseph e Paritosh Pandya
desenvolveram um modelo de anlise exacta do algoritmo de escalonamento que foi
referido previamente.
Neste modelo foi introduzido o conceito de tempo de resposta de uma tarefa na
pior situao, ou seja o tempo necessrio para levar a cabo uma tarefa na pior das
hipteses.
Uma vez calculado este tempo o teste para verificar a possibilidade de escalonar
um determinado conjunto de tarefas simples. apenas necessrio que o tempo de
resposta do pior caso seja inferior ao tempo limite ( deadline ).
Com isto podemos eliminar duas restries do escalonamento atravs de
prioridades fixas que eram a necessidade dos perodos das tarefas serem iguais aos
tempos limite e a incapacidade de lidar com tarefas espordicas ( no-peridicas ). A
primeira verifica-se porque, como sabido, podemos comparar o tempo de resposta na
pior situao com outro valor e verificar se o primeiro suficientemente pequeno de
maneira a ser possvel escalonar as tarefas. Quanto s tarefas espordicas este modelo
lida com elas com relativa facilidade. Como j vimos anteriormente uma tarefa
Invocao
Fim de execuo
Preempo
Algoritmos de Escalonamento de Tarefas 8/19

espordica aquela que provocada por um acontecimento atpico ao processo. No
algoritmo apresentado inicialmente a uma tarefa deste gnero seria atribudo um
deadline elevado ou um perodo muito pequeno o que resultaria, aquando da anlise das
tarefas, numa impossibilidade de efectuar o seu correcto escalonamento, o que na
realidade no era verdade, j que este podia ser realizado.
Vai-se de seguida analisar a expresso que caracteriza este modelo :

j
i hp j j
i
i i
C
T
R
C R

1
1
1
1

+
) (



Esta expresso lana logo partida a dvida da sua resoluo, uma vez que a
incgnita ( R
i
) aparece em ambos os membros da equao.
A resoluo deste problema passa pela criao de uma relao recursiva, onde
uma iterao serve para calcular valores de R
i
que respondam equao. O valor que
interessa o mais pequeno.
Podemos ento transformar a equao de forma a obtermos o seguinte :


+
1
1
1
1

+
) (
1
i hp j
j
j
n
i
i
n
i
C
T
R
C R

O termo R
i
n+1
a (n+1)-sima aproximao ao pior tempo de resposta R
i
.
Podemos ver facilmente que as aproximaes vo sendo cada vez maiores at que o
resultado da iterao se torne convergente ou exceda algum limite. As iteraes so
iniciadas com qualquer valor menor ou igual que R
i
, por exemplo R
i
o
=0
2
.
Atravs desta anlise o valor de R
i
s vlido se for menor ou igual ao perodo
dessa tarefa, isto porque se o tempo de resposta for maior que o perodo ento uma
tarefa i poderia ser atrasada devido a uma invocao prvia de si mesma. Quer isto
tambm dizer que em cada tarefa o tempo limite tem que ser menor ou igual ao perodo.
Vamos agora aplicar esta anlise ao conjunto de tarefas que j tnhamos referido
anteriormente :


hp(i) o conjunto de
tarefas de prioridade
superior de i.

1
x a funo tecto
que nos d o inteiro mais
pequeno maior ou igual
a x.
Algoritmos de Escalonamento de Tarefas 9/19

TAREFA T D C
A 52 52 12
B 40 40 10
C 30 30 10

Primeiro que tudo temos que definir as prioridades que vamos atribuir s tarefas.
Uma vez que estamos a caracterizar o mtodo rate monotonic vamos utiliz-lo para esse
efeito. Desta forma a tarefa de maior prioridade ser a C, seguida da B e finalmente a
tarefa A.
Vamos calcular R
A
primeiro. O conjunto de tarefas de prioridade superior a A e
formado por B e C. Assim as aproximaes sero dadas por :

52
52
42 42
42
32 32
32
12 12
12
5
4
3
2
0 0
1

1
1
1

+
1
1
1

1
1
1

+
1
1
1

1
1
1

+
1
1
1

+

1
1
1

+
1
1
1

+
A
C
C
B
B
A A
C
C
B
B
A A
C
C
B
B
A A
A C
C
A
B
B
A
A A
R
C
T
C
T
C R
C
T
C
T
C R
C
T
C
T
C R
C C
T
R
C
T
R
C R

como se pode verificar a partir da quinta aproximao os resultados comeam a
convergir, por isso R
A
=52.
Seguindo o mesmo processo obtemos R
B
=20 e R
C
=10.
Ento podemos acrescentar tabela inicial uma coluna com os piores tempos de
resposta de cada tarefa :
TAREFA T D C R
A 52 52 12 52
B 40 40 10 20
C 30 30 10 10



Algoritmos de Escalonamento de Tarefas 10/19

Como se pode ver na tabela anterior este conjunto de tarefas escalonvel, o que
vem contradizer o mtodo inicial (Liu e Layland).

Este tipo de aproximao serve perfeitamente, por enquanto, os nossos propsitos.
-nos possvel alcanar os trs objectivos a que nos propomos sempre que desejamos
efectuar um escalonamento de um dado conjunto de tarefas (configurao, anlise e
execuo). A configurao consiste em determinar as prioridades das tarefas (neste caso
menor perodo => maior prioridade). At agora vimos dois exemplos de anlise, o teste
proposto no estudo inicial de Liu e Layland e a anlise exacta que acabmos de expr.
Finalmente a execuo consiste em realizar a tarefa de maior prioridade que esteja em
fila de espera.


-Deadline Monotonic vs Rate Monotonic.

No modelo inicial rate monotonic verificmos que para ser escalonvel, todas as
tarefas de um sistema tinham de cumprir a seguinte condio :
O perodo de uma tarefa tinha de ser igual ao seu deadline.
Mas como vimos anteriormente, o clculo do pior tempo de resposta ( R )
permite-nos ter tempos diferentes para essas caractersticas.
Como se pode verificar facilmente, um algoritmo rate monotonic no o melhor
para uma situao em que temos D<=T. a uma tarefa urgente mas pouco frequente
continua a ser atribuda uma prioridade baixa uma vez que o perodo ( T ) elevado e
provavelmente no ir cumprir o seu deadline.
Aparece assim um outro algoritmo de ordenamento de tarefas , o deadline
monotonic, que tal como o prprio nome indica atribu a prioridade mais alta tarefa
com menor deadline. Este sistema o melhor para o caso em que D <= T.






Algoritmos de Escalonamento de Tarefas 11/19

- Partilha de recursos, bloqueamento de tarefas.

Uma das restries existentes no modelo inicial de escalonamento era que as
tarefas no podiam ser bloqueadas ou suspenderem-se a si prprias. Isto tornava a
partilha de recursos, principalmente dados, muito difcil.
Podemos recordar-nos do algoritmo de escalonamento esttico cclico, onde
vimos que tnhamos que limitar o acesso aos dados pelas tarefas. Chammos a isto o
problema da concorrncia.
Uma das formas de resolver esta situao consiste na criao de semforos. Os
semforos so um conceito introduzido por Edsgar Djikstra em 1960. Servem para
regular o acesso informao e aos recursos por parte das tarefas, impedindo o acesso
de uma tarefas a essa informao aps outra ter dado indicao que est a aceder
mesma.
Uma vez activado o semforo, a tarefa executada dentro de uma seco crtica.
A tarefa que chegou no fim s pode aceder aos dados ou recurso aps a primeira tarefa
ter desactivado o semforo.
O problema dos semforos reside aqui. que uma tarefa pode tentar aceder a uma
determinado recurso e este j ter sido bloqueado por outra tarefa de menor prioridade,
fazendo com que a tarefa mais prioritria fique retida enquanto o semforo no for
desactivado. Vamos apresentar um exemplo.
Consideremos o seguinte conjunto de tarefas :

TAREFA T D C
A 50 10 5
B 500 500 250
C 3000 3000 1000

Admita-se que as tarefas A e C partilham um conjunto de dados e que cada uma
requer um tempo de computao para aceder aos dados de 1ms. Um semforo s controla
o acesso informao partilhada.
Considere-se tambm que a tarefa C est a ser executada e activa o semforo s no
instante t. aps C ter activado o semforo a tarefa A iniciada, e como tem prioridade
mais alta comea a ser executada. Um pouco mais tarde - instante t+2 a tarefa B
invocada, mas como no tem a prioridade mais alta no executada.
Algoritmos de Escalonamento de Tarefas 12/19

No instante t+3 a tarefa A precisa de aceder aos dados que partilha com C e tenta
activa s, o que no consegue porque a tarefa C j o activou. Nesta altura A bloqueia
espera que o semforo seja desactivado.
Nesta situao a tarefa que tem mais prioridade a B, que necessita de 250ms
para ser executada, terminando de o ser no instante t+253, ento a tarefa C torna-se a de
maior prioridade e executada. No instante t+254 a tarefa C desbloqueia o semforo e a
tarefa A comea a ser executada, mas j sem cumprir o seu deadline.
O processo descrito acima pode ser ilustrado pela seguinte figura :


A tarefa que atrasa a execuo da A a B apesar de esta ter prioridade inferior.
Este efeito conhecido como INVERSO DE PRIORIDADES e verifica-se quando uma
tarefa de menor prioridade atrasa a execuo doutra de prioridade superior. As
consequncias poderiam ser mais nefastas, no caso de existirem mais tarefas entre A e C
que viriam atrasar ainda mais a tarefa de maior prioridade.
Pelo que vimos at agora os semforos apenas lanaram o caos no escalonamento
das tarefas. aqui que temos que introduzir um outro conceito que nos resolver o
problema, a HERANA DE PRIORIDADES.
notrio que quando A tenta aceder informao guardada por s, mas no
consegue visto este estar trancado por C, a execuo desta ltima torna-se urgente
pois contribu directamente para o atraso de A.
Por isso, porque no atribuir, momentaneamente, a prioridade de A a C por forma
a apressar a sua execuo. Vejamos o que acontece.
Algoritmos de Escalonamento de Tarefas 13/19

No instante t a tarefa C acede ao semforo s. Neste momento a tarefa A activada
e comea a ser executada. No instante t+2 B invocada, mas no executada pois no
a tarefa de maior prioridade. No instante t+3 a tarefa tenta trancar o semforo mas no
o consegue porque C j o fez, ento A bloqueada e C herda a sua prioridade, o que a
torna a tarefa de maior prioridade comeando assim a ser executada.
No instante t+4 ela termina de aceder aos dados e destranca s. Aqui a tarefa C
adquire a sua prioridade normal e A comea a ser executada acedendo aos dados
partilhados e fechando o semforo. A tarefa A termina a sua execuo no instante t+9
cumprindo o seu tempo limite.
O processo demonstrado na figura seguinte.


No entanto continua a verificar-se um problema que a possibilidade de acontecer
uma situao de deadlock, que o equivalente a tempos de resposta infinitos, para o
pior caso.
Podemos ilustrar o caso da seguinte forma, utilizando dois semforos (s
1
e s
2
).
No instante t a tarefa C bloqueia s
1
, seguidamente a tarefa A bloqueia s
2
e tenta
bloquear s
1
o que no consegue pois este fora bloqueado pela tarefa C. Aqui a tarefa A
suspensa e a C herda a prioridade de A recomeando a execuo.
Nesse instante a tarefa C tenta aceder a s
2
, mas no consegue pois este j foi
bloqueado por A. Neste caso atinge-se uma situao em que nenhuma tarefa pode ser
executada deadlock.
t+9
t+9
Algoritmos de Escalonamento de Tarefas 14/19

O problema pode ser resolvido atravs da utilizao de um algoritmo que no se
ressinta do problema da inverso de prioridades e do deadlock. Esse algoritmo o
PRIORITY CEILING que vamos apresentar de seguida.

- Protocolo Priority Ceiling.

Este protocolo relativamente recente (1987) e vem colocar algumas restries
forma de bloqueio e libertao dos semforos. A primeira refere-se impossibilidade de
uma tarefa ocupar um semforo entre invocaes, ou seja quando termina a execuo de
uma seco crtica tem que libertar todos os semforos. Quanto segunda restrio
refere-se forma de bloqueio e libertao dos semforos, que deve ser feita de forma
piramidal, ou seja considerando dois semforos se o bloqueio for feita da forma
s
1
s
2

a libertao deve ser feita na ordem inversa e nunca na mesma ordem do
bloqueio.
O protocolo define um determinado perodo limitado de tempo (de computao)
para a execuo da seco crtica em que uma tarefa i ocupa o semforo. Este assume,
tambm, que a tarefa i pode bloquear semforos de um determinado conjunto conhecido
inicialmente ( uses(i) conjunto de semforos de i).
Este protocolo baseia-se no conceito de tecto de prioridade, que a mxima
prioridade de entre as tarefas que usam um determinado recurso com um semforo
afecto. Por outras palavras podemos dizer que tecto de prioridade a prioridade da
tarefa de maior prioridade que usa um determinado semforo.
O protocolo consiste no seguinte, a prioridade dinmica de uma tarefa o maior
valor entre a sua prioridade e a das tarefas que ela bloqueia, assim uma tarefa s pode
utilizar um recurso se a sua prioridade dinmica for maior que o tecto de prioridade de
todos os recursos em uso por outras tarefas, ou seja uma tarefa i s pode bloquear um
semforo se a sua prioridade for superior s prioridades tecto de todos os semforos j
bloqueados. Se esta condio no se verificar ento a nossa tarefa inicial bloqueada no
semforo.
Se o semforo j est bloqueado, a tarefa i no o pode bloquear pois a sua
prioridade no pode ser maior que o tecto de prioridade do semforo. Quando a tarefa i
bloqueia o semforo a tarefa que o ocupa presentemente herda a prioridade da tarefa i.
Algoritmos de Escalonamento de Tarefas 15/19

Este protocolo tem prioridades interessantes, tais como a inexistncia de deadlock,
uma tarefa i s atrasada, no mximo, uma vez por uma tarefa de menor prioridade em
que este atraso funo do cumprimento da seco crtica.
- Protocolo de Herana I mediata.

O protocolo anterior talvez o mais difcil, tanto de entender como de aplicar. O
algoritmo escalonador tem que verificar constantemente qual a tarefa que est
bloqueada, em que semforo e quais foram as prioridades herdadas. Do mesmo modo o
algoritmo perde muito tempo a verificar se uma tarefa pode bloquear um semforo.
H um protocolo que se baseia no mesmo principio (pior tempo de resposta) que
o protocolo de HERANA IMEDIATA. Este protocolo tem o mesmo modus operandi
que o PRIORITY CEILING, mas tem um comportamento em tempo real diferente.
Basicamente o seu comportamento o seguinte :

Quando uma tarefa i pretende bloquear um semforo esta modifica de imediato a
sua prioridade para o maior valor entre a sua prioridade e a prioridade tecto do
semforo. Quando a tarefa desbloqueia o semforo o valor da sua prioridade regressa
ao valor inicial.

fcil de perceber porque que a tarefa i s atrasada, no mximo, por uma
tarefa de menor prioridade, tal como no protocolo anterior :
No pode haver duas tarefas de baixa prioridade que bloqueiem dois semforos
com tectos superiores ao da tarefa i, isto porque uma delas ter herdado, imediatamente,
a prioridade mais alta, e como tal a outra tarefa no pode ser executada e assim bloquear
outro semforo.
Verifica-se tambm que no h necessidade de bloquear e desbloquear o
semforo, pois este no pode estar bloqueado quando a tarefa i o tenta fazer, pois ento
haveria outra tarefa de prioridade superior de i a ser executada e e assim esta no o
poderia ser, no tentando ento bloquear o semforo.
Como a herana de prioridades imediata a tarefa i bloqueada, no mximo,
antes de comear a ser executada, isto porque se uma tarefa de prioridade mais baixa
retiver o controlo de um semforo que possa bloquear a tarefa i ento esta ter herdado
uma prioridade superior de i e quando esta for invocada no comea a ser executada
imediatamente esperando que a tarefa de prioridade mais baixa acabe de ser executada,
Algoritmos de Escalonamento de Tarefas 16/19

nesse momento no haver semforos que travem a progresso da tarefa i e esta pode
ser executada sem entraves, a no ser que seja desalojada por outra de maior prioridade.
Esta propriedade de herana imediata muito til quando necessrio
implementar um algoritmo escalonador.
Em vrios sistemas operativos a concorrncia controlada custa da actuao de
interrupes. Este protocolo funciona da mesma maneira, apenas foram substitudas as
interrupes por tarefas.

IMPLEMENTAO DE ESCALONADORES DE PRIORIDADE FIXA.

I ntroduo

Como vimos anteriormente, atravs das equaes desenvolvidas, no so
permitidas alteraes de comportamento pelo escalonador. Vimos, por exemplo, que
essas equaes no prevem custos de implementao do escalonamento.
Neste captulo descrevem-se duas maneiras de implementar um escalonamento de
prioridades fixas de forma a permitir alteraes de comportamento dessas
implementaes.

Escalonamento por acontecimentos

Neste tipo de implementao criam-se duas filas, uma, de execuo, ordenada
por prioridade das tarefas, a outra , de espera, que ordenada pelo tempo que uma
tarefa pretende demorar at ser libertada.
Quando uma tarefa executa uma instruo de espera, o algoritmo retira-a da fila
de execuo e coloca-a na fila de espera. Aps terminar o transporta da tarefa entre as
filas, o algoritmo actua uma interrupo da CPU que inicializa um temporizador, o qual
ir avisar o algoritmo quando for altura de executar a tarefa que se encontra cabea da
fila de espera.
Quando a interrupo do temporizador activada todas as tarefas com tempos de
libertao iguais ou menores que o tempo da interrupo so transferidos para a fila de
execuo.


Algoritmos de Escalonamento de Tarefas 17/19

O atraso do escalonador pode ser calculado tendo em conta que o factor de
bloqueamento para todas as tarefas inclui o tempo de processamento da instruo de
espera. Este perodo de processamento contabilizado no pior tempo de resposta da
execuo dessa instruo.
Temos tambm de considerar o tempo de processamento das interrupes de
temporizao. Como sabido uma interrupes ocorre ao mesmo tempo que uma terfa
pretende ser executada. Para cada tarefa real do sistema podemos criar uma tarefa
fictcia com uma prioridade muito elevada, o mesmo perodo da tarefa real e um tempo
de execuo igual ao pior tempo de computao do manipulador da interrupo.
H alguns problemas que devem ser ultrapassados neste tipo de escalonamento. O
hardware de temporizao deve ser sofisticado, pois a programao que o algoritmo lhe
vai impr implica o armazenamento de longos perodos de tempo. Nalguns
processadores o temporizador no capaz de executar, convenientemente, essa funo o
que vai aumentar a complexidade do algoritmo de escalonamento, pois quando se
verificar algum problema este deve ser detectado pelo algoritmo de maneira a que este
possa manter o controlo do tempo.
Outro problema verifica-se quando o algoritmo obriga o temporizador a provocar
a interrupo num intervalo de tempo muito pequeno o que leva a que o interrupo
possa ocorrer novamente antes que a tarefa seja libertada.
devido a esta complexidade que surge outro tipo de implementao que o
escalonamento por momentos.

Escalonamento por momentos

Esta uma forma mais simples de implementar um algoritmo de escalonamento
de prioridade fixa. Como anteriormente o escalonador pode ser invocado aquando de
uma instruo de espera e pode alterar a tarefa a executar se chegar uma de maior
prioridade do que aquela que est a computar. No entanto, ao contrrio da aproximao
anterior, o temporizador no programado para interromper a execuo num dado
momento. Em vez disso o temporizador programado para levantar uma interrupo a
intervalos regulares de tempo (momentos). Quando o escalonador invocado pelo
temporizador ele apenas interroga a fila de espera para verificar se existem tarefas que
possam ser executadas.
Algoritmos de Escalonamento de Tarefas 18/19

Isto vem acabar com os problemas de corrida e de perda de interrupes desde
que o escalonador no demore mais do que o perodo regular previamente definido.
No entanto a anlise efectuada na aproximao anterior j no vlida, pois temos
que ter em considerao a transferncia de tarefas pode ser atrasada at um (1) intervalo
de tempo, o que no se verificava na anlise anterior, tornando-a por isso, invlida.
Devemos tambm ter em conta o tempo de execuo do escalonador, o que pode
ser feito tendo em calculando o seu pior tempo de execuo e ento tratando-o como
uma tarefa de alta prioridade com perodo igual ao intervalo de tempo do temporizador.
Na pior das situaes o escalonador transfere todas as tarefas da fila de espera
para a de execuo, mas esta situao ocorre muito raramente e por isso no
considerada nesta aproximao.
O melhor procedimento ser criar um conjunto de tarefas fictcias de maneira a
modelizar os custos de manipulao das filas e criar uma tarefa peridica simples para
modelizar os custos de temporizao.

Comparao dos dois modelos

Podemos comparar os dois modelos e analisar quais so as suas vantagens e
desvantagens.
A maior vantagem da segunda aproximao a sua simplicidade, tanto de
elaborar como de perceber. Da mesma forma tambm no requer grandes
potencialidades em termos de hardware. Por ltimo nesta implementao no h
condies para se verificarem corridas entre as interrupes.
O escalonamento por acontecimentos de uma forma geral mais eficiente que o
escalonamento por momentos e tem como maior desvantagem a sua complexidade.








Algoritmos de Escalonamento de Tarefas 19/19

CONCLUSES

Neste trabalho tentmos elaborar um apanhado relacionado com escalonamento de
tarefas e os seus algoritmos.
Incidimos mais fortemente ao nvel dos algoritmos para situaes de sistemas
mono-processador e com prioridades fixas, embora alguns deles, devido sua evoluo,
j no seja muito correcto consider-los de prioridade fixa como vimos para o fim.
Este um captulo dos Sistemas de Tempo Real em que, por mais restrito que seja
o assunto, nunca possvel abrang-lo na sua totalidade, por isso, e como somos meros
alunos, natural que se verifiquem algumas falhas.


BIBLIOGRAFIA

Planeamento de Tarefas Paulo Moiss, 1999.

Real Time Systems by Fixed Priority Scheduling K. Tindell e H. Hansson,
1997

Planificacin Dinmica de Tareas Alejandro Alonso, 1996

Você também pode gostar