Reaalajas elektroonilised süsteemid: põhitõed, planeerimine ja rakendused

Viimane uuendus: 15 jaanuar 2026
  • Reaalajas süsteem peab andma õigeid tulemusi rangete tähtaegade piires, kooskõlas füüsiliste protsesside ja deterministliku käitumisega.
  • STR-i arhitektuur ühendab spetsiifilise riistvara, RTOS-i, ajastamisalgoritme (näiteks EDF) ja turvalisi samaaegsusmehhanisme.
  • Tööstus, ohutus, rikketaluvus ja ajatõhusus on võtmenõuded sellistes sektorites nagu tööstus, transport, kaitsetööstus, telekommunikatsioon ja meditsiin.
  • Reaalajas operatsioonisüsteemid (RTOS) ja reaalajas programmeerimiskeeled võimaldavad kujundada manustatud rakendusi, mis on võimelised reageerima välistele sündmustele piiratud ja prognoositava latentsusega.

Reaalajas süsteemid elektroonikas

osa reaalajas elektroonilised süsteemid Need on sügavalt juurdunud meie igapäevaellu, kuigi jäävad sageli märkamatuks. Alates auto turvapatjadest kuni lennujuhtimise ja isegi lihtsa mikrolaineahjuni – kõik sõltub arvutisüsteemist, mis mitte ainult ei tee asju õigesti, vaid teeb neid ka tegelikult. õigel ajalKui ajalimiiti ületatakse, isegi veidi, loetakse see ebaõnnestumiseks, isegi kui arvutus on täiuslik.

Nende süsteemide ilu (ja raskus) seisneb selles, et nad peavad suhtlema füüsiline maailm järgib väga täpseid tähtaeguAinult "kiirusest" ei piisa: need peavad olema etteaimatavad, stabiilsed ja sünkroniseeritud arvutivälise keskkonnaga. Seetõttu on reaalajas süsteemi disain, analüüs ja testimine tunduvalt delikaatsem kui tavapärases üldotstarbelises süsteemis.

Mis on reaalajas süsteem ja kuidas see erineb kiirsüsteemist?

Reaalajasüsteem (RTS) on põhimõtteliselt digitaalne süsteem, mis juhib või jälgib füüsilist protsessi selgete ajapiirangutega. See ei pea mitte ainult andma loogiliselt korrektseid tulemusi, vaid ka tagama vastuse saabumise kindlaksmääratud aja jooksul; selle tähtaja mittetäitmist peetakse süsteemi rikkeks.

Selle käitumise väga selged näited on auto turvapadja või ABS-i aktiveerimineRobot, mis peab õhus palli püüdma, või tänapäevase sõiduki mootori juhtimissüsteem. Kõigil neil juhtudel võib viivitatud reaktsioon, isegi kui see saabub mõne millisekundi võrra hiljem, olla kasutu või isegi ohtlik.

Sõna „aeg” tähendab selles kontekstis, et korralik toimimine sõltub kui reaktsioon tekibmitte ainult seda, mis see on. Ja „reaalne” viitab sellele, et süsteem peab oma tegeliku evolutsiooni käigus reageerima välistele sündmustele, kasutades ajaskaalat, mis on kooskõlas selle kontrollitava füüsilise keskkonna omaga.

See on vastupidine lihtsalt „kiire“ süsteemile, kus oluline on ainult see, et väljund ilmuks võimalikult kiiresti, ilma et peaks välismaailmaga sünkroonima. Väga võimas veebiserver võib olla kiire, aga see ei ole tingimata... reaalajas süsteem kui sellel ei ole füüsiliste sündmustega seotud rangeid tähtaegu.

Samuti on oluline neid eristada teistest võrgusüsteemidNeed süsteemid saavad alati olla ühendatud ja päringutele vastata (näiteks brauser või broneerimissüsteem), kuid need ei pea tingimata järgima füüsiliste protsessidega kooskõlastatud jäiku tähtaegu, seega ei ole need automaatselt reaalajas süsteemid; tänapäevastes veebirakendustes aga reaalajas otsing võib nõuda sarnaseid latentsusaegu ja garantiisid.

Praktiline näide: valgusfoori reguleerimine ristmikul

Väga illustreeriv näide reaalajas elektroonilistes süsteemides on a liiklusfoori juhtimissüsteem tiheda liiklusega ristmikulAinult tulede "enam-vähem" õigeaegsest vahetamisest ei piisa: otsuseid tuleb langetada pidevalt, lähtudes tänaval toimuvast.

Esiteks, liiklusloendusSõiduradadele ja jalakäijate ülekäiguradadele paigutatakse andureid (induktiivsilmuseid, kaameraid, infrapunaandureid jne), et tuvastada sõidukeid ja inimesi. Need seadmed saadavad pidevalt andmeid keskjuhtimisseadmesse, mis saab seeläbi ajakohast teavet keskkonna kohta.

Juhtimiskeskuses töötleb andmeid sisseehitatud arvuti. reaalajas, rakendades algoritme Need süsteemid arvutavad järjekorras olevate sõidukite arvu, iga sõiduraja täituvuse ja ootavate jalakäijate arvu. Selle teabe põhjal määravad nad, kui kaua peaks iga foori faas igas suunas kestma.

Siis tuleb otsustusprotsessisNäiteks otsustab süsteem pikendada rohelist tuld kõige tihedama liiklusega suunas, et vähendada liiklusummikuid, või eelistada jalakäijate ülekäigurada, kui see on liiga kaua oodanud. Need otsused põhinevad eelnevalt määratletud optimeerimispoliitikatel ning ohutuse ja liiklusvoo nõuetel.

Kui otsus on tehtud, tegutseb vastutav töötleja selle alusel. ajamid, mis juhivad tulesidSee muudab valgusfooride olekut millisekundilise täpsusega, järgides kollast ja punast tuld, blokeeringuid ja muid ohutusnõudeid, tagades sujuva ülemineku faaside vahel.

Kõik see tehakse koos pidev optimeerimineSüsteem jälgib pidevalt liiklust ja kohandab reaalajas rohelise, kollase ja punase tule ajastust, et kohaneda ootamatute muutustega (liiklusummik, kiirabi möödasõit, liiklusvoo muutused eri kellaaegadel jne). See näitab selgelt, miks me räägime reaalajast: juhtimisloogikal on mõtet ainult siis, kui otsuseid täidetakse kindla aja jooksul.

Reaalajasüsteemide ajalugu ja areng

Reaalajalise andmetöötluse päritolu on tihedalt seotud tööstus- ja lennundusprotsesside juhtimine 20. sajandi teisel poolel. Juba 1965. aastal avaldati teatmeteoseid, mis panid aluse nendele süsteemidele, ja varsti pärast seda, 1973. aastal, vormistasid Liu ja Layland planeerimise matemaatilise definitsiooni rangetes ja paindlikes reaalajas süsteemides.

Arvutisimulatsioonides hakati terminit "reaalaja simulatsioonid" kasutama siis, kui Arvutimudel töötas sama kiiresti kui füüsiline protsess mida see esindas. Siin ilmnes klassikaline dilemma: kas suurendada mudeli täpsust ja ohverdada kiirust või vähendada täpsust, et saavutada või ületada reaalajas tööaega.

Sama asi juhtus ka graafilised liidesed ja videomängumootoridSujuva kogemuse tagamiseks peavad need reageerima kasutaja sisendile ja stseenimuutustele piisavalt kiiresti, säilitades samal ajal suure ja püsiva kaadrite arvu sekundis.

Alates 60. ja 70. aastatest on reaalajas süsteemid küpsemaks muutunud tänu saadud õppetunnid kõrgetasemelistest reaalsetest juhtumitest, millest mõned olid peaaegu katastroofilised, mis aitasid täiustada ajaanalüüsi ja planeerimise tehnikaid.

PostgreSQL-i arendajate valik tehisintellekti ja reaalajas rakenduste jaoks-2
Seotud artikkel:
PostgreSQL: eelistatud valik tehisintellekti ja reaalajas rakenduste jaoks

Maamärgiks olevad juhtumid: Apollo 11 ja Mars Pathfinder

Üks kuulsamaid juhtumeid reaalajas televisiooni algusaegadel oli Apollo 11 kuumooduli arvuti ülekoormusLaskumise ajal hakkas juhtimissüsteem andma alarme (näiteks kuulsat 1202), mis näitasid, et protsessor jääb oma töökoormusest maha.

  RGB ventilaatorid arvutimängudele: täielik juhend õigete valimiseks

Missiooni aruannete kohaselt, kui need häired oleksid püsinud, siis navigatsiooniandmete usaldusväärsus Meeskonna ohutus oleks olnud ohus ja missioon oleks võinud katkeda. Lõpuks, varasemate simulatsioonide ja kogemuste põhjal, otsustati jätkata ning Eagle'i moodul maandus edukalt Kuule.

Põhimõtteliselt oli see a protsessori ülekoormuse olukordArvutuskoormus oli suurem, kui protsessor suutis etteantud aja jooksul käsitleda, eriti kui tavapärasele töökoormusele lisati häiretega seotud töötlemine. See juhtum rõhutas piisavate ressursivarude säilitamise olulisust süsteemides, kus rikete hind on vastuvõetamatu.

Teine palju uuritud juhtum on see, kus Mars Pathfinderi kosmosesõidukProbleem ei seisnenud siin niivõrd toore ülekoormuses, kuivõrd prioriteedi inversioonina tuntud nähtuses, mis põhjustas tähtaegade ületamist, isegi kui protsessoril oli näiliselt mõistlik mahutavus.

Ennetava ajastamisega süsteemis toimub prioriteedi inversioon siis, kui a Kõrge prioriteediga ülesanne on blokeeritud madala prioriteediga ülesande poolt. millel on jagatud ressurss (näiteks mutex) ja samal ajal katkestab keskmise prioriteediga ülesanne madala prioriteediga ülesande. Tulemuseks on see, et kriitiline ülesanne blokeeritakse kaudselt vähem olulise ülesande poolt, rikkudes reaalajas garantiisid.

Selle riski maandamiseks kasutatakse järgmist: prioriteetse pärimise protokollKui madalama prioriteediga ülesanne blokeerib kõrge prioriteediga ülesande, tõstab ajastaja ajutiselt madala prioriteediga ülesande prioriteedi kõrge prioriteediga ülesande tasemele. See hoiab ära keskmise prioriteediga ülesannete poolt ülesande katkestamise, võimaldades sel ressursi võimalikult kiiresti vabastada ja seejärel algse prioriteedi juurde naasta.

Need juhtumid tegid selgeks, et STR-i kujundamisel ei ole oluline ainult "piisav protsessori ressurss", vaid ka Planeerimise ja sünkroniseerimise teooria mõistmineja kontrollige ajutiselt kogu süsteemi (riistvara, püsivara ja tarkvara) koos.

Reaalajasüsteemi põhikomponendid

Tüüpiline STR koosneb järgmiste kombinatsioonist: spetsiifilised riist- ja tarkvaraelemendid ning liideseelemendid füüsilise protsessiga. See ei piirdu lihtsa programmiga: see on integreeritud süsteem, mis peab reageerima välistele stiimulitele teadaolevate ajaraamide piires.

Füüsilisest küljest leiame, et kontrollitav süsteemSee võib olla mis tahes reguleerimisele alluv protsess, näiteks tööstusettevõte, mootor, tootmisliin, valgusfoor, robot või meditsiiniseade. STR mõõdab selle olekut ja rakendab juhtimismeetmeid, et hoida seda soovitud parameetrite piires.

Füüsilise maailma ja arvuti vahel on signaaliliidesSee kiht koosneb analoog-digitaalmuunduritest (ADC) ja digitaal-analoogmuunduritest (DAC) ning konditsioneerimisahelatest. See kohandab pingeid, voolusid ja signaalivorminguid nii, et digitaalsüsteem saaks neid lugeda ja genereerida.

Põhielement on reaalajas kellSee süsteem genereerib iga proovivõtuperioodi jooksul perioodilisi katkestusi. See sünkroniseerib andmete kogumise, juhtimise ja käivitamise ülesandeid, tagades, et mõõtmised ja käsud antakse täpselt siis, kui vaja.

Süsteem sisaldab tavaliselt inimese operaatori konsoolSellel on käivitus- ja seiskamisnupud, liidesed parameetrite muutmiseks ja mehhanismid käsitsirežiimide sundimiseks. Lisaks kasutatakse ekraane olekute, häirete, trendide ja muu protsessi jälgimiseks vajaliku teabe kuvamiseks.

Olulised olekumuudatused salvestatakse reaalajas andmebaasSee võimaldab teil meeles pidada, mis on juhtunud, uurida tõrkeid ja hankida statistikat halduse parandamiseks. See ajalooline teave kasvab aja jooksul ja annab teavet hoolduse, optimeerimise või ümberkujundamise kohta tehtud otsuste kohta.

Paljudes tööstuskeskkondades on kaugseiresüsteemSee võimaldab hajutatud juhtimiskeskustest tehast jälgida ja mõnel juhul ka sekkuda. See on ülioluline, kui üks rajatis sõltub teisest (näiteks tehas, mis varustab teist toorainega) ja ühes tehtud otsused mõjutavad kogu ahelat.

STR-i keskmes on sisseehitatud arvutimille tarkvara jaguneb tavaliselt mitut tüüpi mooduliteks: digitaalsed juhtimisalgoritmid (regulaatorid, filtrid, tagasisideahelad), andmete logimine, haldus- ja suunamisliidesed ning otsene suhtlus operaatoriga.

Peamised omadused: aeg, samaaegsus, turvalisus ja tõhusus

Reaalajas süsteemid tegelevad tavaliselt selliste probleemidega nagu suur suurus ja keerukusmitme muutuja, väliste seadmete ja muutuvate tingimustega. See nõuab hoolikat tähelepanu arhitektuurile, planeerimisele ja ülesannetevahelistele kommunikatsioonimehhanismidele.

Kuna andmed pärinevad füüsilisest maailmast, peab süsteem hakkama saama reaalarvud (ujukoma, fikseeritud skaalad jne), mis esindavad suurusi nagu temperatuur, rõhk, kiirus või pinge. Esituse ja arvutuse täpsus võib olla juhtimise kvaliteedi seisukohalt ülioluline.

La ohutus ja töökindlus Need süsteemid on tavaliselt kriitilise tähtsusega: rike võib põhjustada tõsiseid majanduslikke kahjusid, materiaalset kahju, kehavigastusi või keskkonnamõju. Seetõttu on integreeritud rikketaluvuse tehnikad, koondamine ja kontrollitud halvenemise strateegiad.

Samaaegsus on veel üks määrav tunnus. STR täidab tavaliselt mitut ülesannet loogiliselt paralleelselt: andurite lugemine, juhtimine, side, salvestaminekasutajaliides jne. See nõuab jagatud ressursside haldamist, võidujooksu vältimist ja kriitiliste osade tähtaegade rikkumise vältimist.

Tõhusus ei ole luksus, see on vajadus. STR peab olema loogiline ja ajaliselt korrektneaga ka optimeeritud, et täielikult ära kasutada protsessori, mälu ja sisend-/väljundseadmeid. Väljakutse seisneb tasakaalu leidmises ajaraami, riistvarakulu ja tarkvara keerukuse vahel.

Sisend-/väljundseadmed on tavaliselt spetsialiseerunud ja tugevalt seotud füüsilise protsessigaMe ei räägi ainult üldistest portidest, vaid ka fieldbusidest, nutikatest anduritest ja sideprotokollidest, mis on loodud latentsuse minimeerimiseks ja lühikeste tarneaegade tagamiseks.

Reaalajasüsteemide tüübid: kõvad, pehmed ja kindlad

Sõltuvalt sellest, kui tõsiselt nad ajalisi vigu käsitlevad, liigitatakse STR-id mitmesse kategooriasse. Süsteemis, mis koosneb raske reaalajasKõikidest tähtaegadest tuleb eranditeta kinni pidada. Isegi üks tähtaegade mittetäitmine võib kaasa tuua tõsiseid tagajärgi või vähemalt muuta tulemuse kehtetuks.

Tüüpilised näited kõvast reaalajast on järgmised: lennujuhtimine, teatud kriitilised meditsiinisüsteemidvõi elektriinfrastruktuuri kaitset. Sellistel juhtudel on õige, kuid hilinenud tulemus kasutu; süsteem tuleb projekteerida nii, et see ei ületaks ettenähtava stsenaariumi korral oma ajapiirangut.

  Windowsi nipid, kuidas oma arvutit eksperti moodi juhtida

Süsteemid pehme reaalajas Need võimaldavad aeg-ajalt esineda viivitusi. Tulemuse kasulikkus väheneb viivitusega, kuid see võib siiski olla kasutatav. See on nii multimeedia- või andmehõiverakenduste puhul, kus mõned kadunud kaadrid või viivitatud näidised halvendavad kvaliteeti, kuid süsteem jätkab toimimist.

Nende kahe äärmuse vahel asuvad süsteemid kindel reaalajasSiin talutakse aeg-ajalt tähtaegade ületamist, kuid kui vastus saabub hilinenult, kaotab see igasuguse väärtuse ja see visatakse ära. Klassikaline näide on reaalajas video- või telekommunikatsioonisüsteemid: hilinenult saabunud kaader visatakse ära, et säilitada voo sünkroniseerimine.

Arhitektuurid: avatud/suletud ja tsentraliseeritud/hajutatud

Reaalajasüsteeme saab liigitada ka nende astme järgi tehnoloogiline avatusPatenteeritud süsteemid kasutavad suletud tehnoloogiaid ja protokolle, mida kontrollib üks pakkuja, mis võib pakkuda head jõudlust, kuid piirab koostalitlusvõimet ja arengut.

Seevastu avatud süsteemid kasutavad avalikud standardid ja protokollid mis hõlbustavad erinevate tootjate komponentide integreerimist, tarkvara taaskasutamist ja järkjärgulist migreerimist uutele platvormidele.

Teine oluline erinevus on süsteemide vahel tsentraliseeritud ja hajutatudTsentraliseeritud lähenemisviisi korral vastutab peamine sõlm kommunikatsiooni ja kriitilise töötlemise koordineerimise eest, samas kui teised sõlmed toimivad suhteliselt lihtsate terminalide või välisseadmetena.

Hajutatud arhitektuuris töötlemine ja suhtlus on jagatud mitme intelligentse sõlme vahel, mis teevad enam-vähem autonoomselt koostööd. See võimaldab skaleeritavust, koondamist ja lähedust füüsilisele protsessile, kuid raskendab ajalist sünkroniseerimist ja globaalset koordineerimist.

Determinism, katkestuste latentsus ja reageerimisvõime

Determinism on STR-ide keskne omadus: see on võime Ennusta suure tõenäosusega, kui kaua ülesande alustamine ja lõpetamine aega võtabAsi pole mitte võimalikult kiires olemises, vaid teadaolevas ja piiratud reageerimisajas.

Katkestuse latentsus mõõdab aeg välise katkestuse toimumisest (näiteks andur, mis teatab sündmusest), kuni süsteem hakkab seda töötlema. See väärtus on kriitilise tähtsusega, kuna paljud teenusepäringud pärinevad füüsilisest keskkonnast ja ei talu suvalisi viivitusi.

Reageerimisvõime keskendub ajale, mis kulub ülesande täitmiseks käivitatakse pärast katkestuse vastuvõtmistSee hõlmab selliseid tegureid nagu teenindusrutiini käivitusaeg, seotud töötlemise kestus ja pesastatud katkestuste või eelistuste mõju.

Süsteemi iseloomustamiseks viiakse tavaliselt läbi determinismi ja reageerimisvõime kvantitatiivne analüüs: näiteks võib olla vajalik, et 95% ülesannetest täidetakse teatud aja jooksulSealt edasi tuleb RTOS-il töötavad rakendused kavandada nii, et need ei satuks halvimasse oodatavasse jõudlusvahemikku.

Süsteemi juhtimine protsesside ja töökindluse abil

Paljudes täiustatud reaalajas süsteemides on rakendusprotsessidel endil väga peen kontroll süsteemi üleNad saavad selgesõnaliselt deklareerida oma prioriteedi, mälunõuded (milline osa peaks vahemällu jääma, millist vahetuspoliitikat toetatakse jne) ja vajalikud õigused.

Kuigi esmapilgul võib see tunduda anarhilise mudelina, põhineb see tegelikult täpselt määratletud protsessitüübid ja selged piirangudOn tavaline kehtestada nõuded, näiteks: "hooldusprotsessid ei tohiks ületada 3% protsessori kasutusest, välja arvatud selgelt määratletud madala koormusega akendes".

Usaldusväärsus hõlmab enamat kui juhuslike rikete puudumine. STR peab säilitama oma teenuse kvaliteet kokkulepitud piirides pikka aega, tagades spetsifikatsioonidele vastava reageerimisaja isegi mõistlike häirete korral.

Lisaks on nõutav VeataluvusTõsise probleemi (riistvara rike, inimlik eksimus, väline häiring) ilmnemisel peaks süsteem säilitama võimalikult palju andmeid ja funktsionaalsust ning halvendama oma käitumist, seades esikohale kõrgeima prioriteediga kriitilised ülesanded.

Keeled ja reaalajas programmeerimine

Praktikas on paljud STR-id sisse põimitud ja peavad suhtlema paljude väliste komponentidega, seega samaaegne programmeerimine ja seadme otsene juhtimine Need on fundamentaalsed. Kaasaegsed keeled pakuvad primitiivid lõimede loomiseks, suhtlemiseks ja sünkroniseerimiseks, kuid reaalajas tuleb neid kasutada väga ettevaatlikult, eriti veebiraamistikes ja -teenustes nagu Laravel reaalajas.

Rakenduse efektiivsus on võtmetähtsusega: „kenad” keelefunktsioonid võivad lõpuks kalliks osutuda reageerimisaeg, protsessori kasutus või mälukasutusSeepärast hinnatakse manussüsteemides iga abstraktsiooni enne vastuvõtmist hoolikalt.

Kaks keelt, millel on reaalajas maailmas silmapaistev kohalolek, on Ada ja Java reaalajas laiendustegaAda loodi just kriitiliste süsteemide toetamise eesmärgil ning on lisanud täiustusi, et tugevdada oma võimekust selles valdkonnas.

Java puhul lisati reaalajas funktsionaalsused hiljem selliste spetsifikatsioonidega nagu Java reaalajas spetsifikatsioon ja reaalajas põhilaiendus, mis tutvustab RTOS-i jaoks paremini sobivaid mälu- ja ajastamismudeleid.

Reaalajas operatsioonisüsteemid (RTOS)

Reaalaja operatsioonisüsteem (RTOS) on põhitarkvara, mis pakub raamistikku millele ehitatakse rangete tähtaegadega rakendusi. Nõutav on, et selle teenused (ajastamine, katkestused, sünkroniseerimine, sisend/väljund jne) käituksid etteaimatavalt.

Erinevalt üldotstarbelisest operatsioonisüsteemist on RTOS optimeerides korduvate ülesannete täitmist väga lühikeste tähtaegade piiresEesmärk ei ole "teha palju asju", vaid tagada, et kõige olulisem ülesanne saaks tehtud siis, kui see peaks olema, ilma üllatusteta.

Seepärast on need tavaliselt palju kergemad süsteemid, ilma graafiliste kaunistuste või ebavajalike teenusteta, vaid mõne megabaidise suurusega ja minimalistliku disainifilosoofiaga. Vähem koodi tähendab vähem ootamatut latentsust ja vähem rikkekohtimis vastab reaalajas vajadustele.

Ajalooliselt hakati RTOS-e arendama 60. ja 70. aastatel sõjaliste, lennundus- ja tööstuslike rakenduste jaoks. Järgnevatel kümnenditel ilmusid kaubanduslikud tooted, mida tuntakse kui VxWorks, QNX või reaalajas Solarise variandid, mida kasutatakse laialdaselt telekommunikatsioonis, autotööstuses ja manussüsteemides.

Asjade interneti (IoT) levikuga 2000. ja 2010. aastatel tekkisid kerged RTOS-id, näiteks FreeRTOS Need on muutunud väga populaarseks väikese energiatarbega ühendatud seadmetes. Samal ajal on pakutud välja reaalajas POSIX-laiendusi liideste ühtlustamiseks ja tarkvara teisaldatavuse hõlbustamiseks.

Tänapäeval integreeruvad paljud RTOS-id tehisintellekt ja masinõppe tehnikad planeerimise optimeerimiseks, rikete ennustamiseks või juhtimisparameetrite kohandamiseks käitusajal. Kõik see muidugi ajalisi garantiisid silmist kaotamata.

  Turvaline andmete varundamine: täielik juhend ja parimad tavad

RTOS-i turg on väärt mitu miljardit dollarit ja eeldatavasti kasvab see lähiaastatel pidevalt, mida juhib meditsiiniseadmed, tööstusautomaatika, autotööstus ja kriitilise taristu süsteemid.

Nõuded, millele hea RTOS peab vastama

Kaasaegne RTOS peab olema multitegumtöötlus ja ennetavSee võimaldab tal ennetada madalama prioriteediga ülesandeid, et kohe täita kiireloomulisemat. Prioriteedipõhine ajastamine on valdav paradigma: see käivitab alati kõige olulisema ülesande, mis on täitmiseks valmis.

Lisaks peab see pakkuma kommunikatsiooni- ja sünkroniseerimismehhanismid (järjekorrad, semaforid, muteksid, sündmused), mis on loodud tarbetu blokeerimise minimeerimiseks ja selliste nähtuste vältimiseks nagu prioriteedi inversioon, pärimisprotokollide või prioriteedi piiramise rakendamine vastavalt vajadusele.

On oluline, et RTOS-i ajaline käitumine on hästi teadaKatkestuste maksimaalsed latentsused, kontekstivahetuse ajad, sünkroniseerimisprimitiivide täitmisajad jne. Ilma nende andmeteta on võimatu näidata, et rakendus täidab oma tähtaegu.

Ajastusalgoritmid: EDF ja muud mudelid

Ülesannete ajastamine on üks SRT-de nurgakive. Enim uuritud algoritmide seas paistavad silma järgmised: Varaseim tähtaeg esimesena (EDF), optimaalne dünaamiline prioriteetide ajakava paljudes reaalajas kontekstides.

EDF tähtsustab ülesandeid vastavalt nende absoluutne valmimistähtaegLähima tähtajaga ülesandel on igal ajahetkel kõrgeim prioriteet. See tagab teatud tingimustel, et kui on olemas teostatav plaan, mis vastab kõigile tähtaegadele, leiab EDF selle.

See algoritm on ennetav: kui ülesande täitmise ajal saabub teine ​​​​ülesanne kiireloomulisema tähtajaga, saab süsteem katkestage praegune ülesanne ja vabastage protsessor uuele. EDF-i rakendamiseks kasutatakse tavaliselt tähtajani jäänud aja järgi järjestatud prioriteetide järjekorda.

Üks EDF-i eeliseid on see, et see suudab jõuda Protsessori kasutusaste on peaaegu 100% Tähtaegadest kinnipidamine, eeldusel, et ülesannete kogum on planeeritav. Lisaks kohandub see hästi dünaamiliste keskkondadega, kus tähtajad või eeldatavad täitmisajad muutuvad.

Näiteks kui meil on kaks protsessi P1 ja P2, millel on erinevad perioodid ja arvutusajad, eelistab EDF alati eksemplari, mille absoluutne tähtaeg on kõige lähemal. vaheldumisi selle täitmist kui uusi aktiveerimisi tuleb ja tähtaegu ümber arvutatakse.

Siiski pole EDF-il ka puudusi. Olukordades, kus äärmiselt suur töökoormus ja sagedased muudatused Selle efektiivne rakendamine võib muutuda keeruliseks ja teatud tingimustel võivad suhteliselt pikkade tähtaegadega ülesannete puhul tekkida nälgimise probleemid.

Teised tuntud reaalajas algoritmid hõlmavad järgmist Monotonne määr (RM) ja monotoonne tähtaeg (DM)Need süsteemid kasutavad fikseeritud prioriteete, mis põhinevad ülesannete perioodil või suhtelisel ajaraamil. Igal neist on oma optimaalsustingimused ja eelistatud rakendusvaldkond.

Reaalajasüsteemide tüüpilised rakendused

STR-e on kõikjal. töötlev tööstus Neid kasutatakse toidu, jookide, kemikaalide, ravimite jms tootmisliinide juhtimiseks ja jälgimiseks, tagades, et põhimuutujad jäävad oma piiridesse ja et lõpptoode vastab oodatavale kvaliteedile.

Transpordis sõltuvad lennukid, rongid, autod ja laevad reaalajas navigatsiooni-, juhtimis- ja turvasüsteemidAlates ABS-pidurisüsteemidest kuni veojõu- ja stabiilsuskontrollini, sealhulgas raudtee- või mereliikluse korraldussüsteemideni.

The telekommunikatsioon Kaasaegsed süsteemid tuginevad kiirete võrkude infovoo reaalajas haldamisele: pakettkommuteerimine, reaalajas kõne ja video edastamine, teenuse kvaliteedi tagamine ja latentsuse vähendamine on ülesanded, kus tähtaegade järgimine on oluline.

Kaitsevaldkonnas kasutatakse valve-, radari-, elektroonilise sõjapidamise ja küberturvalisuse süsteeme reaalajas platvormid ohtude tuvastamiseks ja neile reageerimiseks millisekundite või vähema aja jooksul, kaitstes kriitilist infrastruktuuri ja strateegilisi ressursse.

Meditsiinis kasutatakse selliseid seadmeid nagu elutähtsate näitajate monitorid, ventilaatorid, südamestimulaatorid või infusioonipumbad Nad töötavad reaalajas tarkvaraga, mis peab ohutult reageerima patsiendi seisundi muutustele, millel on tähtaegade mittetäitmise korral sageli eluohtlikud tagajärjed.

Lisaks digitaalsele maailmale on reaalajas toimuvat näha ka bioloogilistes protsessides. Näiteks seeme idaneb alles siis, kui kui keskkonnatingimused on kindlates vahemikes ja aegadel (niiskus, temperatuur, valgus). Kui see idaneks kohe pärast mullaga kokkupuudet, neid ajaraamidest kinni pidamata, siis see tõenäoliselt ei elaks. See on kasulik metafoor selle kohta, kuidas süsteem, mis ei kohane oma ajalise keskkonnaga, võib ebaõnnestuda.

Suuremat pilti vaadates ulatuvad STR-id üle kogu telekommunikatsioon, multimeedia, tööstusjuhtimine, robootika, avioonika, raudteed, autotööstus, kodumasinad, teaduskatsed ja meditsiinisüsteemidJa nimekiri kasvab jätkuvalt uute tehnoloogiate arenedes.

Kõigis neis keskkondades on vaja järgmist: spetsiifilised reaalajas suhtlusprotokollid, näiteks CAN, Token Bus, TDMA-TTP, kohandatud CSMA/CD või positiivse kinnituse või uuesti saatmise (PAR) skeemid, mis lühendavad edastusaega ja pakuvad garantiid andmete saabumise aja kohta.

Lisaks kõigele sellele on täiustatud patenteeritud reaalajas tarkvaratehnika metoodikat, kasutades järgmisi metoodikaid: andmevoog, andmestruktuurid ja objektorientatsioon kohandatud katkestuste, kontekstivahetuste, asünkroonse side ja vea taastamise esitamiseks koos rangete ajastusnõuetega.

Kõike eelnevat arvesse võttes saab selgemaks, miks reaalajas süsteemid on nüüdseks tänapäevase tehnoloogilise infrastruktuuri oluline osa: need vastutavad tuhandete kriitilised ja igapäevased protsessid toimivad ohutult, usaldusväärselt ja ilma, et kasutaja peaks mõtlema kõigele, mis toimub "kulisside taga" sekundi murdosa jooksul.