Você está na página 1de 20

Introduo

Na medida em que o uso de sistemas computacionais prolifera na sociedade atual,


aplicaescomrequisitosdetemporealtornamsecadavezmaiscomuns.

Essasaplicaesvariammuitoemrelaocomplexidadeesnecessidadesdegarantia
no atendimento de restries temporais.

Entre os sistemas mais simples, esto os controladores inteligentes embutidos em


utilidadesdomsticas,taiscomolavadorasderoupas,microondas,televisores, entre
outros.

Na outra extremidade do espectro de complexidade esto os sistemas militares de


defesa,ossistemasdecontroledeplantasindustriais(qumicasenucleares)eocontrole
detrfegoareoeferrovirio.

Algumasaplicaesdetemporealapresentamrestriesdetempomaisrigorosasdo
queoutras;entreesses,encontramseossistemasresponsveispelo

monitoramentodepacientesemhospitais,
sistemasdesupervisoe
controleemplantasindustriaiseos
sistemasembarcadosemrobseveculos(deautomveisataviesesondas
espaciais).

Entreaplicaesquenoapresentamrestriestocrticas,normalmente,socitadosos

vdeogames,
asteleconfernciasatravsdaInternete
asaplicaesdemultimdiaemgeral.

Todasessasaplicaesqueapresentamacaractersticaadicionaldeestaremsujeitasa
restriestemporais,soagrupadosnoqueusualmenteidentificadocomoSistemasde
TempoReal.

Metodologias e ferramentas convencionais so usadas, em uma prtica corrente, no


projeto e implementao de sistemas de tempo real. Esse modo convencional de
desenvolvimentonessesprojetosnohumapreocupaomaiordetratarotempode
umaformamaisexplcita,oquetornadifcilagarantiadeimplementaodasrestries
temporais

Desenvolvimento

Um Sistema de Tempo Real (STR) e um sistema computacional que deve reagir a


estimulosoriundosdoseuambienteemprazosespecificos.
O atendimento desses prazos resulta em requisitos de natureza temporal sobre o
comportamentodessessistemas.Emconseqncia,emcadareao,osistemadetempo
realdeveentregarumresultadocorretodentrodeumprazoespecfico,sobpenade
ocorrerumafalhatemporal.

Ocomportamentocorretodeumsistemadetemporeal,portanto,nodependesda
integridadedosresultadosobtidos(correolgicaoucorrectness)mastambmdos
valoresdetempoemquesoproduzidos(correotemporalou timeliness).Uma
reaoqueocorraalmdoprazoespecificadopodesersemutilidadeouatrepresentar
umaameaa.

Aconcepodosistemadetemporealdiretamenterelacionadacomoambienteno
qualestrelacionadoecomocomportamentotemporaldomesmo.

Adefinioparasistemasdetemporealsegundoalgunsautores.

APrevisibilidadenosSistemasdeTempoReal

Umadascrenasmaiscomunsqueoproblemadetemporealseresolvepelo
aumento da velocidade computacional. A rapidez de clculo visa melhorar o
desempenhodeumsistemacomputacional,minimizandootempoderespostamdiode
um conjunto de tarefas, enquanto o objetivo de um clculo em tempo real o
atendimento dos requisitos temporais de cadauma das atividades deprocessamento
caracterizadasnessessistemas

Terumtempoderespostacurto,nodnenhumagarantiaqueosrequisitostemporais
de cada processamento no sistema sero atendidos. O desempenho mdio no tem
importnciaparaocomportamentodeumsistemacompostodediversasatividadescom
restriestemporais.

Maisdoquearapidezdeclculo,paraossistemasdetemporeal,importaoconceitode
previsibilidade.

SistemaPrevisvel:
O comportamento do sistema pode ser antecipado, antes
de sua execuo
Precisa-se conhecer a priori o comportamento de um
sistema, levando-se em conta a pior situao de carga
ocorrendo, simultaneamente, com as hiptesesdefalhas.

Ahiptesedecarga: eladeterminaoquecorrespondeacargacomputacionaldepico
(cargamxima)geradapeloambienteemumintervalomnimodetempo,entrecada
reaodosistemadetemporeal.

Ahiptesedefalhas:eladescreveostipos efreqnciasdefalhas comosquais o


sistemadeveconviveremtempodeexecuo,continuandoaatenderosseusrequisitos
funcionaisetemporais.

Alem de fatores ligados a arquitetura do hardware, S.O e as linguagens de


programao

Tambm faz-se necessrio conhecer, os tempos gastos, no pior caso da


execuo dos cdigos da aplicao:

Uso de linguagens destinadas a programao de tempo real


Eliminam chamadas recursivas

Eliminam estruturas dinmicas de dados

So permitidos apenas laos limitados no tempo

Permitem expressar comportamentos temporais


atravs de construes apropriadas.

Outras caractersticas tambm influenciam na previsibilidade do


sistema

O hardware
Ex: Instrues prefetch e mecanismos de memria cache so
fontes de indeterminismo

O sistema operacional
Ex: Escalonamento de processos, memria virtual, sistemas de
arquivos, etc

Por causa desses fatores, para cada etapa do ciclo de


desenvolvimento de um Sistema de Tempo Real, torna-se necessrio
o uso de ferramentas e metodologias apropriadas que permitem
verificar o comportamento do sistema e sua implementao como
previsveis.
ClassificaodosSistemasdeTempoReal

Todas as tarefas de tempo real tipicamente estao sujeitas a prazos: os seus


"deadlines"eissodeveserrespeitado.Aprincipio,umatarefadeveserconcluidaantes
deseu"deadline".Asconsequenciasdeumatarefaserconcluidaapososeu"deadline"
definedoistiposdetarefasdetemporeal:

Dopontodevistadesegurana(safety):

SoftRealTimeSystems(nocrtico)

o quandoasconseqnciasdeumafalhadevidaaotempodamesma
ordemdegrandezaqueosbenefciosdosistemaemoperaonormal
(ex.Sistemadecmeradigital.Roteadorwireless.sistemadecomutao
telefnico).Odescumprimentodeumprazoocasionaldeumprazo
indesejvel,pormtolervel.
o Emoutraspalavras,essasfalhas,nomaximo,implicamnumadiminuicao
de desempenho do sistema. As falhas temporais nesse caso sao
identificadas como benignas onde a consequencia do desvio do
comportamentonormalnaorepresentaumcustomuitosignificativo.

HardRealTimeSystems(crtico)
o quandoasconseqnciasdepelomenosumafalhatemporalexcedamem
muitoosbenefciosnormaisdosistema(ex.sistemadecontroledevo,ou
desinalizaoemferrovias,sistemadecontroledeplantanuclear,marca
passocardaco,sistemaantimssil).Essasfalhaspodemsercatastrficas,as
quaispodemrepresentaremdanosirreversiveisemequipamentosouainda,
emperdadevidashumanas.
o Existemprazosabsolutosaosquaisdevemsercumpridos.

OgrupodeSistemasdeTempoRealCriticopodesersubdivididoem:

SegurosemCasodeFalha("failsafe")
o Umouvariosestadossegurospodemseratingidosemcasodefalha
o Ex: parada obrigatoria de trens no caso de falha do sistema de
sinalizacaoferroviario;
OperacionaisemCasodeFalha("failoperational")
o Napresencadefalhasparciais,podemsedegradarfornecendoalguma
formadeservicominimo
o Ex:sistemadecontroledevoocomcomportamentodegradado(algum
sensorfalha),porem,aindaseguro.

Dopontodevistadeimplementacao,ossistemasdetemporealpodemserclassificados
como:

SistemasdeRespostaGarantida("guaranteedresponsesystem")
o Onde existem recursos suficientes para suportar a carga de pico e o
cenariodefalhasdefinido.
o Sistemasdetemporealcriticodevemsersistemasderespostagarantida
SistemasdeMelhorEsforco("besteffortsystem")
o Quando a estrategia de alocacao dinamica de recursos se baseia em
estudos probabilistas sobre a carga esperada e os cenarios de falhas
aceitaveis.
o Satisfatorioapenasparasistemasdetemporealnaocritico!

Podesegarantirqueumsistemadetemporealcriticoestacorretoquando

O servico solicitado deve obter respostas de acordo com o comportamento


esperado.(Corretudefuncionalfunctionalcorrectness)
Oservicosolicitadoegarantidodeserconcluidodentrodolimitedetempo
restrito(deadline)(Corretudedetempotimingcorrectness

ModelodeTarefas

Tarefas ou processos formam as unidades de processamento sequencial que


concorremsobreumoumaisrecursoscomputacionaisdeumsistema.Umasimples
aplicacaodetemporealeconstituidatipicamentedevariastarefas.

Deacordocomocumprimentododeadline,astarefaspodemser:

Tarefascrticas(tarefashard)
o Devesercompletadaatoseudeadline
o Se completada aps seu deadline pode causar falhas catastrficas no
sistemadetemporealeemseuambiente
Tarefasnocrticasoubrandas(tarefassoft)
o Podem ser completadas aps seu deadline, porm implicando numa
diminuiododesempenhodosistema.

Astarefasemsistemasdetemporealestabaseadanaregularidadedesuasativacoes.Os
modelos de tarefa comportam dois tipos de tarefas segundo suas frequencias de
ativacoes:

Tarefas Periodicas: Quando as ativacoes do processamento de uma tarefa


ocorrem, numa sequencia infinita, uma so ativacao por intervalo regular
chamadodePeriodo,essatarefaeidentificadacomoperiodica.Usualmenteso
associadasadeadlineshard.

Tarefas Aperiodicas ou Tarefas Assincronas: Quando a ativacao do


processamentodeumatarefarespondeaeventosinternosouexternosdefinindo
uma caracteristica aleatoria nessas ativacoes, a tarefa e dita aperiodica.
Usualmentesoassociadasadeadlinessoft.

Temsetambmoquesechamade tarefasesporadicas quecorrespondemaum


subconjunto das tarefas aperiodicas. Estas presentam como caracteristica central a
restricaodeumintervalominimoconhecidoentreduasativacoesconsecutivasepor
isso,podemteratributosdetarefascriticas.

Dependendodomodelodetarefasassumidootempodeliberacaopodeounaocoincidir
comotempodechegadadatarefa.

Emgeraleassumidoquetaologoumainstanciadeumatarefachegue,amesmae
liberadanafiladePronto.

Mas,nemsempreesseeocaso;umatarefapodeserretardadanasualiberacaopelo
"polling"deumescalonadorativadoportempooutalvezpelobloqueionarecepcaode
umamensagem.

Essanaocoincidenciadostemposdechegadacomasliberacoesdatarefaconduzaoque
eidentificadocomo"ReleaseJitter",querepresentaamaximavariacaodostemposde
liberacaodasinstanciasdatarefa.

Diantedasrestricoestemporaiscitadastemosentaoocomportamentotemporalde
umatarefaperiodicaTidescritopelaformulaabaixo,ondeCirepresentao
tempodecomputacaodatarefa,Pieoperiododatarefa,Dieo"deadline"eJieo
"ReleaseJitter"datarefa.
Outrasrestriestemporaissoimportantesnadefiniodocomportamentotemporalde
umatarefa:

Tempodecomputao("ComputationTime"):Otempodecomputaodeumatarefa
otemponecessrioparaaexecuocompletadatarefa.

Tempo de incio ("Start Time"): Esse tempo corresponde ao instante de incio do


processamentodatarefaemumaativao.

Tempodetrmino("CompletionTime"):oinstantedetempoemquesecompletaa
execuodatarefanaativao.

Tempodechegada("ArrivalTime"):Otempodechegadadeumatarefaoinstanteem
que o escalonador toma conhecimento de uma ativao dessa tarefa. Em tarefas
peridicas,otempodechegadacoincidesemprecomoinciodoperododaativao.
Astarefasaperidicasapresentamotempodechegadacoincidindocomotempoda
requisiodoprocessamentoaperidico.

Tempodeliberao ("ReleaseTime"):Otempodeliberaodeumatarefacoincide
comoinstantedesuainclusonafiladePronto(filadetarefasprontas)paraexecutar.

Uma observao importante a se condiserar que, muitas vezes, os


processamentos no podem executar em ordem arbitrria, pois uma
tarefa Tj precedida de uma tarefa Ti, s pode iniciar a sua execuo
aps o trmino de Ti, precedncia gerada por causa das
dependncias das informaes que a tarefa Ti possui para execuo
da tarefa Tj. Dessa forma as escalas produzidas devem refletir as
ordens parciais definidas atravs destas relaes.

Uma tarefa Tj precedida por uma outra Ti (Ti Tj), se Tj pode iniciar
sua execuo somente aps o trmino da execuo de Ti

Escalonamento ("scheduling")

O termo escalonamento ("scheduling") identifica o procedimento de


ordenar tarefas na fila de Pronto atravs de um algoritmo de
escalonamento.

Uma escala de execuo ("schedule") ento uma ordenao ou lista


que indica a ordem de ocupao do processador por um conjunto de
tarefas disponveis na fila de Pronto.

O escalonador ("scheduler") o componente do sistema responsvel


em tempo de execuo pela gesto do processador. E o escalonador
que implementa uma poltica de escalonamento ao ordenar para
execuo sobre o processador um conjunto de tarefas.

Um algoritmo de escalonamento podem ser:

No-preemptivo: Em qualquer momento tarefas executando no


podem ser interrompidas por outras mais prioritrias.
Escolhe um processo para executar e, ento, o deixa executar
at que seja bloqueado (e.g. a espera de uma operao de E/S
ou outro processo) ou at que voluntariamente libere a CPU.

Preemptivo: Em qualquer momento tarefas executando podem


ser interrompidas por outras mais prioritrias.
Escolhe um processo e o deixa em execuo por um tempo
mximo fixado (uso de um temporizador - relgio) ou at que
um outro processo tenha prioridade de executar sobre o outro.
Mudana de prioridade, menor tempo restante, etc.

Algoritmos de escalonamento de sistemas de tempo real podem ser:


Off-line: Clculo da escala feito tomando como base
parmetros atribudos as tarefas do conjunto em tempo de
projeto (parmetros fixos).
On-line: A escala baseada em parmetros que mudam em
tempo de execuo com a evoluo do sistema.

Carga Computacional
Somatrio dos tempos de computao do conjunto de tarefas na fila
de Prontos em determinado instante

O conhecimento da carga computacional permite que se obtenha


garantias em tempo de projeto sobre a escalonabilidade de um
conjunto de tarefas

Carga esttica ou limitada


o Quando todas as suas tarefas so bem conhecidas em
tempo de projeto na forma de suas restries temporais
Tempos de chegada (arrival times) conhecidos
o Modeladas atravs de tarefas peridicas e espordicas
o Permite tratamento de pior caso em tempo de projeto

Carga dinmica ou ilimitada


o Caractersticas de chegada das tarefas no podem ser
antecipadas
Modeladas atravs de tarefas aperidicas com
intervalo mnimo entre requisies sendo zero
o No permite um tratamento de pior caso em tempo de
projeto

Abordagens de Escalonamento

Diferentes abordagens de escalonamento so identificadas,


tomando como base o tipo de carga tratado. Existem trs grupos
principais de abordagens de escalonamento de tempo real

Com garantia em tempo de projeto ("off- line guarantee")

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.
Prprios para aplicaes crticas.

Sub-divises:
o executivo cclico teste de escalonabilidade e a produo
de escala so realizados em tempo de projeto.

o escalonamentos dirigidos a prioridades teste de


escalonabilidade realizado em tempo de projeto e
produo de escala on line.

Com garantia em tempo de execuo ("on-line guarantee")


Realiza teste de aceitao de uma terefa em tempo de
execuo
So prprias para aplicaes que possuam restries crticas
mas que operam em ambientes no deterministas.

Abordagens de melhor esforo ("best-effort").


Constitudas por algoritmos que tentam encontrar uma escala
realizvel em tempo de execuo sem realizar testes ou ainda,
realizando testes mais fracos
adequadas para aplicaes no crticas, envolvendo tarefas
"soft" onde a perda de "deadlines" no representa custos alm
da diminuio do desempenho nessas aplicaes
Escalonamento de tarefas peridicas

Taxa Monotonica (Rate Monotonic)

Produz escalas em tempo de execuo atravs de


escalonadores preemptivos, dirigidos a prioridades. E um esquema de
prioridade fixa; o que define ento, o RM como escalonamento
esttico e on-line.

As premissas do RM que facilitam as anlises de


escalonabilidade, definem um modelo de tarefas bastante simples :

a. As tarefas so peridicas e independentes.


b. O "deadline" de cada tarefa coincide com o seu perodo
(Di=Pi).
c. O tempo de computao (Ci) de cada tarefa conhecido e
constante (Worst
Case Computation Time).
d. O tempo de chaveamento entre tarefas assumido como
nulo.

Teste de escalonabilidade em tempo de projeto:

, U = utilizao n n de tarefas.
Escalonamento de Tarefas Aperidicas
Escalonamentodetarefasaperidicasemabordagensmistas,envolvendo
tarefascrticasenocrticas.Astarefasperidicassoassumidascomocrticas,
necessitandodegarantiasemtempodeprojetoparacondiesdepiorcaso.As
tarefasaperidicaspodemenvolverdiferentesrequisitostemporais:crticos,no
crticosouaindasemrequisitostemporais.

Servidorde"Background"

Aidiacentralcorrespondeematenderasrequisiesaperidicasquando
afila deprontos envolvendotarefas peridicas estvazia, ouseja, setarefas
peridicasnoestoseexecutandooupendentes,oprocessadorentregueparaa
carga aperidica. Apresenta tempos de respostas muito altos para cargas
aperidicas.

O BS bastante simples na sua implementao, porm s aplicvel


quandoasrequisiesaperidicasnosocrticaseacargaperidicanoalta.
Outras etratgias de escalonamento de tarefas aperidicas
incluem o "Polling Server" e o Deferrable Server.

Servidor de "Background"

"Polling Server"
"Deferrable Server
Sporadic Server

Alguns autores consideram o uso do EDF para escalonamento


de tarefas aperidicas.

Exempos de linguagens
Aspectos importantes a se considerar na escolha da linguagem
de tempo real a ser utilizada:

Granularidade

Isso depende do que voc est medindo, se voc estiver


trabalhando com:
As temperaturas no tempo, uma leitura a cada 10 minutos
poderia ser suficiente

Altura ou peso das pessoas, uma ou talvez quatro lidas


por dia

Status de um servidor, entre 1 segundo a


aproximadamente 1 hora

Contagem de coliso atomica: escala de tempo


extremamente pequeno

Leitura baseada em eventos

A maneira certa (melhor) para coletar dados baseada no


evento de mudana de valor, sempre que o dispositivo o permitir.

Sua ferramenta no deve fazer polling valores do dispositivo,


mas o dispositivo que tem que enviar valores para sua ferramenta,
quando eles mudamrem.

Isso poderia ser feito usando um gatilho de interrupo de


hardware ou usando protocolo de porta como RS-232 para ficar
escutando em alguma porta serial, para amostra.

Ambiente de monitoramento

A ltima coisa a se atentar como o usurio ir interagir com a


ferramente.

Se voc estiver construindo um dispositivo autonomo


embarcado, como um robo, voc pode usar bibliotecas grficas para
interagir com tela sensvel ao toque.

Se o usurio do sistema vai utilizar um monitor antigo


monocromtico, usando uma pssima conexo de internet e
processador de pequeno porte. Independete da aplicao, o projetista
tem que ter em mentes esses detalhes.

Considerando essas informaes, que linguagem de


programao deve-se escolher?

A partir da, a escolha da lngua ampla e depende claramente


dos seguintes aspectos:

Conhecimento do projetista
Granularidade solicitada
A quantidade de tempo e dinheiro que se tem para construir a
ferramenta
Atraso, equipe de projeto
Tipo de dispositivo
Tipo de monitoramento
Algumas outras razes polticas

Algumas linguagens de STR so: JavaRTS, IBM's WebSphere Real-


Time, Aonix PERC, aicas JamaicaVM, Apogee Aphelion.

Você também pode gostar