Linguagens de programação para sistemas de tempo real

Download (0)

Full text

(1)

Li

Ling

ngu

uag

agen

ens d

s de p

e pro

rogr

gram

amaç

ação

ão pa

para

ra si

sist

stem

emas

as de

de te

tem

mpo

po re

real

al

Diego Márcio Alberto Diego Márcio Alberto UFOP – Universidade Federal De Ouro UFOP – Universidade Federal De Ouro PretoPreto

Ouro Preto, Minas Gerais, Brasil Ouro Preto, Minas Gerais, Brasil

dmalberto@outlook.com dmalberto@outlook.com

12 de março de 2017 12 de março de 2017

Resumo:

Resumo: OOss ssiisstteemmaass ddee tteemmppoo rreeaall,, aalléémm ddee nneecceessssiittaarr ccuummpprriirr ooss rreeqquuiissititooss ddaass aapplliicacaçõçõeess ffuunncciioonnaaiiss,,

ttaammbbéémm pprreecciissaamm ccuummpprriirr ooss rreeqquuiissititooss nnããoo ffuunncciioonnaaiiss,, ccoommoo,, pprriinncciippaallmmeennttee,, rreessttrriiçõçõeess tteemmppoorraaiiss ee ddee memória.

memória. PPararaa oo dedesesenvnvololvivimementntoo dede aaplplicicaçaçõeõess ppararaa esestetess sisiststememasas,, popodede-s-see ututililizizarar dadass cicincncoo prprinincicippaiaiss lilingnguauagegensns dede prprogograramamaçãçãoo dede tetempmpoo rerealal:: AsAssesembmblyly,, C,C, C+C++,+, AdAdaa ee JaJavava.. AA ututililizizaçaçãoão dede cacadada umumaa dedelalass vavaririaa na

na bubuscscaa emem eqequiuililibrbrarar aa poportrtababililididadade,e, flflexexibibililididadade,e, ababststraraçãção,o, mamaninipupulalaçãçãoo dede rerecucursrsosos ee prprevevisisibibililididadadee dede aacocordrdoo cocomm cacaddaa prprojojeteto.o. QuQuanandodo sese ququerer umum prproogrgramamaa emem mamaisis babaixixoo nnívívelel,, ututililiziza-a-sese oo AAssssememblbly.y. CComom esestata lilingnguauagegemm éé pposossísívevell teterr cocontntrorolele dede vávárrioioss rerecucurrsososs ee grgranandede prprevevisisibibililididadade.e. AA lilingnguauagegemm CC foforrnenecece umum bobomm ní

nívevell dede ababststraraçãção,o, tatambmbémém pepermrmititinindodo acacesessoso aoaoss dedetatalhlheses dodo hahardrdwawarere.. DeDevividodo aoaoss ininúmúmererosos cocompmpililadadororeses ex

exisistetentnteses paparara esestata linlinguguagagemem,, popodedemomoss dizdizerer ququee éé umumaa lilingnguauagegemm dede grgranandede poportrtababililididadade.e. AA lilingnguauagegemm C+C+++ fo

fornrnececee umumaa ababorordadagegemm mamaisis amamigigávávelel nono dedesesenvnvololvivimementntoo dadass apaplilicacaçõçõeses,, poporr seserr ororieientntadadaa aa obobjejetotos.s. EsEstata lilingnguauagegemm gegerara umum mamaioiorr grgrauau dede ababststraraçãçãoo ee fafacicililitata asaspepectctosos dede momodedelalagegemm dodo prprojojeteto,o, memelhlhororanandodo asassisimm aa fl

flexexibibililididadade.e. AA lilingnguuagagemem CC++++ popossssuiui dedesvsvaantntagagemem nana pporortatabibililidadadede,, popoisis seseusus cocommpipilaladdororeses nãnãoo sãsãoo tãtãoo aabbuunnddaanntteess ccoommoo nnaa lliinngguuaaggeemm CC.. AA lliinngguuaaggeemm AAddaa éé ccoonnssiiddeerraaddaa aa lliinngguuaaggeemm mmaaiiss eeqquuiilliibbrraaddaa.. SSuuaa ppoorrttaabbiilliiddaaddee éé rraazzooáávveell,, ppoorréémm aapprreesseennttaa óóttiimmaa fflleexxiibbiilliiddaaddee,, aabbssttrraaççããoo,, mmaanniippuullaaççããoo ddee rreeccuurrssooss ee pr

prevevisisibibiliilidadadede.. EnEntrtretetanantoto,, susuaa alaltata cocompmplelexixidadadede acacababaa aa afafasastatandndoo dede pepeququenenasas apapliclicaçaçõeões.s. AA lilingnguauagegemm JaJavava R

RTT ppoossssuuii eexxcceelleennttee ppoorrttaabbiilliiddaaddee,, fflleexxiibbiilliiddaaddee ee aabbssttrraaççããoo,, ppoorréémm,, aa mmaanniippuullaaççããoo ddee rreeccuurrssooss ee aa previsibilidade são desvantagem em relação às as outras linguagens.

previsibilidade são desvantagem em relação às as outras linguagens.

Pal

Palavravrasas ChaChave:ve: sisiststememasas emem tetempmpoo rerealal,, lilingnguauagegensns dede prprogograramamaçãção,o, sisiststememasas opopereracacioionanaisis dede tetempmpoo rerealal,,

 Ada, Assembly, C, C++, Java  Ada, Assembly, C, C++, Java

1 Introdução 1 Introdução

N

Nooss úúllttiimmooss aannooss,, ccoomm aa eevvoolluuççããoo ddaass aapplliiccaaççõõeess ccoommppuuttaacciioonnaaiiss,, ooccoorrrreeuu ttaammbbéémm oo aauummeennttoo ddaa uuttiilliizzaaççããoo ddooss ssiisstteemmaass eemmbbaarrccaaddooss.. Di

Direretatamementntee prpropopororciocionanall aa esestete auaumementnto,o, elelevevouou-s-see aa ccoommpplleexxiiddaaddee ddooss pprroojjeettooss,, ee ppaarraa aatteennddeerr aa eessttaa ddememanandada dede prprojojeetotos,s, foforramam nenececessssáráriaiass memelhlhororiaiass nnooss ssiisstteemmaass ooppeerraacciioonnaaiiss qquuee eexxeeccuuttaamm aass aplicações embarcadas.

aplicações embarcadas. N

Neessttee ccoonntteexxttoo,, hhoouuvvee nneecceessssiiddaaddee ddee ddeesseennvvoollvviimmeennttoo ddee uumm ggrruuppoo ddee ssiisstteemmaass ppaarraa ger

gerencenciamiamententoo dede resrestritriçõeçõess dede temtempo.po. EstEsteses sissistemtemasas ssããoo cchhaammaaddooss ddee ssiisstteemmaass ddee tteemmppoo rreeaall.. AAlléémm ddee eexexecucutatareremm asas tatarerefafass dede prprococesessasamementntoo ee cocontntrorolele de

de ininfoformrmaçaçõeões,s, esestetess sisiststememasas popossssueuemm rerespsposostatass aoao aammbbiieennttee ddaaddaass eemm uumm tteemmppoo hháábbiill,, eevviittaannddoo qquuee

ocorra um estado inconsistente ou inválido. ocorra um estado inconsistente ou inválido.

S

Siisstteemmaa ddee tteemmppoo rreeaall éé ddeeffiinniiddoo ccoommoo uumm ge

gererencnciaiadodorr dede rerecucursrsosos dede umum sisiststememaa cocompmpututacacioionanall aattrraavvééss ddee uumm ssiisstteemmaa ooppeerraacciioonnaall ddee tteemmppoo rreeaall,, oonnddee,, aalléémm ddee nneecceessssititaarr ccuummpprririr ooss rreeqquuiissiittooss ddaass aapplliiccaaççõõeess ffuunncciioonnaaiiss,, ddeevvee ggaarraannttiirr qquuee ttooddooss ooss ev

evenentotoss sesejajamm atatenendididodoss dedentntroro dede susuasas rereststririçõçõeses dede tempo, sendo gerenciados de forma eficiente.

tempo, sendo gerenciados de forma eficiente. O

O ddeesseennvvoollvviimmeennttoo ddaass aapplliiccaaççõõeess qquuee op

opereramam nonoss sisiststememasas dede tetempmpoo rerealal,, totornrnouou nenececessssárárioio oo uussoo ddee lliningguuaaggeennss pprrooggrraammaaççããoo eessppeeccííffiiccaass qquuee at

atenendedessssemem cacadada rereququisiisitoto.. EsEstatass linlinguguagagenenss tatambmbémém ddeevveerriiaamm aatteennddeerr aa ppoorrttaabbiilliiddaaddee,, fflleexxiibbiilliiddaaddee,, ab

abststraraçãção,o, mamaninipupulalaçãçãoo dede rerecucursrsosos ee prprevevisisibibililididadadee ddee tteemmppoo ddee aaccoorrddoo ccoomm ccaaddaa pprroojjeettoo.. LLiinngguuaaggeennss qquuee aatteennddeemm eesssseess rreeqquuiissiittooss ssããoo cchhaammaaddaass ddee

(2)

lilingnguauagegemm dede prprogograramamaçãçãoo paparara sisiststememasas dede tetempmpoo real.

real.

 As

 As linguagenslinguagens dede programaçãoprogramação dede tempotempo realreal ppooddeemm sseerreemm uuttiilliizzaaddaass ddee mmooddoo qquuee aass ppaarrttiiccuullaarriiddaaddeess ddaa lliinngguuaaggeemm aatteennddaamm ààss ppaarrttiiccuullaarriiddaaddeess ddee ddiivveerrssaass aapplliiccaaççõõeess qquuee necessitam de gerenciamento de restrições.

necessitam de gerenciamento de restrições. N

Neessttee aarrttiiggoo,, aapprreesseennttaamm--ssee aass pprriinncciippaaiiss lilingnguauagegensns dede prprogograramamaçãçãoo ututiliilizazadadass emem sisiststememasas dede tteemmppoo rreeaall:: AAsssseemmbbllyy,, CC,, CC++++,, AAddaa ee JJaavvaa.. EEssttaass lilingnguauagegensns teterãrãoo rerelalatatadadass susuasas cacararactctererísístiticacas,s, bebemm ccoommoo ssuuaass mmeellhhoorreess aapplliiccaaççõõeess ddee aaccoorrddoo ccoomm aass restrições.

restrições.

2 Sistema de tempo real 2 Sistema de tempo real

S

Siisstteemmaass ddee tteemmppoo rreeaall ssããoo ssiisstteemmaass qquuee pposossusuemem rereststrriçiçãoão dede tetempmpo.o. SSuauass tatarerefafass prprececisisamam sseerr ccuummpprriiddaass ddeennttrroo ddee uumm tteemmppoo ccrrííttiiccoo,, lliimmiittaaddoo pelo

pelo deadlinedeadline.. OO deadlinedeadline vavaririaa dede tatarerefafa ppararaa tatarerefafa

ddee aaccoorrddoo ccoomm aa aapplliiccaaççããoo,, ddeevveennddoo sseerr ccuummpprriiddoo in

indedepependndenentete dada cacarrgaga ddoo sisiststememaa.. NNumum sisiststememaa dede te

tempmpoo rerealal,, oo tetempmpoo dede exexececuçuçãoão dadass tatarerefafass éé crcrítíticico,o, nnããoo aappeennaass uumm ffaattoorr ddee ppeerrffoorrmmaannccee.. AA eexxeeccuuççããoo ccoorrrreettaa ddee pprrooggrraammaa ddee tteemmppoo rreeaall nnããoo éé bbaasseeaaddaa ap

apenenasas nana lólógigicaca dede susuaa exexececuçuçãoão,, mamass nono seseuu tetempmpoo de execução [LAP 97].

de execução [LAP 97]. C

Coonnffoorrmmee SSeelliicc [[SSEELL 9944]],, aass aapplliicacaçõçõeess ddee te

tempmpoo rereaall popodedemm seserr clclasassisifificacadadass dede duduasas foformrmasas::

so

softft rerealal-t-timimee ouou harhardd reareal-tl-timeime.. EEmm ssoofftt rreeaall--ttiimmee,, oo

te

tempmpoo dede exexececuçuçãoão éé crcrítíticico,o, mmasas popossssívíveieiss atatrarasososs ap

apenenasas dedegrgradadamam aa ququalalididadadee dada rerespsposostata dodo sisiststemema.a. O

O ssiisstteemmaa ccoossttuummaa ggaarraannttiirr uumm tteemmppoo ddee eexxeeccuuççããoo ap

apenenasas prprobobababililísístiticoco,, sesendndoo ququee aa mamaioioririaa dadass tatarerefafass éé exexececututadadaa nono prprazazo.o. SãSãoo exexememplplosos:: TrTranansmsmisissãsãoo dede ááududioio/v/vídídeoeo rereaal-l-titimeme,, sisiststememasas dede babancncosos dede dadadodoss in

intetegrgradadosos (b(banancocos,s, susupepermrmerercacadodos,s, etetc.c.)) ee sisiststememasas de

de memedidiçãçãoo (s(satatélélititeses,, mimicrcrososcócópipiosos,, etetc.c.).). JáJá nonoss hahardrd rreeaall--ttiimmee,, oo tteemmppoo ddee eexxeeccuuççããoo éé aabbssoolluuttaammeennttee ccrrííttiiccoo ee nnããoo ttoolleerraa aattrraassooss.. UUmmaa ooppeerraaççããoo qquuee nnããoo ccuummpprraa oo deadlinedeadline éé ccoonnssiiddeerraaddaa iinnúúttiill.. OO ssiisstteemmaa

de

deveve gagararantntirir umum tetempmpoo dede exexececuçuçãoão dedetetermrmininísístiticoco,, to

todadass asas tatarerefafass sãsãoo gagararantntididasas dede exexececututarar nono prprazazo.o. P

Poorr eexxeemmpplloo:: EEqquuiippaammeennttooss mmééddiiccooss,, ffrreeiiooss automotivos e sistemas de navegação.

automotivos e sistemas de navegação.

3 Sistemas operacionais de tempo real 3 Sistemas operacionais de tempo real

O

O sisiststememaa opopereracacioionanall éé oo prprogograramama memeststrere.. E

Ellee ddeecciiddee qquuaall ttaarreeffaa eexxeeccuuttaarr nnoo pprroocceessssaaddoorr ee rreeaalliizzaa aass ttrrooccaass ddee ccoonntteexxttoo rreeqquueerriiddaass.. ÉÉ

rresespoponsnsávávelel pepelala ororgaganinizazaçãçãoo dede totododo oo trtrababalalhoho dodo processador.

processador. Po

Portrtanantoto,, aa exexececuçuçãoão ee acacesessoso aoaoss rerecucursrsosos nneecceessssáárriiooss aaooss pprroocceessssooss ccoonnccoorrrreenntteess ssããoo co

contntrorolaladodoss pepelolo sisiststememaa opopereracacioionanal.l. GeGeraralmlmenentete nono tr

trababalalhoho coconcncororrerentnte,e, éé cocomumumm hahaveverr umumaa ququanantitidadadede rrazazoáoávevell dede tatarerefafass exexececututananddoo coconcncororrerentntememenentete,, aallgguummaass sseennddoo ssuussppeennssaass ppeellaa cchheeggaaddaa ddee uummaa en

entrtradadaa ququee dedeveve seserr atatenendididada imimedediaiatatamementnte,e, ououtrtrasas sseennddoo aattiivvaaddaass ppoorrqquuee rreecceebbeerraamm ooss ddaaddooss qquuee necessitavam para sua ativação

necessitavam para sua ativação [SCHMIDT 2001].[SCHMIDT 2001]. U

Umm ssiisstteemmaa ooppeerraacciioonnaall ddee tteemmppoo rreeaall ((RRTTOOSS)),, éé uumm ssiisstteemmaa ooppeerraacciioonnaall ddeessttiinnaaddoo àà eexxeeccuuççããoo ddee mmúúllttiippllaass ttaarreeffaass,, oonnddee oo tteemmppoo ddee rreessppoossttaa aa uumm eevveennttoo ((eexxtteerrnnoo oouu iinntteerrnnoo)) éé pr

pré-é-dedefifininidodo.. SãSãoo sissistetemamass cocompmpututacacioionanaisis nonoss ququaiaiss ppooddeemm ggaarraannttiirr qquuee ttooddaass aass ffuunnççõõeess pprrooggrraammaaddaass se

serrãoão eexexecucutatadadass emem umum ininteterrvavalolo mámáxiximomo dede tetempmpoo ddeeffiinniiddoo ppaarraa ccaaddaa ffuunnççããoo eemm ttooddaa ee qquuaallqquueer  r   m

moommeennttoo [[WWoollff 22000022]].. OO eelleemmeennttoo cchhaavvee qquuee ddiiffeerreenncciiaa uumm RRTTOOSS ddee uumm ssiisstteemmaa ooppeerraacciioonnaall convencional é o escalonador.

convencional é o escalonador. O

O eessccaalloonnaaddoorr vviissaa,, pprriinncciippaallmmeennttee,, sa

satitisfsfazazerer osos rereququisisititosos tetempmpororaiaiss dadass tatarerefafass aa fifimm dede cu

cumpmpririrr oo deadlinedeadline.. CoComomo cacadada sisiststememaa imimpplelemementnta,a,

na

na mmaiaiororiaia dadass vevezezes,s, alalgogorrititmomoss dede esescacalolonnamamenentoto ddiiffeerreenntteess,, aallgguunnss ssããoo aappttooss ppaarraa ddeetteerrmmiinnaaddaass ttaarreeffaass eennqquuaannttoo oouuttrrooss ssããoo mmeellhhoorreess ppaarraa oouuttrraass aplicações.

aplicações. Um

Um sisiststememaa opopeeraraciciononalal dede ttemempopo rreaeall dedeveve aattuuaarr bbaassiiccaammeennttee eemm ssiisstteemmaass ddee ccoonnttrroollee,, rreessppoonnssáávveeiiss ppoorr rreessppoonnddeerr aaooss eessttíímmuullooss ddoo aammbbiieennttee eemm tteemmppoo hháábbiill.. TTaammbbéémm éé uuttiilliizzaaddoo eemm in

inteterfrfacaceses dede enentrtradadaa ee sasaídída,a, poportrtasas dede cocomumuninicacaçãçãoo eennttrree oo ssiisstteemmaa ddee coconnttrroollee ee oo ssiisstteemmaa ccoonnttrroollaaddoo.. D

Duauass imimpoportrtanantetess cacararactctererísístiticacass ddesestete sisiststeemama éé aa previsibilidade e a confiabilidade [Baker 1990].

previsibilidade e a confiabilidade [Baker 1990].  A

 A previsibilidadeprevisibilidade éé umauma importanteimportante pprroopprriieeddaaddee ddee uumm ssiisstteemmaa eemm tteemmppoo rreeaall,, ddiittaannddoo se

seuu cocompmporortatamementntoo fufuncncioionanall ee tetempmpororalal ququee dedeveve seser r  tã

tãoo dedetetermrmininísístiticoco ququanantoto imimpõpõee asas esespepecifcificaicaçõçõeses dodo si

siststemema.a. AA coconfnfiaiabibililidadadede esestátá rerelalaciciononadadaa àà exexatatididãoão nnoo ffuunncciioonnaammeennttoo ddoo ssiisstteemmaa,, oouu sseejjaa,, aa ffaallhhaa ddoo si

siststememaa éé ququee popodede gegerararr umumaa rerespsposostata foforara dodo tetempmpoo esperado.

esperado.

4 Linguagens de Programação de tempo real 4 Linguagens de Programação de tempo real

U

(3)

m

mééttooddoo uuttiilliizzaaddoo ppaarraa ffaazzeerr uummaa ccoommuunniiccaaççããoo ddee in

inststruruçõçõeses papadrdrononizizadadasas paparara umum cocompmpututadadoror.. CaCadada lilingnguauagegemm popossussuii susuaa prprópópririaa sesemâmântnticaica ee sisintntaxaxee ququee devem ser seguidas pelo programador.

devem ser seguidas pelo programador. O

O coconjnjununtoto dede ininststruruçõçõeses,, tatambmbémém chchamamadadoo ddee aallggoorriittmmoo,, ppeerrmmiittee qquuee oo ccoommppuuttaaddoorr eexxeeccuuttee ex

exatatamamenentete asas tatarerefafass dedefifininidadass pepelolo prprogograramamadodorr nono código escrito.

código escrito. Ex

Exisistetemm váváririosos titipoposs dede lilingnguauagegensns,, cacadada umumaa co

comm susuaa prpropopririededadadee ee esespepecicifificacaçãção.o. PaParara sisiststememasas ddee tteemmppoo rreeaall,, aass mmaaiiss ccoommuunnss ssããoo:: AAsssseemmbbllyy,, AAddaa,, C, C++ e Java.

C, C++ e Java.

4.1 Assembly 4.1 Assembly

C

Coonnhheecciiddaa ccoommoo uummaa lliinngguuaaggeemm ddee pr

progograramamaçãçãoo prprimimititiviva,a, oo AsAssesembmblyly éé umumaa lilingnguauagegemm ddee bbaaiixxoo nníívveell ee aammppllaammeennttee uuttiilliizzaaddaa eemm ssiisstteemmaass em

embabarcrcadadosos.. EsEstata lilingnguauagegemm éé babasese paparara aa crcriaiaçãçãoo dede lliinngguuaaggeennss ddee aallttoo nníívveell,, ccoommoo CC ee BB.. ““AA mmaaiioorriiaa ((ddaass lilingnguauagegensns)) teteveve tetempmpoo dede vividada ee ututililididadadee lilimimitatadodos,s, eenqnquauantntoo alalgugumamass titiveveraramm amamplploo susucecessssoo emem uumm ouou ma

maisis dodomímíniniosos dede apapliclicaçaçõeões.s. MuMuititasas dedesesempmpenenhahararamm uumm ppapapelel imimpoportrtanantete nana ininuuênênciciaa sosobbrere oo prprojojetetoo dede fut

futuraurass linlinguaguagengens.”s.” ((AlAllelenn B.B. TTucuckeker,r, LiLingnguauagegensns dede Programação Princípios e Paradigmas)

Programação Princípios e Paradigmas) D

Deevviiddoo aaoo ffaattoo ddee sseerr uummaa lliinngguuaaggeemm ddee ba

baixixoo nínívevel,l, oo AsAssesembmblyly prpropopororciciononaa tototatall cocontntrorolele aoao pr

progograramamadodorr sosobrbree aa plplatatafaforormama.. ApAplilicacaçõçõeses ququee sãsãoo de

desesenvnvololvividadass nenessssaa lilingnguauagegemm popossssueuemm oo cocontntrorolele ttoottaall ssoobbrree oo hhaarrddwwaarree ddeevviiddoo aaoo aacceessssoo ddiirreettoo,, car

caractacteríerístisticaca necnecessessáriáriaa parparaa umauma maimaioror manmanipuipulaçlaçãoão ddee rreeccuurrssooss.. SSuuaa pprreevviissiibbiilliiddaaddee,, iitteemm ddee ggrraannddee iimmppoorrttâânncciiaa ppaarraa ssiisstteemmaass ddee tteemmppoo rreeaall,, éé aa ssuuaa pparartiticuculalariridadadede ququee aa dedeststacacaa sosobrbree totodadass asas ououtrtrasas lliinngguuaaggeennss ddee pprrooggrraammaaççããoo ppaarraa eesstteess ssiisstteemmaass.. En

Entrtretetanantoto,, oo gegererencnciaiamementntoo dede mememómóriria,a, aa alalococaçaçãoão ddee rreeccuurrssooss ee aa ssininccrroonniizzaaççããoo ttoorrnnaamm ooss ttrraabbaalhlhooss pes

pesadoadoss nesnestata linlinguaguagemgem,, resresultultandandoo emem estestrutruturaurass dede ccóóddigigooss ccoommpplelexxaass.. SSuuaa ppoouuccaa ppoorrttaabbiilliiddaaddee ppooddee pr

prododuzuzirir ererroross grgravaveses,, exexigiginindodo umumaa esespepecicialalizizaçaçãoão dodo pprrooggrraammaaddoorr nnaa ppllaattaaffoorrmmaa ddee hhaarrddwwaarree,, oo qquuee ddiiffiiccuullttaa nnaa ccoonnttrraattaaççããoo ddee pprrooffiissssiioonnaaiiss,, aalléémm ddee encarecer a mão de obra e custo final da aplicação. encarecer a mão de obra e custo final da aplicação.

Da

Dadodo asas vavantntagagenenss dede sese ututililizizarar aa lilingnguauagegemm  Assembly,

 Assembly, oo usouso emem aplicaçõesaplicações parapara sistemassistemas dede te

tempmpoo rerealal pepermrmititee oo memenonorr nínívevell popossssívívelel dede acacesessoso àà aarrqquuiitteettuurraa ddoo mmiiccrroopprroocceessssaaddoorr,, rreeggiissttrraaddoorreess,, m

meemmóórriiaa iinntteerrnnaa,, ppoorrttaass ddee II//OO ee mmaannuusseeaammeennttoo ddee in

inteterrrurupçpçõeões.s. OO AsAssesembmblyly éé ususadadoo emem apaplilicacaçõçõeess dede te

tempmpoo rerealal ququee exexigigemem umum alaltoto grgrauau dede prprevevisisibibililididadadee ee ssããoo eessppeecciiaalliizzaaddaass eemm uumm ttiippoo ppaarrttiiccuullaarr ddee aarrqquuiitteettuurraa ddee hhaarrddwwaarree.. DDeevviiddoo aaoo aallttoo ggrraauu ddee es

espepecicialalizizaçaçãoão,, aa babaixixaa poportrtababililididadadee ee aa vividada cucurtrta,a, oo  Assembly

 Assembly torna-setorna-se inacessívelinacessível parapara aa maioriamaioria dasdas aapplliiccaaççõõeess,, sseennddoo uuttiilliizzaaddoo aappeennaass eemm aapplliiccaaççõõeess m

miilliittaarreess ee eessppaacciiaaiiss oouu eemm pprroojjeettooss ccoomm mi

micrcrococonontrtrololadadororeses cocomm babaixixísíssisimama ququaantntididadadee dede me

memómóriria,a, aoaondndee apapenenasas sese rerealalizizaa umum núnúmemeroro rereststriritoto de operações.

de operações. O

Oss pprriimmeeiirrooss pprrooggrraammaass ffoorraamm eessccrriittooss nnaa dé

décacaddaa dede 19194040 paparraa prpreveverer asas trtrajajetetóróriaiass babalílíststicicasas dduurraannttee aa SSeegguunnddaa GGuueerrrraa MMuunnddiiaall,, uussaannddoo aa bbeemm co

conhnheecicidada fófórmrmululaa fífísisicaca ququee cacararactctererizizaa cocorrpoposs emem mo

movimvimenentoto.. EsEssesess prprogograramamass foforaramm esescrcrititosos prprimimeieiroro eemm lliinngguuaaggeemm ddee mmááqquuiinnaa ee aasssseemmbbllyy,, ppoor  r   m

maatteemmááttiiccooss eessppeecciiaallmmeennttee ttrreeiinnaaddooss.. AA ggrraannddee vvaannttaaggeemm éé qquuee nnããoo hháá ddiiffiiccuullddaaddeess ppaarraa aa co

compmpililaçaçãoão dede cócódidigogos,s, oo ququee rereprpresesenentata prproboblelemamass ee in

inviviababililizizaa ououtrtrasas lilingnguauagegensns.. ToTododo cocompmpililadadoror dede umumaa lilingnguauagegemm dede alaltoto nínívevell gegerara cocomomo sasaíídada oo rerespspecectitivovo código em Assembly para verificação.

código em Assembly para verificação.

4.2 Linguagem C 4.2 Linguagem C

 A

 A linguagemlinguagem CC foifoi criadacriada emem 19731973 porpor DennisDennis R

Riittcchhiiee aa ppaarrttiirr ddaa lliinngguuaaggeemm BB ee BBCCPPLL,, tteennddoo ccoommoo oobbjjeettiivvoo nnããoo sseerr nneecceessssáárriiaa aa rreeeessccrriittaa ddoo ssiisstteemmaa ooppeerraacciioonnaall UUNNIIXX eemm AAsssseemmbbllyy ppaarraa ccaaddaa nnoovvoo hhaarrddwwaarree ((IISSOO//IIEECC 99889999::11999999 -- PPrrooggrraammmmiinngg la

langnguauagegess -- C,C, 19199999).). IsIstoto sisigngnifificicaa ququee aa lilingnguauagegemm jájá nasceu destinada a possuir boa portabilidade.

nasceu destinada a possuir boa portabilidade. É

É uummaa lliinngguuaaggeemm oorriieennttaaddaa aa ffuunnççããoo,, pe

perrmimititindndoo aa coconsnstrtruçuçãoão dede bibiblblioiotetecacass ququee popossssamam sseerr uuttiilliizzaaddaass ddee mmooddoo aa iimmpplleemmeennttaarr ddiiffeerreenntteess ffuunnççõõeess,, ccoommoo ssoommaa ddee pprroodduuttooss,, mmaanniippuulalaççããoo ddee ppoorrttaass ddee II//OO,, tteemmppoorriizzaaççããoo,, eennttrree oouuttrraass.. MMuuiittaass de

deststasas bibiblblioiotetecacass esestãtãoo didispspononívíveieiss grgratatuiuitatamementntee ee ppooddeemm sseerr ffaacciillmmeennttee aaddaappttaaddaass aaooss rreeqquuiissiittooss eessppeeccííffiiccooss nneecceessssiittaaddoos,s, oo qquuee pprrooppoorrcciioonnaa uummaa menor especialização do desenvolvedor.

menor especialização do desenvolvedor.  A

 A linguagemlinguagem ofereceoferece umauma simplessimples interfaceinterface de

de I/I/O,O, fafacicililitatadada pepelala imimplplememenentataçãçãoo dede fufunçnçõeõess ququee ppooddeemm sseerr iinncclluuííddaass ppeellaass bbiibblliiootteeccaass ddee II//OO.. NNeessttaa lliinngguuaaggeemm,, oo uussoo ddee ppoonntteeiirrooss ppooddee ffaacciilliittaarr aa ma

maninipupulalaçãçãoo dede rerecucursrsosos,, popoisis ququaiaisqsqueuerr poposisiçõçõeses dede m

meemmóórriiaa ppooddeemm sseerr mmaanniippuullaaddaass ffaacciillmmeennttee,, eennttrreettaannttoo,, oo mmaauu uussoo ddeessssaa ffeerrrraammeennttaa ppooddee ooccaassiioonnaarr pprroobblleemmaass,, ccoommoo aa ccoorrrruuppççããoo ddee ddaaddooss.. O

(4)

lliinngguuaaggeemm eemm ssiisstteemmaass ddee tteemmppoo rreeaall éé oo ggeerreenncciiaammeennttoo ddaa mmeemmóórriiaa,, qquuee éé ffeeiittoo aattrraavvééss ddaa aallooccaaççããoo ddiinnââmmiiccaa,, ppeerrmmiittiinnddoo qquuee oo eessppaaççoo ppaarraa eessttrruuttuurraass ddee ddaaddooss ddee uumm pprrooggrraammaa ppoossssaa sseer  r   alocado durante a execução do mesmo.

alocado durante a execução do mesmo. E

Essttaa lliinngguuaaggeemm éé llaarrggaammeennttee uuttiilliizazaddaa eemm sis

sistemtemasas dedesofsoftt reareal-tl-timeime,, cocomomo sisiststememasas dede babancncoo dede

ddaaddooss ee eemm ssiisstteemmaass ddee mmeeddiiççõõeess ddee tteemmppeerraattuurraa.. N

Noorrmmaallmmeennttee aa mmaaiioorriiaa ddee ddeesseennvvoollvveeddoorreess ddee ssiisstteemmaass eemmbbaarrccaaddooss aa uuttiilliizzaamm,, ddeevviiddoo àà ssuuaa ffaacciilliiddaaddee ddee aapprreennddiizzaaggeemm.. AAlléémm ddiissssoo,, aa ppoossssiibbiilliiddaaddee ddee eessccrreevveerr uumm ccóóddiiggoo eemm CC ee ccoommppiilláá--lloo ppaarraa qquuaassee ttooddaass aass ppllaattaaffoorrmmaass ddee hhaarrddwwaarree,, oo uussoo ddee bbiibblliiootteeccaass,, oo aacceessssoo ddiirreettoo ee m

maanniippuullaaççããoo ddee rreeccuurrssooss ddee II//OO ee aass ffuunnççõõeess ddee ge

gererencnciaiamementntoo dede mememómóriria,a, sãsãoo ótótimimosos momotitivovoss paparara eessccoollhheerr eessttaa lliinngguuaaggeemm ddee pprrooggrraammaaççããoo aaoo desenvolver sistemas de tempo real.

desenvolver sistemas de tempo real.

Figura 1: Rotina padronizada para periféricos, Figura 1: Rotina padronizada para periféricos,

codificada em C [Retirado de 1] codificada em C [Retirado de 1]

4.3 Linguagem C++ 4.3 Linguagem C++

 A

 A linguagemlinguagem C++C++ foifoi criadacriada porpor BjarneBjarne S

Sttrroouussttrruupp eemm 11998833.. OO oobbjjeettiivvoo ddaa ssuuaa ccrriiaaççããoo ffooii aa eevovoluluçãçãoo dada lilingnguauagegemm CC,, sesendndoo popossssívívelel aa ininclclususãoão da

da ututililizizaçaçãoão dede clclasasseses.s. ÉÉ umumaa lilingnguauagegemm cocompmpatatívívelel ccoomm aa lliinngguuaaggeemm CC,, ooffeerreecceennddoo aass mmeessmmaass vvaannttaaggeennss ddee aacceessssoo àà hhaarrddwwaarree,, fflleexxiibbiilliiddaaddee ee ppeerrffoorrmmaannccee.. PPoorr sseerreemm ccoommppaattíívveeiiss,, uummaa ffuunnççããoo ddesesenenvovolvlvididaa emem CC popodede seserr cocompmpililadadaa emem CC++++ sesemm er

erroros,s, fafacicililitatandndoo cacasoso sesejaja nenececessssáráriaia imimpoportrtaçaçãoão dede uumm ssooffttwwaarree qquuee ddeevvee sseerr aattuuaalliizzaaddoo ppaarraa aa nnoovvaa lliinngguuaaggeemm.. PPoossssuuii pprrooggrraammaaççããoo ccoommppiillaaddaa mu

multltipipararadadigigmama,, dede ususoo gegeraral,l, lilingnguauagegemm imimpeperaratitivava,, oorriieennttaaddaa aa oobbjjeettooss ee ggeennéérriiccaa,, ccoommbbiinnaannddoo características de linguagens de alto e baixo níveis. características de linguagens de alto e baixo níveis.

 Apresenta

 Apresenta comocomo particularidadeparticularidade conceitosconceitos dede oorriieennttaaççããoo aa oobbjjeettoo,, pprrooggrraammaaççããoo ggeennéérriiccaa ee met

metapraprogrogramaamaçãoção.. OfeOferecrecee tamtambémbém,, encencapsapsulaulamenmentoto ee cocontntrorolele dede acacesessoso aa dadadodoss prprivivadadosos dede umumaa clclasassese,, ch

cheecacagegemm fofortrtee dede titipoposs ee poportrtababililididadade.e. PoPorr seserr umumaa lliinngguuaaggeemm oorriieennttaaddaa aa oobbjjeettooss,, ppoossssuuii ggrraannddee

ve

versrsatatiliilidadadede paparara imimplplememenentatarr esestrtrututururasas cocompmplelexaxass de

de dadadodoss ee prprogogrramamaçaçãoão,, e,e, ququananddoo bebemm esescrcritito,o, umum ccóóddiiggoo eemm CC++++ ooffeerreeccee ggrraannddee eessttaabbiilliiddaaddee aaoo ssiisstteemmaa ee ppeerrmmiittee aallttoo nníívveell ddee ccoommpplleexxiiddaaddee,, co

concnceieitotoss esestetes,s, esessesencnciaiaisis paparara SiSiststememasas emem TeTempmpoo Real.

Real. O

Oss ppoonntteeiirrooss ssããoo eesstteennddiiddooss ee ppooddeemm sseer r  usados

usados ppaarraa eennddeerreeççaarr ccllaasssseess ee ffuunnççõõeess qquuee aauummeennttaamm ooss eelleemmeennttooss eennddeerreeççáávveeiiss eemm ccoommppaarraaççããoo àà lliinngguuaaggeemm CC.. PPoorréémm,, eessttaass ppoossssiibbiilliiddaaddeess rreeqquueerreemm uumm mmaaiioorr ggrraauu ddee eessppeecciiaalliizzaaççããoo ppaarraa oo pprrooggrraammaaddoorr eemm rreellaaççããoo àà lilingnguauagegemm C,C, dedevividodo àà alaltata popossssibibililididadadee dede inintrtrododuzuzir ir  erros na aplicação.

erros na aplicação.  Algumas

 Algumas consideraçõesconsiderações devemdevem ser ser  ob

obseserrvavadadass paparara aa apaplilicacaçãçãoo dodo CC++++ emem sisiststememaass dede T

Teemmppoo RReeaall,, ccoommoo aa sseelleeççããoo ccoorrrreettaa ddoo mi

micrcrococonontrtrololadadoror obobseservrvanandodo asas pposossísíveveisis fufututurarass ex

expapansnsõeõess dodo sissistetemama;; obobtetençnçãoão dede umum cocompmpilailadodorr dede aallttoo eeffiicciiêênncciiaa ppaarraa oo mmooddeelloo ddee mmiiccrrooccoonnttrroollaaddoor r  eessccoollhhiiddoo;; cceerrttiiffiiccaaççããoo ddee qquuee aa eeqquuiippee ddee de

desesennvovolvlvededooreress éé alaltatamementntee ququalalifificicadadaa aa pponontoto dede ddoommiinnaarr ooss vvaarriiaaddooss ee ccoommpplleexxooss ccoonncceeiittooss ddaa lliinngguuaaggeemm CC++++;; ccrriaiarr uummaa bbiibblliiootteeccaa pprróópprriiaa ppaarraa aa lilingnguauagegemm cocomm obobjejetitivovo dede pepermrmititirir oo rereususoo dada memesmsmaa em futuras aplicações.

em futuras aplicações. U

Umm ddaaddoo ppuubblliiccaaddoo ppeellaa rreevviissttaa IEEE IEEE  Software

Software dede MaMaioio dede 19199898,, dedemomonsnstrtraa ququee uumm cócódidigogo

eessccrriittoo eemm CC++++,, qquuaannddoo eemm ccoommppaarraaççããoo aaoo mmeessmmoo ccóóddiiggoo eessccrriittoo eemm CC,, aapprreesseennttaa uumm tteemmppoo ddee m

maannuutteennççããoo mmuuiittoo mmaaiioorr.. UUmmaa ccoommppaarraaççããoo ddeessssaa ssiittuuaaççããoo cchhaammaaddaa ddee ““TTiimmee ttoo FFiixx””,, mmoossttrroouu qquuee oo tteemmppoo mmééddiioo ppaarraa ccoonnsseerrttoo ddee 9944 ddeeffeeiittooss eemm uumm ccóóddiiggoo eemm CC++++ ffooii ddee 11334411 hhoorraass,, eennqquuaannttoo ffoorraamm ggaassttaass 337755 hhoorraass ppaarraa ccoorrrriiggiirr 7744 ddeeffeeiittooss eemm lilingnguauagegemm CC.. IsIssoso éé dedevividodo aoao nnívívelel dede cocompmplelexixidadadede ddaa lliinngguuaaggeemm CC++++ ee éé bbaassttaannttee rreellaattiivvoo ppaarraa uummaa em

emprpresesaa ququee dedesesenvnvololveve SoSoftftwawareress paparara sisiststememasas emem T

Teemmppoo RReeaall,, qquuaannddoo ccoonnssiiddeerraaddoo oo ggaassttoo ccoomm aass horas trabalhadas dos profissionais.

horas trabalhadas dos profissionais. Em

Emboborara sesejaja umumaa lilingnguauagegemm mumuititoo popodederorosasa nnaa aaddmmiinniissttrraaççããoo ddee hhaarrddwwaarree,, ggeerreenncciaiammeennttoo ddee me

memómóririaa ee momodedelalagegemm,, éé mumuititoo didifífícicill dodomiminanarr totododoss ooss aassppeeccttooss qquuee eellaa iinncclluuii,, ppoorr iissssoo,, mmuuiittooss de

desesenvnvololvevedodoreress dede sosoftftwawarere prprefefereremem aa linlinguguagagemem CC ee ssuuaass lliimmiittaaççõõeess aaoo uussoo ddaass mmeellhhoorriiaass proporcionadas pela linguagem C++.

proporcionadas pela linguagem C++.

4.4 Linguagem Ada 4.4 Linguagem Ada

(5)

 A

 A linguagemlinguagem AdaAda foifoi desenvolvidadesenvolvida eessppeecciiffiiccaammeennttee ppaarraa aapplliiccaaççõõeess ddee ssiisstteemmaass ddee tteemmppoo rreeaall,, ssuubbssttiittuuiinnddoo mmaaiiss ddee 445500 lliinngguuaaggeennss uuttililiizzaaddaass nnaa ééppooccaa ddee ssuuaa ccrriiaaççããoo.. SSeeuu nnoommee éé uummaa ho

homemenanagegemm àà AdAdaa LoLovevelalacece (1(181815–5–18185252),), coconhnhececididaa co

commoo aa prprimimeeiriraa prprogograrammadadororaa dede totododoss osos tetempmposos.. B

Basaseaeadada nono PaPascscalal,, CCobobolol ee ououtrtrasas lilingnguauagegensns,, seseuu ddeesseennvvoollvviimmeennttoo tteevvee ddeessttiinnaaççããoo aa pprrooppóóssiittooss m

mililititarareses.. FFoioi eencncomomenendadadada pepelolo DeDepparartatamemenntoto dede De

Defefesasa dodoss EsEstatadodoss UnUnididosos (D(DoDoD)) aoao titimeme lilidederaradodo popor r  Jean Ichbiah, do CII Honeywell Bull.

Jean Ichbiah, do CII Honeywell Bull. C

Coommoo nnaa lliinngguuaaggeemm CC++++,, aa lliinngguuaaggeemm AAddaa ssuuppoorrttaa pprrooggrraammaaççããoo eessttrruuttuurraaddaa ee oorriieennttaaddaa aa ob

objejetotos,s, susupoportrtanandodo tatambmbémém prprogograramamaçãçãoo didiststriribubuídídaa ee coconcncororrerentnte.e. PrPropopororciocionana sisincncroroninizazaçãçãoo nanatitivava paparara ta

tarerefafas,s, sesendndoo imimpoportrtanantete ququanandodo sese trtratataa dede sisiststememasas de tempo real.

de tempo real. N

Noorrmmaallmmeennttee,, aa lliinngguuaaggeemm éé uuttiilliizzaaddaa eemm pr

progograramamass dede grgranandede esescacala.la. PlPlatatafaforormamass ququee ututiliilizazamm de

deststaa lilingnguauagegemm paparara dedesesenvnvololvivimementntoo gegeraralmlmenentete ppoossssuueemm pprroocceessssaaddoorreess ppooddeerroossooss ee ggrraannddeess eessppaaççooss ddee mmeemmóórriiaa,, ooffeerreecceennddoo uumm aammbbiieennttee ddee pr

progograramamaçãçãoo mumuitoito seseguguroro.. NãNãoo éé rerecocomemendndadadoo oo ususoo ddaa lliinngguuaaggeemm AAddaa eemm ppeeqquueennaass aapplliiccaaççõõeess,, ccoomm rreedduuzziiddooss eessppaaççooss ddee mmeemmóórriiaa ee ccaappaacciiddaaddee ddee processamento.

processamento. U

Ummaa ccaarraacctteerrííssttiiccaa qquuee cchhaammaa aatteennççããoo nnoo m

moommeennttoo ddaa eessccoollhhaa ddee uummaa lliinngguuaaggeemm ddee pprrooggrraammaaççããoo ppaarraa ssiisstteemmaass ddee tteemmppoo rreeaall éé qquuee ap

apliclicaçaçõeõess dedesesenvnvololvividadass ututililizizanandodo aa LiLingnguauagegemm AdAdaa ppooddeemm sseerr ccoonnssttrruuííddaass eemm mmóódduullooss.. OO uussoo ddee mó

móduduloloss éé cacapapazz dede sisimpmplilifificacarr aa crcriaiaçãçãoo dede sosoftftwawareress ao

ao fafacicilitlitarar oo dedesesenvnvololvivimementntoo dede grgranandedess sisistestemamass popor r  eeqquuiippeess ee aauummeennttaarr oo ccoonnttrroollee ssoobbrree aa vvisisiibbiilliiddaaddee ddeevviiddoo aa sseeppaarraaççããoo ssoobbrree aass iinntteerrffaacceess ddaa implementação.

implementação. Est

Estaa linlinguaguagemgem pospossuisui excexceleelentente manmanuteutençãnçãoo ddoo ccóóddiiggoo aaoo lloonnggoo ddoo tteemmppoo ddee vviiddaa ddoo ssooffttwwaarree,, ca

cararactctererísístiticaca ququee amamplipliaa susuaa ututililizizaçaçãoão emem apapliclicaçaçõeõess aaeerrooeessppaacciiaaiiss,, ddee ddeeffeessaa,, mmééddicicaass,, ffeerrrroovviiáárriiaass ee nnuucclleeaarreess.. AAssssiimm,, AAddaa éé uummaa bbooaa eessccoollhhaa ppaarraa aa pprrooggrraammaaççããoo ddee ssiisstteemmaass eemmbbaarrccaaddooss ccoomm aaplplicicaçaçõeõess emem tetemmpopo rreaeall ouou ddee sesegugurranançaça crcrítíticica.a. AA tí

títutulolo dede exexememplploo dede ututililizizaçaçãoão,, oo dedesesenvnvololvivimementntoo dodo co

compmpilailadodorr NYNYUU GNGNATAT (A(Adada),), agagororaa papartrtee dodo coconjnjununtoto de

de cocompmpililadadororeses GNGNU,U, didispspononibibililizizouou umum cocompmpililadador or  ddee aallttaa qquuaalliiddaaddee ppaarraa eedduuccaaddoorreess ee aalluunnooss,, sseemm custo.

custo.

4.5 Linguagem Java RT 4.5 Linguagem Java RT

 A

 A linguagemlinguagem JavaJava foifoi desenvolvidadesenvolvida emem 1995.1995. Se

Seuu obobjejetitivovo ereraa seserr umumaa linlinguguagagemem rorobubuststa,a, ororieientntadadaa aa obobjejetotos,s, sisimpmpleless ee ququee inindedepependndenentete dodo hahardrdwawarere ouou pl

platatafaforormama dede sosoftftwawarere,, fofossssee cacapapazz dede exexececututarar susuasas aplicações sem uma nova compilação do código. aplicações sem uma nova compilação do código.

 A

 A propostaproposta inicialinicial dada linguagemlinguagem JavaJava nãonão aatteennddiiaa ooss rreeqquuiissiittooss ddee uummaa lliinngguuaaggeemm ddee pprrooggrraammaaççããoo ppaarraa ssiisstteemmaass ddee tteemmppoo rreeaall.. AA lilingnguauagegemm apapreresesentntavavaa prproboblelemamass cocomomo aa fafaltltaa dede umum rrececurursoso dede prprioioriridadadedess paparara asas ththrereadads.s. OsOs dedesasafifiosos iinniicciiaaiiss ppaarraa aa lliinngguuaaggeemm JJaavvaa sseerr uuttiilliizzaaddaass eemm si

siststememasas dede tetempmpoo rerealal foforaramm rerespsposostata dede tetempmpoo rerealal,, ttoolleerrâânncciiaa aa ffaallhhaass,, ttrraabbaallhhaarr ccoomm aarrqquuiitteettuurraass distribuídas e previsibilidade.

distribuídas e previsibilidade.  As

 As facilidadesfacilidades dede programaçãoprogramação ee ap

aprrenendidizazadodo,, ee aa ppopopululararizizaçaçãoão dada lilingnguauaggemem JaJavava,, pprrooppoorrcciioonnoouu,, eemm 22000033,, uumm ccoonnjjuunnttoo ccoommpplleettoo ddee fe

ferrraramementntasas paparraa oo dedesesenvnvololvivimementntoo dede apaplilicacaçõçõeses ppaarraa ssiisstteemmaass ddee tteemmppoo rreeaall,, oo RReeaall TTiimmee Specification for Java

Specification for Java(RTSJ).(RTSJ).  Ao

 Ao utilizarutilizar outrasoutras linguagenslinguagens dede programaçãoprogramação de

de tetempmpoo rerealal,, oo prprogograramamadodorr nenececessssititaa sese prpreoeocucupapar r  co

comm aa coconsnstrtruçuçãoão dede clclasasseses,s, momodedeloloss ee esestrtrututururasas e,e, eemm sseegguuiiddaa,, iimmpplleemmeennttaarr oo aapplliiccaattiivvoo ccuuiiddaannddoo ddoo ppllaanneejjaaddoorr,, mmaanniippuullaaççããoo ddee ttaarreeffaass eessppoorrááddiiccaass ee ppeerriióóddiiccaass aalléémm ddoo mmeeccaanniissmmoo rreessppoonnssáávveell ppeellaa si

sincncroroninizazaçãção.o. AA linlinguguagagemem RTRTSJSJ coconsnsegegueue fofornrnececer er  ccllaasssseess,, mmooddeeloloss ee eessttrruuttuurraass nnaass qquuaaiiss ppeerrmmiittee aaoo desenvolvedor criar o aplicativo.

desenvolvedor criar o aplicativo.  A

 A linguagemlinguagem JavaJava parapara tempotempo realreal utilizautiliza umauma m

mááqquuiinnaa vviirrttuuaall JJaavvaa ((JJVVMM)).. AA eessppeecciiffiiccaaççããoo JJVVMM de

descscrrevevee umumaa mámáququininaa ee pipilhlhaa ababststraratata ququee exexececututaa

bytecodes

bytecodes,, qquuee éé oo ccóóddiiggoo iinntteerrmmeeddiiáárriioo eennttrree aa

lliinngguuaaggeemm ddee mmááqquuiinnaa ee aa ddee aallttoo nníívveell.. AA mmááqquuiinnaa vviirrttuuaall éé rreessppoonnssáávveell ppoorr ccrriiaarr ooss tthhrreeaaddss.. Ev

Evenentutualalmementntee eleleses sãsãoo agagenendadadodoss pepelolo plplananejejadadoror dodo sistema operacional sobre o qual a JVM é executada. sistema operacional sobre o qual a JVM é executada.

S

Siisstteemmaass mmoonnoopprroocceessssaaddooss uuttiilliizzaamm pri

princincipalpalmenmentete espespeciecificficaçõaçõeses dede temtempopo reareall basbaseadeadosos eemm JJaavvaa,, ddeevviiddoo àà bbooaa eessttrruuttuurraa ffoorrnneecciiddaa ppeellaa lliinngguuaaggeemm ppaarraa eessttee ttiippoo ddee ssiisstteemmaa.. EEmmbboorraa sseejjaa pprroojjeettaaddoo ppaarraa ssuuppoorrttaarr uummaa vvaarriieeddaaddee ddee ag

agenendadadodoreress dede tatarerefafas,s, apapenenasas oo PrPrioioriritytyScScheheduduleler r  eessttáá ddeeffiinniiddoo aattuuaallmmeennttee ee ppoossssuuii pprriioorriiddaaddee ffiixxaa preferencial (FPP).

preferencial (FPP). O

O RRTTSSJJ ppoossssuuii ccoommppaattiibbiilliiddaaddee ccoomm aapplliiccaaççõõeess ddeesseennvvoollvvididaass ccoomm aass vveerrssõõeess eemm JJaavvaa

(6)

tra

tradicdicionional.al. AssAssimim éé pospossívsívelel exeexecutcutarar estesteses aplaplicaticativosivos eemm ccoonnjujunnttoo cocomm ooss ddee tteemmppoo rreeaall.. PPaarraa aa uuttiililizzaaççããoo ddesestata lilingnguauagegem,m, éé nenececessssárárioio ququee oo RRTOTOSS ututililizizadadoo se

sejaja cacapapazz dede mamaninipupulalarr ththrreaeadsds dede tetempmpoo rerealal.. EsEstete R

RTTOSOS dedeveve tatambmbémém popossssuiuirr titimemerr dede aaltltaa reresosoluluçãção,o, iinntteerrrruuppççõõeess pprrooggrraammaaddaass ddee bbaaiixxoo nníívveell ee uumm pl

plananejejadadoror rorobubuststo.o. esestete plplananejejadadoror dedeveve seserr cacapapazz dede re

resosolvlverer osos prproboblelemamass dede ininveversrsãoão dede prprioioriridadadedess ee dede compartilhamento de recursos.

compartilhamento de recursos.  A

 A versãoversão dodo JavaJava parapara sistemassistemas dede tempotempo rreeaall nnããoo uuttiilliizzaa uumm GGaarrbbaaggee CCoolllleeccttoorr ((CCGG)).. EEmm ssuuaa vveerrssããoo ttrraaddiicciioonnaall,, aa eexxeeccuuççããoo ddoo CCGG iinntteerrffeerree nnaa eexxeeccuuççããoo ddooss tthhrreeaaddss nnaa MMaaqquuiinnaa VViirrttuuaall ddoo JJaavvaa,, ge

gerarandndoo umumaa imimpoposisiçãçãoo dede tetempmpoo dede blbloqoqueueioio paparara osos th

threreadadss atativoivos.s. EsEstetess tetempmposos nãnãoo popodedemm seserr lilimimitatadodoss ee dedetetermrmininadadosos cocomm anantetececedêdêncnciaia.. UmUm nonovovo momodedelolo de

de mememómóririaa fofoii dedesesenvnvololvividodo nana lilingnguauagegemm RTRTSJSJ paparara so

soluluciciononarar osos prproboblelemamass dodo JaJavava trtradadicicioionanal.l. AA clclasassese ab

abststraratata MeMemomoryryArAreaea momodedelala aa mememómóririaa didivivididindndo-o-aa eemm ttrrêêss rreeggiiõõeess.. AA rreeggiiããoo HHeeaappMMeemmoorryy éé uuttiilliizzaaddaa ppaarraa tthhrreeaaddss qquuee nnããoo ssããoo ddee tteemmppoo rreeaall,, Sc

ScopopededMeMemomoryry éé ututililizizadadaa paparara ththrereadadss dede tetempmpoo rerealal ee aa IInnmmoorrttaallMMeemmoorryy éé ddee uumm ttiippoo eessppeecciiaall qquuee ppooddee al

alococarar esespapaçoço memesmsmoo apapósós oo tétérmrmininoo dada exexececuçuçãoão dada JVM.

JVM.  A

 A máquinamáquina virtualvirtual dodo RTSJ,RTSJ, suportasuporta filasfilas oorrddeennaaddaass ppoorr pprriioorriiddaaddeess.. EEllaa eexxeeccuuttaa ppoorr ppaaddrrããoo uummaa hheerraannççaa ddee pprriioorriiddaaddee bbáássiiccaa ee uummaa mmááxxiimmaa.. E

Eststee papadrdrãoão nãnãoo imimpepedede aa ococororrêrênnciciaa dede dedeadadlolockcks.s. Pa

Parara reresosolvlverer isissoso,, ututililiziza-a-sese umum prprototococololoo dede lilimimitete dede pr

prioioriridadadedes,s, atatriribubuinindodo umumaa prprioioriridadadede mámáxiximama aa umumaa sseeççããoo ccrrííttiiccaa qquuee éé iigguuaall àà pprriioorriiddaaddee mmaaiiss aallttaa ddee qualquer tarefa que possa bloqueá-la.

qualquer tarefa que possa bloqueá-la.  A

 A linguagemlinguagem RTSJRTSJ modelamodela trêstrês tipostipos dede ppaarrââmmeettrrooss tteemmppoorraaiiss ppaarraa aass ttaarreeffaass,, qquuee ssããoo:: pe

peririódódicica,a, esespoporárádidicaca ee apapererióiódidicaca.. UmUmaa tatarerefafa éé diditata ppererióiódidicaca sese elelaa apapreresesentntaa vávárriaiass ((ititeeraraçõçõeses)) emem umum ppeerrííooddoo ffiixoxo eennttrree lliibbeerraaççõõeess ccoonnsseeccuuttiivvaass,, ccoomm aass rreqequiuisisiçõçõeses dede prprococesessasamementntoo dodo memesmsmoo ttamamananhoho.. U

Umm eexxeemmpplloo sseerriiaa oo ddee uummaa ttaarreeffaa ppeerriióóddiiccaa pprroocceessssaannddoo ssiinnaaiiss ddee rraaddaarr aa ccaaddaa ddooiiss sseegguunnddooss.. Um

Umaa tatarerefafa esespoporárádidicaca popossussuii zezeroro ouou mamaisis ininststânânciacias,s, aapprreesseennttaannddoo uumm eessppaaççoo mmíínniimmoo eennttrree dduuaass lliibbeerraaççõõeess ccoonnsesecucuttivivaass.. PPoorr eexxeemmpplloo,,uummaa ttaarreeffaa eessppoorrááddiiccaa ppooddee eexxeeccuuttaarr uummaa mmaannoobbrraa ddee eemmeerrggêênncciiaa ddee uummaa aaeerroonnaavvee qquuaannddoo oo bboottããoo ddee em

emerergêgêncnciaia éé prpresessisiononadado,o, cocomm umum tetempmpoo mímíninimomo dede 2200 sesegugundndosos enentrtree dduauass rreqequiuisisiçõçõeses dede ememerergêgêncnciaia.. Já

Já umumaa tatarerefafa apapererióiódidicaca nanadada mmaiaiss éé qqueue umumaa tatarerefafa eessppoorrááddiiccaa ccoomm uummaa ffrreeqquuêênncciiaa ddee ooccoorrrrêênncciiaa ee duração indeterminadas.

duração indeterminadas.

E

Emm RRTTSSJJ,, ppaarraa ssee ddeeffiinniirr ooss ppaarrââmmeettrrooss te

tempmpororaiaiss dede umumaa tatarerefafa éé nenececessssárárioio àà ututililizizaçaçãoão dadass classes:

classes: PerPeriodiodicPaicParamrameteeters,rs, SpoSporadradicPaicParamrameteetersrs ee  AperiodicParameters.

 AperiodicParameters.  Além Além dasdas especificaçõesespecificações

tteemmppoorraaiiss oo pprrooggrraammaaddoorr ddeevvee eessppeecciiffiiccaarr ooss pa

parrâmâmetetroross dede ppririororididadadee dede exexececuçuçãoão asassosociciadadaa àà ttaarreeffaa,, ddeeffiinniiddaa ppeellaa ccllaassssee PriorityParameters.PriorityParameters.

S

Suuppoonnhhaa oo ttrreecchhoo ddee uumm ccóóddiiggoo ggeennéérricicoo mmooststrraaddoo aabbaaixixoo,, nnoo qquuaall aapprreesesennttaa aa ddeeffininiçiçããoo ddee uummaa ttaarreeffaa chamada τvrf (objeto Tvrf):

chamada τvrf (objeto Tvrf):

Figura 2: Especificação de uma tarefa em RTSJ Figura 2: Especificação de uma tarefa em RTSJ

[Retirado de 2] [Retirado de 2]  A

 A tarefatarefa TvrfTvrf possuipossui aa maiormaior prioridadeprioridade dede eexxeeccuuççããoo ppeerrmmiittiiddaa,, qquuee éé ddeeffininididaa ppeellaa ccoonnssttaannttee

MAX_PRIORITY.

MAX_PRIORITY. OOss ppaarrââmmeettrrooss tteemmppoorraaiiss,,

rreepprreesseennttaaddooss ppeelloo oobbjjeettoo pppp,, ddeeffinineemm aa ttaarreeffaa ccoomm um

um peperíríododoo dede 151500 mimilislissesegugundndosos,, tetempmpoo dede exexececuçuçãoão no

no pipioror cacasoso dede 4040 mimililisssseegugundndosos ee dedeadadlilinene rerelalatitivovo de

de 121200 mimililissssegegunundodos.s. AA tatarerefafa crcriaia umumaa ininststââncnciaia dede uumm oobbjjeettoo ddaa ccllaassssee TPeriodicaTPeriodica,, qquuee éé uummaa eexxtteennssããoo

ddaa ccllaassssee RealtimeThread.RealtimeThread.  Alguns Alguns tratadorestratadores dede

eexxcceeççããoo ppaarraa eevveennttooss tteemmppoorraaiiss ppooddeemm sseer  r   aassssoocciiaaddooss ccoommoo ppoorr eexxeemmpplloo oo overrunHandler overrunHandler 

((eessttoouurroo ddoo tteemmppoo ddee eexxeeccuuççããoo nnoo ppiioorr ccaassoo)) ee oo

deadlineMissHandler 

deadlineMissHandler (p(pararaa oo cacasoso dede umumaa viviololaçaçãoão dede

um

umdeadlinedeadline).).

 A

 A padronizaçãopadronização dodo JavaJava parapara tempotempo realreal aaccaabboouu ccoomm aallgguunnss ddooss pprroobblleemmaass qquuee eessttaa lilingnguauagegemm trtrazaziaia paparara asas apaplilicacaçõçõeses dede tetemmpopo rreaeal.l. OO qu

quee aa trtranansfsforormomouu emem umumaa dadass prprinincicipapaisis lilingnguauagegensns de programação para sistemas de tempo real.

de programação para sistemas de tempo real.

5 Conclusão 5 Conclusão

E

Emmbboorraa eexxiissttaamm vváárriiaass lliinngguuaaggeennss,, ppaarraa vá

váririosos prpropopósósititosos,, asas lilingnguauagegensns dede prprogograramamaçãçãoo dede te

temmpopo rerealal sãsãoo lilimimitatadadass aa ppririncncipipalalmementntee aa cicincnco:o: CC,, C

C++++,, AAddaa,, JJaavvaa RRTT ee AAsssseemmbbllyy.. PPoorréémm,, nnaa pprrááttiiccaa es

essese núnúmemeroro éé aiaindndaa memenonor,r, sesendndoo ququee asas apaplilicacaçõçõeses at

atuauaisis sãsãoo emem mamaioiorriaia dedesesenvnvololvividadass apapenenasas emem CC ee Java RT.

(7)

De

De foformrmaa gegeraral,l, aa esescocolhlhaa dada lilingnguauagegemm dedeveve sseerr bbaasseeaaddaa ddee aaccoorrddoo ccoomm aa ppoorrttaabbiilliiddaaddee,, fl

flexexibibililididadade,e, ababststraraçãção,o, mamaninipupulalaçãçãoo dede rrececurursososs ee pprreevviissiibbiilliiddaaddee ddoo pprroojjeettoo.. QQuuaannddoo ssee bbuussccaa uumm pr

progograramama emem mamaisis babaixixoo nínívevel,l, ututililiziza-a-sese oo AsAssesembmblyly.. C

Comom esestata lilingnguauagegemm éé popossssívívelel teterr cocontntrorolele dede vávárrioioss rrececurursososs ee grgranandede prprevevisisibibililididadade.e. JáJá aa lilingnguuagagemem CC,, ffoorrnneeccee uumm bboomm nníívveell ddee aabbssttrraaççããoo,, ttaammbbéémm pe

permrmititinindodo acacesessoso aoaoss dedetatalhlheses dodo hahardrdwawarere.. DeDevividodo aaooss iinnúúmmeerrooss ccoommppiillaaddoorreess eexxiisstteenntteess ppaarraa eessttaa lliinngguuaaggeemm,, ppooddeemmooss ddiizzeerr qquuee éé uummaa lliningguuaaggeemm ddee gr

granandede poportrtababililididadade.e. AA lilingnguauagegemm C+C+++ fofornrnececee umumaa aabobordrdagagemem mamaisis aamimigágávevell nono dedesesenvnvololvivimementntoo dadass aaplplicicaçaçõeões,s, poporr seserr ooririenentatadada aa obobjejetotos.s. ElElaa gegerara umum m

maaiioorr ggrraauu ddee aabbssttrraaççããoo ee ffaacciilliittaa aassppeeccttooss ddee m

mooddeellaaggeemm ddoo pprroojjeettoo,, mmeellhhoorraannddoo aassssiimm aa fl

flexexibibililididadade.e. AA lilingnguauagegemm C+C+++ popodede seserr cocompmpararadadaa ccoomm aa lliinngguuaaggeemm CC,, ppoorréémm ppoossssuuii ddeessvvaannttaaggeemm nnaa pporortatabibililidadadede,, jájá ququee seseusus cocompmpililadadororeses nãnãoo sãsãoo tãtãoo aabbuunnddaanntteess ccoommoo eemm CC.. AA lliinngguuaaggeemm AAddaa éé ccoonnssiiddeerraaddaa aa lliinngguuaaggeemm mmaaiiss eeqquuiilliibbrraaddaa,, tteennddoo ppoorrttaabbiilliiddaaddee rraazzooáávveell,, aapprreesseennttaannddoo eexxcceelleennttee fflleexxiibbiilliiddaaddee,, eexxcceelleennttee aabbssttrraaççããoo,, eexxcceelleennttee ma

maninipupulalaçãçãoo dede rerecucursrsosos ee exexcecelelentntee prprevevisisibibililididadade.e. En

Entrtretetanantoto,, susuaa alaltata cocompmplelexixidadadede acacababaa aa afafasastatandndoo de

de pepeququenenasas apaplilicacaçõçõeses.. AA lilingnguauagegemm JaJavava RTRT popossssuiui eexcxceelleennttee ppoorrttaabbiilliiddaaddee,, eexxcceelleennttee fflelexixibbiilliiddaaddee ee eexxcceelleennttee aabbssttrraaççããoo,, ppoorréémm,, aa mmaanniippuullaaççããoo ddee rreeccuurrssooss ee aa pprreevviissiibbiilliiddaaddee ssããoo ddeessvvaannttaaggeemm eemm relação às as outras linguagens.

relação às as outras linguagens. P

Paarraa aa sseelleeççããoo ddee uummaa lliinngguuaaggeemm ddee pr

progograramamaçãçãoo dede sisiststememasas dede tetempmpoo rerealal éé nenececessssárárioio aavavaliliaarr oo ttiippoo ddee ssiisstteemmaa eemmbbaarrccaaddoo qquuee eessttáá sseennddoo ddeesseennvvoollvvididoo.. OO DDeesseennvvoolvlveeddoorr ddeevvee eessccoollhheerr ddee aaccoorrddoo ccoomm oo qquuee mmeellhhoorr aatteennddee ààss ddeemmaannddaass ddaa aapplliiccaaççããoo,, sseennddoo nneecceessssáárriioo qquuee aa lliinngguuaaggeemm escolhida seja utilizada ao longo de todo o projeto. escolhida seja utilizada ao longo de todo o projeto.

6 Referências 6 Referências

T

TUUCCKKEERR,, AA..BB..;; NNOOOONNAANN,, RR..EE.. LLiinngguuaaggeennss ddee P

Prorogrgramamaçaçãoão PPririncncípípioioss ee PPararadadigigmmasas.. 2.2. eded.. PPorortoto  Alegre: AMGH, 2010

 Alegre: AMGH, 2010

Baker, T. (1990). A stack-based resource allocation Baker, T. (1990). A stack-based resource allocation policy for realtime processes, Real-Time

policy for realtime processes, Real-Time

Systems Symposium, 1990. Proceedings., 11th pp. Systems Symposium, 1990. Proceedings., 11th pp. 191–200.

191–200.

JJoohhnn WWiilleeyy && SSoonnss eedd.. 22000044.. CCoonnccuurrrreenntt aanndd Real-Time Programming in Java

Real-Time Programming in Java

Ki

Kiyoyofufumimi TaTananakaka,, 20201212.. EmEmbebeddddeded SySyststememss -- ThTheoeoryry and Design Methodology

and Design Methodology [1] :Henrique Puhlmann.

[1] :Henrique Puhlmann. Sistemas Operacionais deSistemas Operacionais de

Tempo Real - Alguns Periféricos

Tempo Real - Alguns Periféricos

<https://www.embarcados.com.br/sistemas-operaciona <https://www.embarcados.com.br/sistemas-operaciona is-de-tempo-real-alguns-perifericos/> Acesso em is-de-tempo-real-alguns-perifericos/> Acesso em 03/03/2017 03/03/2017 [2

[2]:]: RaRaimimunundodo MaMacêcêdodo,, GeGeororgege LiLimama,, LuLuciciananoo BaBarrrreteto,o,  Aline

 Aline Andrade,Andrade, AlírioAlírio Sá,Sá, FredericoFrederico Barboza,Barboza, RodrigoRodrigo  Albuquerque,

 Albuquerque, SandroSandro Andrade.Andrade. TratandoTratando aa P

Prreevviissiibbiilliiddaaddee eemm SSiisstteemmaass ddee TTeemmppoo--RReeaall Dis

Distritribuíbuídosdos:: EspEspeciecificficaçãação,o, LinLinguaguagengens,s, MidMiddledlewarwaree ee M

Meeccaanniissmmooss BBáássiiccooss.. DDiissppoonniivveell eemm:: <https://goo.gl/ijxO7M

<https://goo.gl/ijxO7M>> Acesso em 03/03/2017 Acesso em 03/03/2017 M

Maarrcceelloo ddee PPaaiivvaa GGuuiimmaarrããeess -- SSiisstteemmaass ddee TTeemmppoo Real. Disponível em:

Real. Disponível em:

<www.lsi.usp.br/~paiva/sd/sistemas%20de%20Tempo <www.lsi.usp.br/~paiva/sd/sistemas%20de%20Tempo %20Real.pdf> Acesso em 03/03/2017

%20Real.pdf> Acesso em 03/03/2017 U

UFPFPRR -- AAlolocacaçãçãoo didinânâmimicaca dede mememómórriaia.. DiDispspononívívelel em:

em:

<http://www.inf.ufpr.br/cursos/ci067/Docs/NotasAula/n <http://www.inf.ufpr.br/cursos/ci067/Docs/NotasAula/n ota

otas-3s-32_A2_Alocaloca_c__c_caocao_di_dinamnamicaica_me_mem.hm.htmltml>> AceAcessosso em 03/03/2017

em 03/03/2017 E

ESSCC 22001177 -- HHooww ttoo mmaakkee SSyysstteemm RReeaall TTiimmee mmoorree friendly. Disponível em:

friendly. Disponível em:

<http://www.embedded.com/design/programming-lang <http://www.embedded.com/design/programming-lang uages-and-tools/4429790/How-to-make-C--more-real-ti uages-and-tools/4429790/How-to-make-C--more-real-ti me-friendly> Acesso em 02/03/2017 me-friendly> Acesso em 02/03/2017

IIBBMM DDeevveellooppeerr WWoorrddss -- JJaavvaa eemm tteemmppoo rreeaall.. Disponível em: Disponível em: <https://www.ibm.com/developerworks/community/blog <https://www.ibm.com/developerworks/community/blog s/ctaurion/entry/java_em_tempo_real?lang=en> s/ctaurion/entry/java_em_tempo_real?lang=en>  Acesso em 01/03/2017  Acesso em 01/03/2017 Pr

Progograramamaçãçãoo CoConcncororrerentntee -- JaJavava ee sisiststememasas dede tetempmpoo real. Disponível em:

real. Disponível em:

<https://pc2008evermat.wordpress.com/2008/07/02/jav <https://pc2008evermat.wordpress.com/2008/07/02/jav a-e-sistemas-de-tempo-real-vale-a-pena-usar/ a-e-sistemas-de-tempo-real-vale-a-pena-usar/>>  Acesso em 01/03/2017  Acesso em 01/03/2017

Sistemas de Tempo Real -uC/OS II. Disponível em: Sistemas de Tempo Real -uC/OS II. Disponível em: <https://sergioprado.org/sistemas-de-tempo-real-part-1 <https://sergioprado.org/sistemas-de-tempo-real-part-1 /> Acesso em 05/03/2017

/> Acesso em 05/03/2017 Co

Compmpililererss LaLaboboraratotoryry -- LiLingnguauagegensns dede PrProgograramamaçãção.o. Disponível em:

Disponível em:

<http://homepages.dcc.ufmg.br/~fernando/classes/dcc <http://homepages.dcc.ufmg.br/~fernando/classes/dcc 024

(8)

10/03/2017 10/03/2017 In

Intrtrododuçuçãoão aoao SiSiststememasas dede TeTempmpoo ReRealal.. DDisispoponínívevell em:

em: <

<http://home.ufam.edu.br/lucascordeiro/str/slides/01-inhttp://home.ufam.edu.br/lucascordeiro/str/slides/01-in troducao-sistemas-de-tempo-real.pdf 

troducao-sistemas-de-tempo-real.pdf >> AAcceessssoo eemm 08/03/2017

08/03/2017

CPP Preferences - C++ Library. Disponível em: CPP Preferences - C++ Library. Disponível em: <

<http://en.cppreference.com/w/cpp/iohttp://en.cppreference.com/w/cpp/io>> AAcceessssoo eemm 07/03/2017

Figure

Updating...

References

Related subjects : sistemas de tempo real