UNIVERSIDADE
FEDERAL
DE SANTA
CATARINA
PROGRAMA
DE Pós-GRADUACÃQ
EM
ENGENHARIA
,ELÉTRICA
PROJETO
'E
IMPLEMENTAÇAO
DE
UM
NUCLEO
DE
TEMPO-REAL
SEGUNDO
A
ABORDAGEM
SINCRON
A
DISSERTAÇÃO
SUBIVIETIDA
UNIVERSIDADE
FEDERAL DE SANTA
CATARINA
PARA A
OBTENÇAO
DO
GRAU
DE MESTRE
EM
ENGENHARIA
ELETRICA
-Alberto Daniel Ferrari
*if
UFSC
5PROJETO
E
EWPLEMENTAÇÃO
DE
UM
NÚCLEO DE TEMPO-REAL
SEGUNDO A
ABORDAGEM
SINCRONA
Alberto Daniel Ferrari
Esta dissertação foi julgada para a Obtenção do título de
Mestre
em
Engenhariaespecialidade Engenharia Elétrica,
área de concentração Sistemas de Controle e
Automação
Industrial,e aprovada
em
sua fomia final pelo Curso de Pós-GraduaçãoOri tador
Prof. Jose
Ed
~r doRieiro
Cury, Dr.État.Coordenador do Curso de
Pós-Grado
e enharia ElétricaBanca Examinadora 1
/
e11
/ yl I,
/Í
fi"l)r.1
' a g . (Presidente) Orientador /46_ Prof. Jean- arie Fari;s, Dr.
Co-Orientador
,
f.*
v . Julius Leite, Ph.D.
/
//
Agradecimentos
Gostaria
agradecer
àCAPES, pelo generoso
aux'/'/io financieiro,aos
meus
am/gos
brasileiros /oão, Fernando, Carla, LuizOtávio
/dm/lson,e
ao
juan, pela a/egr/íae
amizade, ` V_
à TurmaR'T(/(ei/‹o,
Rómulo,
Luiz) pe/as gostosas discussõesde
terçaâ
tarde,que
sem
dúvida
contribuirampara
elevaro
n/'ve/ desta disse/tação,aos
meus
orientadores /onie
/ean-Marie, pela sua guiae
suporte,aos
meus
pais,pelo apoio
permanente
que
sempre
tive de/es,ao
Brasilpor
terme
dado
aoportunidade
de
compartilharestes dois
anos
inesquecíveiscom
seu
povo,PROJETO
E
HVIPLEMENTAÇÃO DE
UM
NÚCLEO
DE
TEMPO-REAL
SEGUNDO
A
ABORDAGEM
SINCRONA
RESUMO
A
criticalidade das aplicações detempo
real atuais exige que suas restriçõestemporais sejam respeitadas; a previsibilidade dos suportes de execução (entre
eles, os núcleos de
tempo
real -NTRs)
é indispensável para garantir tais~
restriçoes. _
Este trabalho apresenta
uma
estrutura paraNTRs
do
tipo reativa e suaimplementação baseada na Hipótese de Sincronía [Benveniste91] sobre
o modelo
da
linguagem Esterel.A
Hipótese de Sincroníaassume
que o sistema executa 'sobre
uma
máquina
infinitamente rápida: esta simplificaçãofomece
vantagensinteressantes
em
relação às abordagens convencionais, entre elas o formalismodas suas linguagens, o determinismo
do
resultado e o maior nivel conceitual da.pk
sua descrição.
Em
conseqüência, o núcleo implementado é fundamentalmenteprevisível e sua análise automâtica
fica
facilitada. .A
inexistência deuma
solução geral para o problema de escalonamento nos levaànecessidade de tennos suportes suficientemente flexíveis de
modo
a atender faixasdiferentes de escalonamento. Neste sentido,
propomos
uma
metologia para aespecialização de
NTRs
a partir de estruturas genéricas, segundo as necessidadesA SYNCHRONOUS AND
CUSTOMIZABLE
REAL-TIME
KERNEL
/'
ABSTRACT
Real-Time applications are recognized
by
the criticality of their missions,which
makes
the satisfactioniof their temporal needsof
foremostconcem;
predictabilityof
the execution support is necessary in order to guarantee such restrictions.This
work
introduces a reactive architecture for a real-time kemel,and
itsimplementation under the Synchronous Hypothesis [Benveniste91] with the
Esterel language model. This hypothesis
amounts
toassume
the execution of thesystem
on
an infinitely fastvmachine,which
bringsup
several advantages: theformalism of the approach, the determinism of the final product, and a higher
conceptual level. These, in tum,
make
the resultingkemel
predictable and'
amenable to automatic analysis.
The
lack of algorithms to schedule generic task scenarios arises the need toreconfigure the
kemel
for almost each application.We
propose here amethodology
that,from
a set of general structures, lets the designer customize its executive for the current application's temporal model. T'CAPÍTULO
1;INTRODUÇÃO
CAPÍTULO
2:
O
ESCALONA1\/[ENTO
EM
SISTEMAS
DE TEMPO
REAL
MONOPROCESSADOR
ÍNDICE
1
4
2.1.
O PROBLEMA
DE
TEMPO
REAL
... ... ..5
2.2.
MODELO
TEMPO-REAL DE TAREFAS
... ..7
2.2.1.
O ESCALONADOR
... ._92.2.2.
TIPOS
DE
ALGORITMOS
DE
ESCALONAMENTO
... _. 102.3.
ALGORITMOS
DE
ESCALONAMENTO
TRADICIONAIS
... ..11
2.3. 1.
ESCALONAMENTO
ESTÁTICO
... _. 12 2.3.1.1. Executivo Cíclico ... _. 12 13 V 2.3.1.2. TaxaMonotônica ... __. ... 2.3.2.ESCALONAMENTO
DINAMICO
2. 3.2.1. Earliest Deadline ... .. 2.3.2.2.Menor
Folga ... ._ 2. 3. 2. 3. Bin-Packing ... ..2.3.3.
ALGORITMOS
MISTOS
-MUF
... ..2.4.
CONSIDERAÇÕES
GERAIS
... ..2.5.
CONCLUSÃO
... ..CAPÍTULO
3;SUPORTES
DE
EXECUÇÃO
PARA
_
APLICAÇÕES
DE
TEMPO
REAL
... ..
20
15 E ... ..18 19 ... ..23
24
3.1.
ABORDAGENS
DE
IMPLEMENTAÇÃO
EVENT-TRIGGERED
VS
TIME-TRIGGERED
... .; ... ..25
3.1.1.
ABORDAGEM
EVENT~DRIVENI SPRING
... _.3.1.1.1.
O
Escalonamento no Spring ... ..3.1.2.
ABORDAGEM
TI1\/IE-DRIVENIMARS
... ._3.1.2.1. Arquitetura do Hardware ... ._ 3.1.2.2. Arquitetura do Software ... ._ 3.1.2.3.
Método
de Projeto ... _. ... ..27 25 26 ... ..27 ... ..28 ... ..283.2.
ARQUITETURAIS
MONOLITICA
VS.
MICRONUCLEO
... ..29
3.2.1.
SISTEMAS
UNIX
PARA
TEMPO
REAL
... ._29
3.2.1.1.OPadrão
Posix ... ..293212
. . . .SistemasU`
mx
C
0me
rc1a1s...;"
... ... ..303.2.2.
SO
BASEADOS
EM
MICRONUCLEO:
CHORUS
... _; ... ..303.2.2.1. Arquitetura Geral ... ... ..3I 3.3.
SUPORTES ORIENTADOS
A
OBJETOS
... ..32
UJUJIHUJ bàbâb.) .2.
PROTOCOLO
TIME-FENCE2
ARTS
... ._ 33 .3.ADAPTABILIDADE:
CHAOS
... .. .3.1.MODELO
GERAL
... ._32
33 .4.GERENCIAMENTO
COOPERATIVO:
R-SHELL
... ..34
3.4.
CONSIDERAÇOES
GERAIS
... ..34
3.5.
CONCLUSAO
... ... ... ..37
CAPÍTULO
4;
CONCEPÇÃO
DE
UM
NÚCLEO
DE TEMPO-REAL
SEGUNDO
A
ABORDAGEM
SÍNCRONA
39
4.1.SISTEMAS
REATIVOS
... ... ..40
r ~ 4.2.
A
ABORDAGEM
SINCRONA
DE
IMPLEMENTAÇAO
... ..41
4.2.1.
LINGUAGENS
SINCRONAS
... .. 414.2.2.
A
LINGUAGEM
ESTEREL
... ..¿ ... .. 434.2.3.
ARQUITETURA DE
UMA
APLICAÇAO ESTEREL
... ..43
4.3.
UM
NÚCLEO
DE
TEMPO
REAL
SEGUNDO A
ABORDAGEM,
SINCRONA
... ..44
4.3.1.
ESPECIFICAÇAO
DE
UM
NUCLEO DE
TEMPO
REAL
... ..45
2.
O
NUCLEO
ESPECIFICADO VISTO
COMO~SISTEMA REATIVO
... ..47
MODELO
SINCRQNO
DE
I1\/IPLEIVIENTAÇAO
DA
ENTIDADE
REATIVA..
49
MODULARIZAÇAO
DA
ENTIDADE REATIV
A
... ..50
:'>:'>:'> .°°$*°.°°
PP*
4.4.
CONSIDERAÇÕES
GERAIS
... ..ss
CAPÍTULO
szASPECTOS
PRÁTICOS
DO
DESENVOLVIMENTO
DO
NUCLEO
A5.1.
ASPECTOS DE
IMPLEMENTAÇAO
... ..57
5.1.1.
AMBIENTE
DEDESENVOLVIMENTO
ESTEREL
... ..57
5.1.2.
SUPORTE
B_INARIO
... ._58
5.1.3.INTEGRACAO
DO
ELEMENTO
REATIVO
... .. 585.1.3.1. Conversão do Suporte para
Tempo
Real. ... ..595.1.3.2. "Sincr‹¿nização " do .Suporte ... ... ..60
.4.
VALIDAÇAO
DA
HIPOTESE
DE
SINCRONIA
... ..62
. .5.
FASES
DO
PROJETO
... ..62
*/'V' ›-›-1 5.2.
METODOLOGIA DEGERAÇÃO
DE
NÚCLEOS
ESPECÍFICOS
õs
5.2. 1 .PARTICULARIZAÇAO
POR
SELEÇAO
DE~CO1\/[PORTAMENTOS
INTERNOS
... .. 655.2.2.
PARTICULARJZAÇAO
, APOR SELEÇAO
DA
POLITICA
DE
ESCALONAMENTO
... ._66
5.3.CONSIDERAÇÕES
GERAIS
... ... ... _.69
5.4.CONCLUSAO
... ..70
CAPÍTULO
6:RESULTADOS
E
CONSLUSÕES
FINAIS
71
REFERÊNCIAS
BIBLIOGRÁFICAS
73
ANEXO
1;CODIGO
ESTEREL
DO NÚCLEO
CAPÍTULQ
1
INTRODUÇÃO
Aplicações
de
tempo
real são caraterizadas pela imposição de restrições temporaisno
comportamento do
elemento computacional de controle, por partedo
ambienteque
se desejacontrolar.
A
-criticalidade -destas 'aplicações faz necessário garantira
priori ocumprimento
de taisrestrições, desde
que
sua inobservânciapode
trazer conseqüências graves de tipohumano,
ecológicoe/ou
económico
ao conjunto.V ›
'
-
Para garantir tais restrições, é preciso que o sistema seja previsível, isto é,
que
seucomportamento
possa ser deduzido a partir de seus atributos [Stank88]. Esta condiçao extende se acada
um
doscomponentes do
sistema, eem
especial aos seuscomportamentos
temporais.Na
literatura, esta
noção
de previsibilidadetem
sido associada à antecipação determinista [`Kopetz89]ou
probabilista [Stank9l] [Jensen85]
do comportamento do
sistema: nos dois casos existe a necessidade deum
conhecimentoou
estimativa previa de suas caraterísticas temporais.Dentre as abordagens mais
comuns
à implementaçãodo
elemento de controlel para o casomonoprocessador
está a decomposição da aplicaçãonum
conjunto de tarefas sequenciais, rodandopseudo-concorrentemente sobre
um
suporte de execução multitarefa e interagindo através dos recursospor ele oferecidos, acessíveis pelas suas primitivas. Neste caso, o suporte
ou
núcleode tempo
real(NTR)
deve ser previsível, de maneira a fornecerum
embasamento adequado
para a análisedo
escalonamento da
CPU
entre as tarefas, visando garantir ocumprimento de
suas restrições temporais.Em
geral, o escalonamento nos suportes convencionais é baseado na atribuição subjetiva de"importâncias" (prioridades) às tarefas por parte
do
projetista: o não-determinismo docomportamento
resultante complica os testes de garantia e dificulta a reprodução 'de cenários problemáticos para sua
Capítulo 1: Introdução
depuração. Esta imprevisibilidade
impede
também
o cálculo preciso dostempos
máximos
de
execuçãode suas primitivas, fator fimdarnental para a aplicação dos testes de escalonabilidade.
`
Este trabalho apresenta
uma
estrutura para núcleos detempo
realdo
tipo reativa e aimplementação de
um
protótipo deNTR
baseado na Hipótese de Sincronía [Benveniste9l],usando
omodelo da
linguagem Esterel [Ben'y88] [Boussinot91].A
Hipótese de Sincroníaassume que o
sistemaexecuta sobre
uma
máquina
infinitamente rápida, simplificaçãoque
fomece
vantagens interessantesem
relação às abordagens convencionais: o formalismo das suas linguagens, o determinismo
do
resultado eo maior nivel conceitual da sua descrição. '
Em
conseqüência, o' núcleoimplementado
éfundamentalmente previsível e sua análise automática
fica
facilitada.Por
outro lado, devido à complexidadeNP-completa do problema
de escalonamentoem
circunstâncias realistas (tarefas comrestrições de recursos, relações de precedência, etc)
[Mok84],
nãoexistem na literatura [Audsley90] [Cheng88] políticas de escalonamento para
tempo
realsuficientemente gerais
que
consigam escalonar todas as situações possíveiscom
um
custo de execuçãorazoável. Isto faz
com
que
as soluções viáveisfiquem
restritas a aplicações demodelos
temporaisrelativamente sirnples, decorrentes das premissas usadas para a derivaçao dos testes de escalonabilidade
das políticas envolvidas. -
Por
exemplo, o algoritmo taxamonotônica
(Monotonic Rate) [Liu73]no
sistemaARTS
[Tokuda89]
é usado para escalonar conjuntos de tarefas independentes e periódicas,embora
extendidopara
o
tratamento de restrições de recursoscom
o Protocolo Limitede
Prioridade (Priority CeilingProtocol) [Sha88]. Já os sistemas
Mars
[Kopetz89] e Spring [Stank9l] utilizam técnicas heurísticascom
enumeração
implícita de soluções para o escalonamento de tarefas críticas, técnicasque embora
abrangem
modelos mais gerais,têm tempos
de execução pseudo-exponenciaisque
não asfazem
viáveisou
entãodevem
ser aplicadas apenas de forma sub-ótima. ~O
mesmo
acontececom
osmecanismos
intemos aoNTR:
existeuma
relaçãode compromisso
entre
o
nível das primitivas e sua eficiência na implementação,que
deve ser resolvidasegundo
aaplicação. Aplicações
como
controle direto de robôs precisam de primitivas simplesporém
rápidas,pelo
dinamismo
do ambienteem
que
o sistema é embutido. Já sistemas de maior nível hierárquicoassumem
folgas maiores para trabalhar, e portantopodem
oferecer primitivas mais sofisticadas eescalonamentos mais apurados para o conjunto. Mars,
no
entanto, resolve estes problemas escalonandotudo antes da execução (ainda a comunicação e sinc-ronização entre tarefas, e alocação
de
recursos):isto
fomece
uma
grande eficiência na execução,mas
sobreuma
estrutura notoriamentemenos
flexívelque as anteriores (pelo
menos
dinâmicamente).Capitulo 1: Introdução
suficientemente flexíveis ao
mesmo
tempo
que eficientes nos leva à necessidade determos
suportesconfiguráveis para atender diferentes faixas de escalonamento. Neste sentido,
propomos
uma
metologiapara a especialização de
NTRs
a partir de estruturas genéricas, segundo as necessidadesda
aplicaçãoem
mãos. Esta metodologia, baseada na composição de autômatos segundo omodelo da
linguagemEsterel, permite escolher o escalonador
do
NTR
baseadona
análisedo
modelo
temporalda
aplicação, eintegrá-lo ao núcleo final.
Da
mesma
forma, pode-se escolher entre diversoscomportamentos
para amesma
funcionalidade,ou
ainda implementações distintasdo
mesmo
comportamento,que
provilegiam aeficiência por sobre a
memória
ocupada, etc. Assim, o usuárioconfiontado
à tarefade programar
várias aplicações
com
modelos
temporais distintosnão
precisariamudar
deNTR, mas
poderiaconformar núcleos específicos para
o modelo
alvo,sem
sacrificar as caraterísticas principaisdo
NTR
que
já possui. .._ ›.
Esta dissertação é organizada
como
segue.No
capítulo2
é discutido oproblema de
tempo
real
em
geral, juntocom
um
modelo
de tarefas tempo-realque
servirá para analisar, a continuação,algumas das políticas de escalonamento mais usadas na prática: taxa monotônica, earliest deadline,
menor
folga, bin-packing emáxima
urgência.O
capítulo conclue fazendouma
comparação
dosalgoritmos cobertos. -V
O
capítulo 3 trata suportes de execução e sistemas operacionaiscom
caraterísticasmodemas,
descrevendo as principais abordagens de implementação (event-driven vs time-driven), critérios de
estrutura (monolítica vs. micronúcleo) e finalmente analisando
um
modelo
de objetos paratempo
real eas qualidades salientes de algumas de suas técnicas.
O
capitulo 4 apresenta o conceito de Sistema Reativo e descreve aabordagem
sincrona parasua implementação. Depois é apresentado o projeto de
um
NTR
simplesusando
aabordagem
sincrona,junto
com
nossa proposta de implementação e descrição dos seusmódulos
internos.O
capítulo 5 descreve aspectos relacionadoscom
a implementação deum
protótipodo
núcleoanterior concretizada
no
LCMI.
Descreve-se o ambienteda
linguagem Esterel utilizado, ecómo
um
suporte convencional foi adaptado para este
fim.
O
capítulo terminapropondo
uma
metodologia departicularização de
NTRs
para aplicações especificas. A`
Finalmente, o capítulo 6 apresenta as conclusões e resultados finais
do
trabalho, e algumas-CAPÍTULO
2
0
ESCALONAMENTO
t
EM
SISTEMAS
DE
TEMPO
REAL
MONOPROCESSADOR
Sistemas de
Tempo
Real ditos "Hard" caracterizam-se pela ocorrência de conseqüências graves aoconjunto, caso seus
componentes
"críticos" nãocumpram
detemiinadas restrições lógicas e temporais,impostas pelo
meio
extemo. Aplicações para seu controlerodam
sobre suportes computacionais 'especiais.
O
escalonador é o modulo, dentro destes suportes, encarregado de distribuirno tempo
os recursosdo
sistema entre as tarefasque
pertencem à aplicação, demodo
às "críticas".cumprirem
suas restriçõestemporais.
No
caso de suportes monoprocessadores, a únicaCPU
deve ser compartilhada entre todosOS pI`0C€SSOS.
Neste capítulo analisa-se o conceito de
tempo
real e as características desejáveis neste tipo de sistema,junto à introdução de
um
modelo
temporal de tarefas que definirá termos a serem usados ao longo destadissertação.
A
seguir, é analisado o conceito deescalonador e os algoritmos de escalonamentoCapítulo 2:
O
Escalonamentoem
Sistemas de Tempo Real Monoprocessador-The
rigthanswer
Iate iswrong
I
2.1.
O PROBLEMA
DE
TEMPO
REAL
Robótica, controle de processos, supervisão de plantas químicas e nucleares, aviónica,
sistemas
embarcados
em
satélites, sistemas de ignição eletrônica e suspensão ativa para automóveis,controle
de
tráfego aéreo.Orastreamento
deuma
nave espacial,na
sua órbita,por
uma
antena.Células
autônomas
de manufatura. Estasaplicações são alguns exemplosde
Sistemasde
Tempo
Real, sistemas caracterizados por exigirem correção temporal às açõesdo
seu elemento de controle,além
danecessária correção lógica.
Seu comportamento
satisfatório dependenão
apenasdo
controle aplicado,mas
também
do
tempo
em
que é fornecido, esta dependência temporal sendo determinada peloambiente a controlar
em
cada caso.O
naocumprimento
das restriçoes temporaispode
acarretarconseqüências severas de tipo humanas, ambientais e/ou econômicas.
Um
Sistema deTempo
Realpode
ser vistocomo
composto
de duas partes:uma
parte física(um
metrô,uma
planta química,ou
uma
rede decomutação
telefônica) eum
computador de
controle,fortemente acoplados (Figura 2.1).
Por
precisar de correção temporal, elepode
sercomparado
_aum
casal de dançarinos,
onde
cada deve reagir aosmovimentos do
outro, eambos devem
levarem
contauma
agenda
temporal (no caso, o ritmo da música) [Lauber89].,
Q
SISTEMA FÍSICO
,AMBIENTE
X
(
_
)
sensores
atuadores
tempo
COMPUTADOR
Capítulo 2:
O
Escalonamentoem
Sistemas de Tempo Real MonoprocessadorGeralmente, a lógica de
comportamento do computador
de controle édecomposta
num
conjunto de tarefas
que executam
pseudo-concorrentemente sobreum
suporteadequado
(núcleo detempo
real). Estas tarefaspodem
apresentar restrições temporais na sua execução, tipicamente naforma de
"deadlines".No
contexto deste trabalho, assumiremos ocomputador
de controlecomo
sendomonoprocessador:
tem
apenasuma
CPU.. _O
cumprimento
do
deadlinede
uma
tarefahard
é considerado fiindamental para a operaçãodo
sistema, e portanto só deve executar se for garantidas .de antemão.
Se
for apenas desejável eum
eventual descumprimento
não
trouxer conseqüências graves, atarefa é dita soft.Segundo
[Stan90], as tarefas hard são aquelasque não
fornecem beneficioalgum
.ao sistemaquando
completadas depoisdo
seu "deadline".São
chamadas
críticas se, -além disso,puderem
acontecer conseqüências graves ao sistema caso não
forem
cumpridas suas restrições temporais.A
importância das tarefas criticas obriga a alocação temprana de todos os recursos -necessários para sua execução.Na
visão de [Stan90], muitos sistemas tratam as tarefas hardcomo
criticas quando,de
fato,só
uma
pequena
parte delas é verdadeiramente crítica: isto fazcom
que
os sistemasfiquem
superdimensionados. .
As
características desejáveis deum
sistema detempo
real são [Sha90] [Sha93]:0 previsibilidade: garantia
do cumprimento
dos deadlines das tarefas críticas, etempos
de respostamínimos
para o resto. ~e alto grau de escalonabilidade para tarefas hard.
A
escalonabilidade é omáximo
nívelde
utilizaçãode recursos para
o
qual ocumprimento
dos "deadlines" propostos é garantido.0 estabilidade fi'ente a sobrecargas de
cômputo
transitórias:quando
o sistema é sobrecarregado por ~eventos imprevistos,
nem
todas as tarefas continuarao garantidas.No
entanto, determinadastarefas críticas
devem
continuar a cumprir seus "deadlines".A
mais importante de todas é a previsibilidade temporal: deve ser possível demostrarque
osrequerimentos temporais das tarefas críticas serão cumpridos, sujeitos às premissas feitas (por exemplo,
em
relação a falhas e sobrecargas). Esta previsibilidade baseia-se na avaliação das propriedades~
temporais das tarefas individuais e
do
sistema, e determina implicaçõesem
todos os níveisdo
conjunto:características arquitetônicas previsíveis facilitam a construção de
sofiware
operacional previsível,que
por sua vez leva à construção de aplicações previ_siveis.
Capítulo 2: OlEscalonamento
em
Sistemas de Tempo Real MonoprocessadorA
arquiteturado
sistema deve ser capaz de forneceruma
previsão provávellde sua
capacidade
de
cumpriras
restrições temporais impostas.O
requerimento e'que
a previsibilidade possaser deduzida a partir das características estruturais
do
sistema,mas
não é preciso queuma
prova sejafeita. Então, a provabilidade implica
que
as técnicas de projetodevem
ser derivadasde modelos
deexecução formais, de maneira a produzir resultados prováveis dentro das restrições
do modelo
[Locke92]. t
A
O
protocolo limite de prioridade (priority ceilíng protocol) [Sha90] éum
bom
exemplo
deum
protocolo previsível,
mas
não determinístico:embora não
preciseo
tempo
que
uma
tarefade
altaprioridade vai ficar bloqueada por
uma
demenor
prioridade, garanteum
patamarmáximo
para aduração desse bloqueio. Outro
exemplo
é o algoritmo de escalonamento bin-packing: nele'não
sabemos
a prioriquando
será executadauma
tarefa,mas
temos
certezaque
cumprirá seu "deadline".2.2.
MODELO
TEMÃPO-REAL
DE TAREFAS
Tarefas de
tempo
real são caracterizadas, então, pela existência de restrições temporais parasua execução, além das r_estn`ções de correção lógica e requerimentos
de
recursos e precedência.Os
requerimentos
de
recursos são a descrição, a cadamomento
da
execuçãodo
programa, dos recursosnecessários para seu desenvolvimento.
Os
de precedência descrevem as relações [antecessor, sucessor]que
devem
ser respeitadas naordem
de execução das tarefas. Finalmente, as restrições temporais sãodescritas por
uma
tupla T(at,rt,ct,dt,pt,w)2, definida pelo projetista para cada tarefa (Figura 2.2).O
tempo
de
chegada
at (arrival time) é o instanteem
que
a tarefa se incorpora aoconjunto
de
tarefas correntedo
sistema, onde o pesow
mede
sua importância relativa.O
tempo
de pronto
rt (ready time) éo
tempo
a partir do qual a tarefa jápode
ser executada.O
tempo
de
computação
ct(execution time
ou
computation time) é otempo
deCPU
que
a tarefa precisa para executar seu código;quando
uma
tarefa executa porum
tempo
maior queo
tempo
decômputo
atribuído, diz-seque
sobrecarrega o sistema.
O
deadline dt é o limite detempo
antesdo
qual a tarefa deve completar suaexecução;
quando
respeitado, diz-se que a tarefa cumpriu seu deadline.O
deadlinepode
ser relativoao
tempo
de
chegada,que
é absoluto [Cheng88] [Ausdley90].1
No
contexto, provável é a capacidade de ser provado lógicamente. Este conceito é distinto de detertninismo,qualidade que indica que a seqüência e tempos de execução das tarefas são completamente predeterminados
e fixos ara toda a execu ão 9 do sistema.
Embora
o determinismo é suficiente Para o sistema ser revisível znão é necessário.
2
Os
nomes dos seus componentes e suas interpretaçõespodem
variar dependendo do autor e do modeloCapítulo 2:
O
Escalonamentoem
Sistemas de Tempo' Real Monoprocessador 2...
...
l l l l l l
Fi*
ai
ftSt
et
diet
'iSt
er
Figura 2.2: Parâmetros temporais de
uma
tarefaOutras figuras temporais são detemiinadas
no
escalonamentodo
conjuntode
tarefas enão
pelo usuário.
Define-se
tempo
de
começo
si (start time) deuma
tarefacomo
o
instanteem
que
obtém
a
CPU
pela primeira vez; otempo
de
término ei (completion timeou
end
time) é otempo
no
qual atarefa termina sua execução.
O
tempo
de
resposta ta é a diferença entreo
tempo
de término eo
tempo
de pronto [Leinb80].
O
atrasode
uma
tarefa lt (lateness) é a diferença entre o tempo'de
término eseu "deadline" absoluto.
Definiremos
o atrasode
um
escalonamento
como
omáximo
atraso dentre .astarefas
da
agenda [Xu90]. ''
Quando
otempo
pt entre invocações sucessivas deuma
tarefa é regular, ela é dita periódicade período
pt
Em
geral, as instâncias de tarefas periódicas apresentam "deadlines" hardque
coincidemcom
o finaldo
periodo corrente. Tarefascom
períodos múltiplosou
submúltiplos entre si são ditasharmônicas.
Sua
fase b¡ define-secomo
otempode
prontoda
sua primeira requisição; diz-seque
um
conjunto
de
tarefas estáem
fase se todastêm
omesmo
b¡_1Shih9l].ctp
=
ciaptp
S
min(dta
_
dtp=amin)
Figura 2.3: Regras para a transfonnacão de
uma
tarefa aperiódicanuma
periódica equivalenteTarefas que
acontecem
apenasuma
vezno
sistema são ditas one-shot.Tempo
de chegadaCapitulo 2:
0
Escalonamentoem
Sistemas de Tempo Real Monoprocessador _hard). Para o processamento das tarefas esporádicas é necessário modelá-las
como
respeitandoum
intervalo
de
tempo mínimo
entre chegadas am¡n_ Tarefas aperiódicas (cm, dta,amu)
podem
sertransformadas
em
periódicas equivalentes (ctp, dtp, ptp) satisfazendo as condiçõesda
Figura 2.3[Mok84]
.Tarefas
que não
precisam sincronizarcom
outras para evoluir são ditas independentes; tarefasinterdependentes interagem de muitas maneiras, incluindo relações de exclusão e precedência.
2.2.1.
O
ESCALONADOR
Sistemas de
Tempo
Real precisam de suportes computacionaiscomo
núcleos multitarefd' paraexecutar,
que
deverão levarem
conta as particularidades mencionadas acima:Uma
parte fundamentaldesses suportes é
o
escalonador, elemento quetem
a função de coordenaro
acesso das tarefas aosrecursos
do
sistema.,O
escalonamento paraTempo-Real
está referido,em
geral, ao seqüênciamentodas tarefas
no
acesso a qualquer recurso (por exemplo, aCPU)
cujo uso implique a satisfação de~
restriçoes temporais.
4
O
escalonador é ativadoem
instanteschamados pontos de escalonamento
para executarum
algoritmoou
políticaque
ordeneo
acesso aos recursos.O
despachante
é omódulo
que, após cada,f .
ponto de escalonamento, coloca a rodar a tarefa escolhida pelo escalonador. Para
um
dado conjunto
de
tarefas o escalonador produzum
escalonamento, plano,ou
agenda
que
é, basicamente,um
mapeamento
de tarefasem
segmentos detempo
-deCPU.
Se
existirum
escalonamentoque cumpre
asprecondições dadas, o conjunto de tarefas é dito escalonável, viável, factível
ou
possível.O
algoritmode escalonamento deve, então, fornecer critérios para a análise
da
viabilidadedo
conjunto -existeuma
agenda?- e se afirmativo, o
método
para achá-la.Os
algoritmos de escalonamento baseiam explicitamente' suas decisões nas informaçõestemporais das tarefas e nas restrições
do
sistema, e estão caracterizados pelo perfil temporal de tarefasque suportam. Se o algoritmo faz
com
queuma
tarefacumpra
suas restrições, diz-seque
garante atarefa.
A
eficácia3 deum
algoritmo de escalonamento émedida
com
referencia à taxade
garantia,percentagem dos conjuntos possíveis gerados aleatoriamente
que
consegue garantir, paraum
modelo
detemtinado
do
sistema a controlar.O
principal objetivono
projeto deum
algoritmo e' maximizar suataxa de garantia para tarefas críticas.
A
eficiênciado
algoritmo está relacionadacom
medidas
dedesempenho do
mesmo,
como
sobrecarga por escalonamento, sua complexidade computacional, etc.Capítulo 2:
O
Eszcalonamentoem
Sistemas de Tempo Real MonoprocessadorDeve
ficar claroque
as heurísticas usadas pelos algoritmos parao
escalonamento das tarefas(p.ex., executar primeiro as de "deadlines" mais próximos) são diferentes dos seus testes de
aceitabilidade.
Embora
possam
ser aplicadasem
quase a totalidade dos modelos, as heurísticas (eportanto os algoritmos) apresentam testes de garantia apenas para
modelos
temporais específicos.A
pesquisa corrente éem
direção a expandir essesmodelos
paraque
testes de escalonamentopossam
seraplicados
em
ambientes mais realistas, isto é,com
menos
restrições.2.2.2.
TIPOS
DE
ALGORITMOS
DE
ESCALONAMENTO
Os
algoritmos de escalonamentopodem
ser estáticosou
dinâmicos.Na
abordagem
estática,pré-run-time
ou
off-line, as decisões são tomadas antesda
execução, gerandouma
tabelade
expedição para o despachante
em
tempo
de compilaçãoou de
configuração. Aitabelacontém
todas asinformações
que
o despachante precisa para ativar, a_ cada pontoda
base detempo
discreta, apróxima
tarefa a executar.
A
abordagem
dinâmica, run-timeou
on-line, 'toma as decisõesem
tempo
deexecução, baseando-se nas requisições correntes para serviço. -Existem ainda abordagens mistas,
que
tentam capturar as vantagens das duas anteriores4.
Os
algoritmos estáticos precisam de conhecimento completo ea
priorido
conjuntode
tarefasa escalonar. Isto justifica-se pelo fato de que, na maioria das aplicações
de
tempo
real, a parte principalda
computação
é por conta de tarefas periódicas,onde
o sequenciamento e caracteristicas temporais dastarefas são conhecidas de
antemão
[Xu93].Abordagens
estáticastambém
nãoconseguem
dar conta degrupos de
tarefas dependentes5 [Stan9l], eem
,geral de qualquer cenáriodo
qual não se disponha datotalidade das informações.
A
abordagem dinâmica tem
custo maiorem
tempo
de execução para calcular oescalonamento, que é progressivo. Considera apenas 'as informações relativas à(s) tarefa(s)
requisitada(s),
podendo
ser aplicada estáticamentecomo
um
caso especial. Nestes caso,uma
tarefa éconsiderada escalonável se
pode
ser escalonada para cumprir seu "deadline" demodo
que
as outrastarefas previamente aceitas
permaneçam
garantidas.A
abordagem
dinâmica é mais flexível para seadaptar a
um
cenárioque
evoluiou
na presença de faltas,podendo tomar
decisões mais inteligentes ao contarcom
informação atualizada sobre o estadodo
sistema e dos seus componentes.4
No
caso deum
escalonador baseadoem
prioridades (ondeem
todomomento
executa-se a tarefa pronta de maiorprioridade), a qualidade de estático
ou
dinâmico refere-se ao fato das prioridades serem fixas,ou
mudarem
durante a sua execução. -
5 onde os requerimentos de tempo e recursos de
um
subconjunto das tarefas sópodem
ser conhecidos depois que'
Capítulo 2:
O
Escalonamentoem
Sistemas de Tempo Real MonoprocessadorUm
algoritmo estático éótimo
se, para qualquer conjunto de tarefas,sempre produz
uma
agenda
possívelquando
outro algoritmoque
suporta omesmo
modelo
temporal consegue fazê-lo6.De
°\
forma
semelhante,um
algoritmo dinâmico étimo
seuma
tarefa determinadacomo
não-escalonávelpor ele
também
é rejeitada por qualquer outro algoritmo [Schwan92].O
problema
geraldo
escalonamento para
modelos
temporaiscomplexos
é dificil e computacionalmente intratável, pelo que~
na prática sao utilizados algoritmos sub-ótimos.
Algoritmos de escalonamento estáveis
tem comportamento
previsível frente a sobrecargas deprocessamento e
conseguem
garantirum
subconjunto de suas tarefas críticas paraum
nível determinadode sobrecarga [Sha90]: tarefas fora
do
conjunto 'críticopodem
perder seu "deadline"em
caso desobrecarga. .
"
Finalmente,
o
algoritmopode
serpreemptivo
.ou não.No
primeiro caso a tarefa correntepode
ser interrompida se outra mais urgente requerer serviço; apreempção
sópode
acontecerquando
não forem
violadas determinadas condições (por exemplo, restriçõesde
exclusão mutua).No
escalonamento
não preemptivo ou
cooperativo, a tarefa corrente nãopode
ser interrompida, sendo elamesma quem
decidequando
liberar seus recursos associados -normalmente depois de completar aexecução-.
A
não-preempção
é razoávelnum
cenárioonde
muitas tarefas pequenas (detempo
deexecução curto,
em
relação aotempo
que levauma
mudançade
contexto)devem
ser executadas.2.3.
ALGORITMOS
DE
ESCALONAMENTO
TRADICIONAIS
~
Na
continuaçao serão analisados os algoritmos de escalonamentomonoprocessador
maistradicionais,
no
sentido de serem os primeiros a formar partedo
corpo da teoria de sistemas detempo
real, e provavelmente
também
os mais estudados e aplicados na prática. Para sua apresentação os classificaremosem
estáticos, dinâmicos e mistos, segundo aabordagem
utilizadano
seu funcionamento.Muitas destas abordagens
tem
a desejável propriedade de separar a correção lógicado
programa de
sua correção temporal: enquanto as condições de escalonabilidade sejam satisfeitas, todasas tarefas
do
conjunto cumprirão seus "deadlines"sem
que o .programador saiba exatamentequando
vaiexecutar cada
uma
[Sha90].6 Esta definição não pode ser utilizada
em
sistemas dinâmicos, onde as tarefas chegam aleatoriamente e portantoCapítulo 2:
0
Escalonamentoem
Sistemas de Tempo Real Monoprocessador2.3.1.
ESCALONAMENTO
ESTÁTICO
A
abordagem
estáticatem
uma
série interessante de vantagens, entre elas a eficiência (precisa depoucos
recursosem
tempo
de execução).A
seguir são descritos seus maiores expoentes:o
executivo cíclico eo
algoritmo de taxa monotônica. Este último é o principal algoritmo deescalonamento estático para tarefas independentes e periódicas, apresentando extensões para o
tratamento de recursos e tarefas não periódicas.
2.3.1.1.
Emcurri/o
cícuco
A.
«
O
executivo cíclico éuma
estrutura de controle para a altemância de execuçãode
váriastarefas sobre
uma
únicaCPU;
esta altemância é detemiinista, demodo
que
seucomportamento
temporal (timing) é previsível [Baker89]. Aplica-se principalmente para tarefas periódicas,
embora
possa-se estender a tarefas aperiódicas
com
servidores adequados. i -O
executivo cíclico divide cada tarefa periódicanuma
sequência de códigosnão
preemptíveis.O
timelineou agenda
cíclica especifica aordem
(fixa ao longoda
execução deum
programa)em
que
estes segmentos serão executados, sendo repetido indefinidamente. -O
tempo
para desenvolver aagenda cíclica é
chamado
ciclo maior, e é igual aomínimo
múltiplocomúm
dos 'periodos das tarefasenvolvidas.
Cada agenda
cíclica écomposta
de ciclosmenores ou
quadros, de duração fixa; existemvários critérios para a escolha
do tamanho
dos quadros [Baker91],devendo
sempre sermaior que
aduração
da
menor
tarefado
sistema. _A
Condição 2.1 mostra a condição suficientede
escalonabilidade,que define
um
patamarmáximo
para a utilizaçãoda
CPU
(U), porum
número n
de tarefasdo
sistema.Os
pontos deescalonamento são os finais
decada
ciclo menor, e portanto facilmente controláveiscom
um
temporizador de hardware. Se
no
finaldo
último ciclomenor
deuma
tarefa' o sistemanão
estiversobrecarregado, a
CPU
estará idleou
executandouma
tarefaem
background.Caso
contrário, existeuma
situação de sobrecarga de processamento cuja recuperação é dificil: se continuar executando atarefa corrente tem-se
o
risco de provocaruma
falha temporalnum-outro
ponto (imprevisível)do
sistema; se for abortada, pode-se criar
um
estado inconsistente nos dados persistentesda
tarefa correntee que compartilha
com
outras. _O
executivo cíclico precisa que todas as tarefas sejam harmônicas para ter agendas cíclicas decumprimento
razoável.Se
não for o caso, pode-se aumentar a frequência de determinadas tarefas,Capítulo 2:
O
Escalonamentoem
Sistemas de Tempo Real Monoprocessadorpelo incremento artificial na utilização
do
processador imposto por esta solução,sem
um
aumento
nafuncionalidade original.
Em
todo caso, a estruturado programa
é sacrificada paraacomodar
o códigonos slots de
tempo
certos e portanto, a aplicação resultante é frágil: qualquermudança
no
sistemaobrigará a
uma
reestruturação generaldo
conjunto, frente à possibilidade de efeitos temporais lateraisnas outras tarefas pelas
modificações
introduzidas. .Este
método
apresentaum
jitter7 muito baixo, útil para determinadas aplicações: laços derealimentação
em
controle de processosou
aquelas quedependem
de dispositivos especializados cujasentradas e saídas
devem
apresentar relações temporais precisas.Em
resumo,o
executivo cíclico éum
método manual que
apresenta poucas vantagens.É
recomendável apenas para aplicaçõescom
requerimentos de jitter estreitos e tarefas harmônidas, eonde
as soluçõesdo esquema
de prioridadefixa
não sejam satisfatórias ,[Locke92].Sua
aplicaçãoaumenta
os custos a nível de ciclo de vidado
software final (sobretudo demanutenção
e teste).2.3.1.2.
TAXA
MONOTÓNICA
l c
O
clássico taxamonotônica
(TM)
tem
sido utilizadocomo
base para desenvolveruma
teoriade escalonamento para
tempo
real (Generalized Rate-Monotonic Analysis)que
solucionaum
amplo
espectro de problemas práticos [Klein93].
Taxa Monotônica
éum
algoritmo preemptivo,que
atn`bueprioridades fixas (maior quanto
menor
o periodo) paraum
conjuntode
tarefas periódicas e independentes:em
todomomento
o sistema executa a tarefa pronta de maior prioridade.No
seumodelo
temporal,o
período de cada tarefa é constante e seu "deadline" éo
finaldo
período corrente,isto é: precisa completar antes da chegada da próxima instância.
A
tarefa é assumida pronta ao chegareo
tempo
de troca de contexto é desprezado; as tarefasnão
sesuspendem
voluntariamente [LiuC73]. Fica claroque
estemodelo
temporal ébem
restritivo. AU
S
z»z(2”"-
1) [11onde
U
é a taxa de utilização total daCPU
U
U,
=
[21Í Í=l
pfi
e
Cfi
e Pti são ostempos
de execução e período da tarefaiCondição 2.1: Condição suficiente de escalonabilidade para
Taxa
Monotônica
Capitulo 2:
0
Escalonamentoem
Sistemas de Tempo Real MonoprocessadorA
Condição_ 2.1 mostra a condição suficientede
escalonabilidade,que define
um
patamarmáximo
para a utilizaçãoda
CPU
(U), porum
número n
de tarefasdo
sistema. Este patamar convergepara
69%
quando n
tende a infinito: portanto, se o conjunto das tarefas apresentaruma
utilizaçãoconjunta
do
processadormenor
que69%
tem
o escalonamento garantido por este algoritmo. -Este éum
valor pessimista, calculado para o pior conjunto de tarefas possível: para
um
conjunto escolhidoaleatoriamente,
o
limite provável é de88%.
Em
muitos casos as tarefas são harmônicasiou
quase, oque
levao
patamar perto de100%
[Sha90]. Ainda seuma
tarefa excede sua taxa de utilizacão originalU¡, o conjunto continuará escalonável desde que a condição [1] seja cumprida [Locke92].
Um
conjuntode
tarefascom
taxa de utilização conjuntaU
maiorque
o
limitedado
por [1]pode
ser escalonávelcom
taxa monotônica secumpre o
teste necessário e suficientëde
escalonabilidade,que
é baseadono
Teorema
2.1. V_
Teorema
2.1.:Para um conjunto
de
tarefas
independentes
e
periódicas,
se
cada
tarefa cumpre seu primeiro
"deadline"
quando todas
começam
ao
mesmo
tempo,
então
os
"deadlines"
sempre
serão cumpridos, para qualquer
combinação
de
tempos
de
começo
(task
phasing)
.Este teste aplica-se às tarefas de
menor
prioridadedo
conjunto, cujocômputo
faz o sistemasu erar P o atamar se ro
Sha90
, e consisteem
verificarue
em
alm
ontode
escalonamentodo
primeiro periodo da tarefa (o seu primeiro "deadline", e os fins de período das tarefas
de
maiorprioridade, anteriores ao seu primeiro "deadline"), ela e todas as tarefas de maior prioridade
conseguem
com
letaro
seunúmero
de execu ões corres ondente nesse eríodo.Se
assim for 3 tanto a tarefaanalisada
como
as de maior prioridade cumprirão seus "deadlines",mesmo
tendouma
taxa de utilizaçãomaior
que
o patamar definidoem
[1].O
algoritmo taxa monotônica é estável frente a sobrecargas, e seu conjunto crítico éformado
pelas
k
tarefas de maior prioridade, cujasoma
das taxas de utilização não supere o patamar seguro [1].Como
a prioridade reflete apenas o período da tarefa e não a sua importância, existem situaçõesem
que
tarefas importantes
ficam
forado
conjunto crítico por 'terem períodos maiores.A
técnica detransformação de
período permite seguraruma
tarefa determinada dentrodo
conjunto crítico:escalona-se a tarefa
como
se seu pen'odo fosse metadedo
original (=Pt/2), e suspende-se sua execuçãoapós consumir
metade
do
seu piortempo
de cômputo.A
suspensãopode
ser voluntária, originada pelaCapítulo 2.'
O
Escalonamentoem
Sistemas de Tempo Real Monoprocessador.
O
modelo
temporal suportado pelo taxa monotônica não permiteo
tratamentode
tarefas nãoperiódicas;
no
entanto, elas aindapodem
ser tratadas por extensões adequadas. Os' servidoresaperiódícos [Sprunt89] utilizam-se
do tempo
decomputação
de tarefas periódicas especiais para oprocessamento das requisições aperiódicas;
uma
modificação
dosmesmos
permite tratar as tarefasesporádicas.
Taxa Monotônica
também
foi estendido para sincronizar o acessode
tarefas a recursos compartilhados: neste caso, o Protocolo Limite de Prioridade (Priority Ceiling Protocol -PCP)
[Sha90] [Chen90] [Baker91] associa a cada semáforo
um
limite de prioridade,que impede o
acesso aorecurso às tarefas
com
priorida_d_emenor
que
este limite. .t [Lehoczky90] apresenta
uma
extensãodo
algoritmo base parao
casoem
que o
"deadline" decada instância é postergado além
do tempo
da próxima invocação. [Shih93] generalizao
caso anteriorpara "deadlines" arbitrários
(mas
anteriores aotempo da próxima
invocação).Em
ambos
os casos, osresultados são matematicamente
complexos
e válidos apenasquando
todas as tarefastem
seus"deadlines"
modificados
damesma
forma,o
que restringe sua aplicação. [Sha93] ainda apresentauma
extensão para o tratamento de sistemas distribuídos.
Todas
estas extensõestem
suporte analíticorigoroso, apresentando testes de escalonabilidade que são
uma
extensãodo
original paraTaxa
Monotônica. «
Finalmente,
Taxa Monotônica
éum
algoritmo ótimo entre os algoritmosde
prioridade fixa,no
sentidoque
nenhum
outro algoritmo de prioridadefixa pode
escalonarum
conjuntode
tarefasque
oTM
não
consiga [LiuC73].Sua
implementação é simples (as prioridades são fixas), apresentando baixasobrecarga de escalonamento e
desempenho
aceitável.No
entanto, sua utilizaçãonão
é convenientequando o número
de tarefas esporádicas é grande,ou
na presença de tarefas periódicaschegando
dinamicamente ao sistema. [Obenza93] e [Klein94] oferecem
uma
visão atualizadada
posiçãodo
algoritmo
na comunidade
deTempo
Real.2.3.2.
ESCALONAMENTO
DINÃMICQ
O
escalonamento dinâmico incrementa a adaptabilidade e reconñgurabilidadedo
sistema frentea falhas
ou
eventos extemos,e
permite a ativação dinâmica de manipuladores de erro [Blake9l].As
decisões sao mais adequadas a
um
ambiente cambiante, por estarem baseadasem
informaçao atualizadasobre o estado
do
sistema.Apresentamos
aqui os principais algoritmos dinâmicos de escalonamento. Destaca-se entreeles o earliest deadline, por atingir o
máximo
nível teórico de utilização de processador e pela suaCapítulo 2:
O
Escalonamentoem
Sistemas de *Tempo Real Monoprocessador2.3.2.1.
EARLIES
T
DEADLINE
O
algoritmo earliest deadline(ED)
aplica-se a tarefascom
omodelo
temporal válido para taxamonotônica.
Em
todomomento
é executada a tarefa pronta de "deadline" mais próximo.Assumese
que
o
"deadline" deuma
instância de tarefa é otempo
de chegada dapróxima
instânciada mesma.
A
condição
'necessária e suficientede
escalonabilidade paraED
(Condição 2.2) mostra que, enquanto autilização total da
CPU
for inferior a100%,
todos os "dead1ines"do
sistema escalonadocom
ED
serãocumpridos. .
H4=
$9
U.-zzU,.=
lél
[31Condição
2.2:Condição
Necessária e Suficiente de Escalonabilidade para Earliest DeadlineExistem algumas variações úteis
do
ED:
o
EDL
(Earliest Deadline asLate
as possible)[Chetto89] escalona as tarefas o mais perto possível
do
:"deadline": desdeo
"deadline" para trás,em
direção ao
tempo
atual.EDL
é oposto aoED
tradicional,que
poderia serchamado
de
EDS
(EarliestDeadline as
Soon
as Possible) por escalonar a tarefao
mais perto possíveldo começo
do
período.O
escalonador inverso (EI) [Shih92] é
uma
heurística intermediária entre oEDS
eo
EDL,
que
escalonaas tarefas
em
ordem
decrescente detempo
de prontas, eo
mais perto possíveldo
"deadline".A
Figura 2.4 mostraum
conjunto de tarefas 'escalonado por estes algoritmos.2
EDSl×,×I.¢z|zBzIêIz._~
dt
5 'IO 1514
B
12
C
lO
I1>' ui»-=[_fu› .t>..1>.‹_Q (JO U.) ~> oq E ~m ÍOEDL
l$l*,\l,_
\0 15 FJH ~)> 0, _ ÍÇ‹¬ B I lIA!
..)-
'IO 15Capítulo'2:
O
Escalonamentoem
Sistemas de Tempo Real Monoprocessador[Chetto89] demonstra que a aplicação de
EDL
maximiza
o
tempo de
execução disponivel para atender requisições aperiódicas, apresentamétodos
parao
cálculo destetempo
e demonstraque
EDS
minimiza esse
tempo
aperiódico.No
mesmo
artigo é apresentadoum
teste de aceitação on-line paratarefas esporádicas. «
O
algoritmoED
pode
ainda ser utilizado para escalonar tarefasnão
periódicas. Neste caso, oescalonamento é
chamado
deadlinemonotônico
e sua condição necessária e suficientede
escalonabilidade, para
um
conjunto de tarefas ordenado portempo
de resposta crescente, é monstrada naCondição
2.3 [I-Ienn89]. ` H 1Lig"
g,(z)
z
zm,.(z),
o
é
zS
ao
A [41 ]=londe' g¡(t)
=
dt - t :tempo
parao
"deadline"dt : "deadline"
da
tarefait :
tempo
presentemj (t) :
tempo
de execução residual para completar a tarefaj
Condição
2.3:Condição
necessária e suficiente de escalonabilidade para deadlinemonotônico
p
Pelo restrito
modelo
temporal suportado, o earliest deadline originalnão
suporta sincronizaçãodas tarefas
no
acesso aos recursos compartilhadosdo
sistema.No
entanto, eletem
sido estendido paraisso através
do Kemelized Monitor
[Kopetz92]. [Mok84], o Protocolo LimiteDinâmico
de
Prioridade(Dynamic
Priority Ceiling Protocol) [Chen90] e a Política de Pilhade Recursos
(Stack ResourcePolicy -
SRP)
[Baker91].Os
servidores aperiódicosdo
taxamonotônica
podem
ser adaptados paramelhorar os
tempos médios
de respostado
ED
a requisições aperiódicas [Baker91].[Homa94]
.O
earliest deadline éum
algoritmo globalmente Ótimo [LiuC73], e ainda é Ótimo paraconjuntos
de
tarefas arbitrários, não necessariamente periódicos; sua provada
otimalidadepode
serachada
em
[Dert89].Sua
principal desvantagem é não ser estável, é dizer,não
garante quais as tarefasque cumprirão seus "deadlines"
em
condições de sobrecarga! _2.3.2.2.
MENOR F
OLGA
Menor
Folga (Least Laxity -LL)
éum
algoritmo preemptivo para tarefasdo modelo do
txaaCapítulo 2:
O
Escalonamentoem
Sistemas de Tempo Real Monoprocessador -máximo
que
o escalonadorpode
atrasar a execução da tarefa antes dela perder seu "deadline""corrente", sendo
uma
medida da
flexibilidade disponível para escalonaruma
tarefanum
dado
instante.folga(t)
f=max{
0,deadline
-'t-tempo_execução}
Menor
Folga apresenta amesma
condição de escalonabilidadeque o
earliest dealine, etambém
é ótimo
quando
otempo de
troca de contexto é desprezado [Audsley90].Como
o earliest dealine, éinstável frente a sobrecargas de processamento.
A
diferença principalcom
oED
éque o
LL
levaem
conta
o
tempo
de execução remanescente das tarefasno
seu cálculo.O
fenômeno
de trashing acontecequando
duasou
mais tarefastêm
folgas semelhantes.Quando
uma
delas executa, as outrasdiminuem
sua folga paulatinamente até ficarpor
baixodo
valor defolga
da
tarefa correntes;Ao
chegar neste ponto, a tarefa corrente perdea
CPU
paraalguma
dastarefas
com
folga inferior, e o ciclo se repete;como
resultado, as tarefasficam
se .revezandono
uso daCPU.
Se
otamanho do
slot de execução não for notoriamente maiorque
otempo
de trocade
contexto,a maior parte
do tempo
será gastoem
trocas de contexto ao invésdo
conjunto avançar efetivamente nasua execução. '
2. 3. 2. 3.
BIN-PA
CKING
Este algoritmo preemptivo apresenta
um
teste de escalonabilidade para tarefas esporádicasbaseado
no
EDL
e executa as tarefas segundoEDS
[Blake91] [Berry92] [Schwan92].O
tempo
do
processador é dividido
em
bins, que representam intervalos disjuntos detempo
arranjadoscronologicamente.
Cada
"bin"começa no tempo
de chegadaou
"deadline" deuma
tarefa, e vai até otempo
de chegadaou
"deadline" mais próximo.Quando
uma
tarefa chega, o escalonador calcula otempo
livre entre os binscom
tempos
finaismaiores
que
otempo
de pronta emenores
que o "deadline" da tarefa, para conferir setem
suficientepara escaloná-la.
Se
tiver,o
escalonador cria novos bins, compatíveiscom
otempo
de chegada datarefa e o mais perto possível
do
seu "deadline", e os incorpora à lista, ajustando finalmente asquantidades de
tempo
livre nos bins afetados e novos.Caso
contrário, anova
tarefa é rejeitada.A
filade prontos
do
despachante é ordenada segundoEDS,
pelo que sempre é executada a tarefa prontacom
tempo
decomeço
passado e "deadline" mais próximo.Capítulo 2:
O
Escalonamentoem
Sistemas de Tempo Real MonoprocessadorChegada
ide
A
I : : : : : : : : :As : - 5 10 Í5 2° S1: ,dt
A
10
20
B
õ
14
“eâzdâi
C
4
'IO 15 2° u¬iu¬u¬_QChegada
dec
l¢I..B..I_¢,|.,A..|
5 `IO 15 20 ' 1 : n.Ordem
Final
VdeE×e¢uÇã°
za-|Çl,,B.K|1°,|,.^,z|-
5 lO 15 20 'Figura 2.5: .Exemplo de Escalõnamento
com
algoritmo Bin-Packing 'O
algoritmopode
ser estendido para respeitar restrições sobre pedidosde
recursos, recursosque
podem
ser exclusivos (memória)ou
escalona'veis (displays, drivesde
disco).A
cada recursoescalonável associa-se
uma
lista de bins semelhante à da C_PU, que representao
tempo
do
recursodisponível: a análise de
um
pedido envolve o processamento simultâneode
várias listas diferentes debins [Blake9l].
[Schwan92]
estende o algoritmo para suportar tarefas periódicas e requisiçõescom
relações de precedência (igualando
o tempo
decomeço
da
tarefa seguintecom
o "deadline" daprecedente,
ou
ainda melhor, definindo ostempo
de inicio e "deadline"da
tarefa consequentecomo
posteriores aos da antecedente [LiuJ91]), junto
com
um
teste de aceitabilidadeem
tempo
polinomial.2.3.3.
ALGORITMOS
MISTOS
-MUF
,
Embora
flexível ecom
alta taxa de utilizaçãoda
CPU,
o uso exclusivo de escalonamentodinâmico não é apropriado por não oferecer garantias
em
caso de sobrecargada
CPU.
Estratégiasmistas
combinam
as melhores propriedades das abordagens estáticas e dinâmicas.Uma
delas consisteem
escalonar as tarefas mais críticas e de alta freqüência(como
o controlede
baixo nível)com
algoritmos estáticos garantidos tipo taxa monotônica, e
no tempo
restante servir as tarefasmenos
críticas e freqüêntes (controle