MAINORI KÕRGKOOL
Infotehnoloogia Instituut
Tarkvara arenduse eriala
Kemo
Oolep
IT-2-P-E-TAR
REAALAJASÜSTEEMIDAinetöö
Juhendaja :
Kalev Avi
Tartu
2010
SISUKORD
SISUKORD 2
SISSEJUHATUS 3
REAALAJASÜSTEEMID 4
RANGE JA
LEEBE REAALAJASÜSTEEM 6
ABS – ANTIBLOKEERUMISE PIDURDUSSÜSTEEM 9
tänapäeva ABS 10
REAALAJA OPERATSIOONISÜSTEEM 11
Skeem 11
KOKKUVÕTE 12
KASUTATUD ALLIKMATERJALID 13
LISAD 14
SISSEJUHATUS
Reaalajasüsteemid
on maailmas laialdaselt kasutatavad süsteemid, mis teevad elu
mugavamaks, ohutumaks ja lihtsamaks. Nende olulisus algab väga
pisikestest kontrolleritest, mis mõõdavad pidevalt vee temperatuuri
ning lõpetades suurte süsteemidega lennukite juhtimises.
Reaalajasüsteeme kasutatakse ka robotites ja tehisintellektides, kus
süsteem annab endale ise käsklusi ning ei ole kasutajaliidesega
juhtiv. Tänapäevased suured kaubalaevad ja naftatankerid on täis
süsteeme, mis juhivad laeva sihtpunkti, olles ühendatud ühtse
keskusega, mis annab signaale laevade teekonnast ja organiseerides
need vastavalt sellisena, et laevad üksteisele otsa ei sõidaks. See
kõik on reaalajasüsteemidega varustatud. Aga mis erinevused on
reaalajasüsteemide ja tavaliste koduarvutite vahel ning kas neid on
üldse vaja?
Valisin
töö teemaks just reaalajasüsteemid, et saada aru, kuidas süsteemid
töötavad, sest tegemist on väga olulise tähtsusega ja laialdaselt
kasutatava elektroonikaseadmega, mida tavainimene võib-olla
argipäeviti enam tähele ei panegi, sest see on üpris loomulik.
Antud
töös üritan ma tuua lühidalt ettekujutuse, mis on
reaalajasüsteemid, kuidas need töötavad ja mida need teevad.
Seletan, kuidas töötab üks igapäevases kasutuses olev ABS-seade
mootorsõidukitel, mis on säästnud väga palju
elusid ja
avariiohtlikke
olukordi .
Suuremat
sorti reaalajasüsteemi jaoks on välja töödatud reaalaja
operatioonisüsteem, mis paneb süsteemi töötama. See on vajalik
seadmete vaheliseks suhtlemiseks ning annan seetõttu ka ülevaate
antud operatsioonisüsteemist.
REAALAJASÜSTEEMID
Arvutiteaduses
on reaalaja või
reaktiivne arvutamine uurimus riistvarast ja
tarkvarast, mis on aluseks reaalajalise piirangule, kui kiiresti
suudab süsteem reageerida sündmuse toimumisele ja sellele
vastamisele. See on süsteem, kus arvuti on liides juhitava keskkonna
ja inimese vahel ning kus protsessori tegevusele ja andmete
liikumisele on seatud ajapiirangud. Olles
vastandiks mittereaalajasüsteemile, kus ei ole ajalist piirangut süsteemi
reageerimisele, isegi kui kiire vastus või
toimimine on eelistatud.
Reaalajasüsteem võib olla rakenduses, mis on seotud näiteks
kriitilise ülesandega. Arvuti peab jälgima ja
juhtima reaalse
maailma füüsikalisi protsesse. Osad protsessid on looduslikud ja
ülejäänud on inimese loodud
tehislikud protsessid. Arvuti tegevus
ja kiirus peab olema suurem kui reaalse maailma protsessi toimumise
kiirus. Antiblokeerumise süsteem ehk ABS on lihtsaks näiteks ühest
tavalisest reaalajasüsteemi kasutusvaldkonnast, kus süsteemil on
minimaalselt lühike aeg reageerimiseks, et rattad pidurdaksid
stabiilselt . Arvutused nimetatakse ebaõnnestunuks, kui need ei ole
tehtud enne ajalist piirangut, kus ajaline piirang on
relatiivne sündmusega. Kui arvutus ebaõnnestub, siis peab süsteem selle
uuesti
kordama ning see peab toimuma enne ajalist piirangut, seega
peab arvutus olema mitmeid
kordi kiirem ajalisest piirist.
Termin
reaalaeg tuleneb selle kasutusest varajase reageerimisega, mis
tähendab, et arvuti programm peab töötama kogu süsteemiga samas
ajas. Ilma reaalajasüsteemita peaks inimene olema
koguaeg ärkvel ja
pingsalt jälgima näiteks tuumajaama ülekuumenemistemperatuuri ja
sellele ülekuumenemisel
reageerima vähem kui
sekundiga , mis oleks
ilmselget võimatu.
Reaalajasüsteemi
iseloomustavad tegurid on: 1) otseühendus reaalse
maailmaga , 2)
algoritmi tööaeg on
rangelt piiratud, 3) paralleelsus ehk
samaaegselt töötavad protsessid on normaalne töörežiim, 4)
sisendite ja väljundite korrektsus sõltub peale sisulise kooskõla
veel mõõtmise või mõjutuse ajahetkest.
Igal
programmil on oma aeg, kui töötab kümme programmi, siis tuleks
rääkida ka kümnest
erinevast ajakomplektist. Kõik
programmid on
omavahel seotud ja neid on võimalik jälgida, sest programmide arv
on lõplik. Omavaheliste
interaktsioonide kirjeldamiseks tuleb teada
kõigi interaktsioonis osalevate programmide ajakomplekte. Ajamudel
peaks olema nii lihtne ja
loetav kui võimalik.
Ajastamist
iseloomustavad jõudlushinnangud, muutujate ja sündmuste
kehtivusaegade hindamine ja üksikute huvipakkuvate osade
interaktsioonide ajalise korrektsuse hindamine.
Kogu
süsteemi on lihtne projekteerida pidevas ajas, sest inimesed on
sellega igapäevaselt
harjunud , kuid ühel hetkel on vaja minna
diskreetsesse aega. Sellisel juhul
kaotavad aga paljud
matemaatilised teooriad kehtivuse ning see ei ole
programmeerija teha, sest tal
puudub vastav
haridus ja kogemus.
Aeg
võib olla:
- meetriline , millega saab mõõta kahe ajapunkti vahelist kaugust, sõltumata ajaarvestussüsteemist;
- topoloogiline, kus kaugus pole oluline, tähtis on järjestus;
- tõkestamata;
- tõkestatud, kus süsteemil on mingi maksimaalne aeg, mida on raske hinnata, kas aeg on piisav;
- lineaarne, hargnev, tsükliline või mittetsükliline;
- tingimuslik , kus vaadatakse hargnevat ajapuud, mille igas hargnemispunktis on mingisugused tingimused, mis määravad, millist haru mööda liikuda ;
- pööratav, rangelt kasvav või suhteline. Reaalajasüsteemis on need variandid korraga kasutusel. Vähemalt üks rangelt kasvav aeg peab olema meetriline, sellisel juhul saab välisvaatleja seda kasutada.
Reaalajasüsteemid
jagunevad kaheks,
hard ehk range ja soft ehk leebe reaalajasüsteem.
RANGE JA LEEBE REAALAJASÜSTEEM
Klassikaliselt
on kasutusel range reaalajasüsteem või kohene reaalajasüsteem,
milles operatsiooni lõpuleviimine peale tähtaega on arvestatud kui
kasutuks, mis võiks kokkuvõttes põhjustada täieliku kriitilise
situatsiooni terves süsteemis. Leebe reaalajasüsteem aga lubab
sellist hilinemist ja võib anda vastuse madalama kvaliteediga ning
ei põhjusta tuumajaama plahvatust või rongide kokkupõrget,
mistõttu sellistes kasutusvaldkondades teda ei kasutatagi.
Rangeid
reaalajasüsteeme kasutatakse valdkondades, kus süsteem peab
sündmusele vastama koheselt ja enne ajalist piirangut. Taolised
karme
garantii andmiseid nõutakse süsteemides, mis
mittereageerimisel teatud
ajavahemikus võib põhjustada suure kaose,
eriti kui see võiks kahjustada füüsiliselt ümbruskonda või
tekitada hädaohtu inimeste elus.
Tuues näiteks auto mootori
kontrollsüsteemi, mis kasutab ranget reaalajasüsteemi, sest
hilinenud
elektriimpulss võib põhjustada mootori tõrke või
purunemise. Või siis oleks üks kasutuskond rangele
reaalajasüsteemile näiteks meditsiinis nagu on südamestimulaator
ja tööstusliku protsessi kontrollsüsteem. Esimestes videomängu
konsoolides nagu Atari 2600 ja Cinematronics’i videokaartidel olid
ranged reaalajasüsteemi nõuded
graafika päritolu ja ajastamise
riistvara tõttu.
Arusaam
ajalisest piirangust ja kahest ajalise järjestiku faktoritest jada
kriteeriumis, juhib rohkem üldiseid ja täpseid definitsioone
rangest ja leebest reaalajasüsteemist, kui nad üldse on teatud
reaalajasüsteemi valdkonnas. Need võimaldavad
suurelt valmistada
ettekujutust ja tasuvuse rahulolu süsteemi ajalise järjestiku
nõuetes.
Ajalise
järjestiku mudeli (joonis 1.) põhjal range tähtaeg ei ole
tingimata üks asi, mida ei tohiks ületada – mistõttu tekitab ta
laialdast
segadust ajalise piirangu ja jada kriteeriumi eesmärgi
vahel. Pigem range tähtaeg lihtsalt näitab, et tegevus on ennatlik
peale ajalise piirangu ületamist – see ei tähenda otseselt
liigvarajast tagajärge. Need tagajärjed on põhilised alused
ajalise jada kriteeriumi täpsustuseks.
Range
reaalajasüsteem on üks, mille ajalise jada faktoriteks on:
- optimaalsus on binaarne juhtum, kus kõik ranged tähtajad on optimaalsed või vastasel juhul lähisoptimaalsed (mõnes süsteemis, rakenduses või olukorra eriomasel teel);
- optimaalne etteennustatavus on ette määratud.
Need
ei ole ainukesed range reaalajasüsteemi ajalise jada
faktorid .
Ajalise kriteeriumi järjestusel kahemõõtmelise ruumi optimaalsuse
ja etteennustatavuse optimaalsuse korral on range reaalajasüsteem
suurima etteennustatavuse punktist (kahte
faktorit ei ole välja
vahetatud ). Definitsioon vastab üksmeelel reaalajasüsteemi
teadustöö jooksul
kogukonnas , et range reaalajasüsteem
tähendabseda, et kõik ranged tähtajad on alati ühendatud
(Reaalajasüsteemi alal tegutsejate
kogukond ei ole nõus nimetustega
range ja leebe reaalajasüsteem, nad kasutavad neid termineid kui
halvasti kirjeldatud viise).
Arvutussüsteemidele
on suhteliselt kasutu olla loomuomaselt range reaalajasüsteem.
Suurem osa keerulistel reaalajasüsteemidel on täidesaatmise olemus
segatud range tähtajaga ja leebema ajalise kitsendusega, näiteks
ajalise piirangu ja samaväärse aja funktsioonidega. Tüüpilised
ranged reaalajasüsteemid jagunevad järgnevalt:
- emb- kumb kõigist teostamiste olemustel on ranged tähtajad kogunenud kokku range reaalajasüsteemi klassi, paaritatult leebe reaalajasüsteemi või mitte reaalajasüsteemiga(kasutajaliides, andmebaas );
- leebe või mittereaalajasüsteem on ette antud ning ei saa toetada ranget reaalajasüsteemi;
- süsteemi disainerid/ teostajad ei tea, kuidas kohandada kokku segatud ajalisi piiranguid ühes süsteemis;
- kõik aja piiranud on tehislikult sunnitud olema rangeks tähtajaks, sest süsteem või selle disainer/ teostaja /kasutaja ei saa jagada muud liiki ajalise piiranguga.
Jaotades
arvutussüsteemi range reaalajasüsteemi esikomponendi
(
kasutajaliidese ) ja mittereaalajasüsteemi, saaks see olla loomulik
ja efektiivne juurdepääs. Aga paljudel teistel juhtudel see piiraks
efektiivsust esikomponendi arvutuses, piirates selle rangeks
tähtajaks ja range reaalajasüsteemi ajalise jada faktoriteks.
Sundides
kõiki ajalisi piiranguid olema range tähtajaga, piiraks see süseemi
paindlikust ja kohanemisvõimet riistvara ressursside nõuete
suurendamise ja riistvara tõhususe vähendamise ajal.
Võimalik
on ehitada arvutussüsteem, mis suudaks samaaegselt toetada tegevusi,
milles on kokku pandud ranged tähtajad, mis on leebed aja
kitsendused ja ajaliste kitsenduste puudumine.
Leebel
reaalajasüsteemil ei ole range süsteemi erikasutusi ja on seega
üldkasutatav. Etteennustatavus ei ole ette määratud ja on enamasti
modeleeritud stohhastiliselt.
Mõned
leebed reaalajasüsteemid ei ole stohhastiliselt ette määratud.
Neil on omadused, mis on asünkroonsed – tähenduselt vahelduv,
korrapäratu, kas vastastikust sõltuv või konkureeriv, mispärast
stohhastiliselt etteennustatavad mudelid on neile tundmatud või
arvutuslikult raskesti käsitletav. Arutlemaks ajalist järjestust
sellistes süsteemides on enamasti kasutatud simulatsiooni mudeleid
ja muid mudeleid nagu tehisintellekti jm.
Rangetel
reaalajasüsteemidel peab olema vähemalt mõni tegevus range
tähtajaga. Kuid leebel reaalajasüsteemil võib olla tegevusi range
tähtajaga. Need süsteemid on leebed, mis ei värba range
reaalajasüsteemi ajalise jada kriteeriumeid.
ABS – ANTIBLOKEERUMISE PIDURDUSSÜSTEEM
Antiblokeerumise
pidurdussüsteem või lühidalt ABS on ohutussüsteem, mis väldib
pidurdamisel mootorsõiduki
rattaid blokeerumast.
Veerev ratas võimaldab juhil hoida juhtimisvõimalust järsu ning täieliku
pidurduse korral, vältides libisemist ja lubades rattal blokeeruda
järk-järgult vastavalt pinnase omadustele. ABS pakub paremat
kontrolli sõiduki üle ja võib vähendada pidurdusteekonda
kuival või libedal
pinnasel , see võib veel tõsta pidurdusteekonda
lahtistel pinnastel nagu lumi või kruus.
Alates
algsest laialdasest autode
tootmisest , antiblokeerumise
pidurdussüsteemid on arenenud märgatavalt. Hiljutised versioonid ei
luba piduritel ainult blokeeruda, vaid kontrollivad
elektrooniliselt esimeste ja tagumiste rataste kalduvust. See funktsioon, sõltuvalt
kindlatest võimetest ja rakendusest, on tuntud kui
elektrooniline pidurdusjõukontroll (EBD), haardumiskontrollsüsteem,
hädapidurdusabi või elektrooniline stabiilsuse kontroll.
Antiblokeerumise
süsteemid arendati esialgu lennukitele aastal 1929, Prantsuse auto
ja lennukiinseneri, Gabriel Voisingu poolt. Varajasem süsteem
kandis nime Dunlopi Maxaret süsteem, esitletud 1950-ndatel ja see on
endiselt kasutusel mõnel lennukimudelil. Need süsteemid on
kasutusel hoorattal ja klapikinnitusel, mis
toidab pidurite
silindreid. Hooratas on kinnitatud trumliga, mis
veereb samal
kiirusel kui ratas. Normaalse pidurduse korral
trummel ja hooratas
tiirlevad samal kiirusel, kui ratas aeglustub äkitselt, teeb trummel
sama, jättes hooratta kiiremini tiirlema. See põhjustab klapi
avanemist, lubades väikese koguse pidurivedeliku läbida
peasilindrist kohalikku mahutisse, vähendades
survet silindris ja
vabastades piduri.
Trumli ja hooratta kasutavus on ainult siis, kui
ratas on pöördel. Testimisel märgati pidurdusefektiivsuse
paranemist kuni 30%, sest piloodid rakendasid järsult pidurid, kuid
ei tõstnud aeglaselt pidurdussurvet, leidmaks libisemispunkti.
Täiendav kasu oli veel selles, et
rehvid ei kulunud nii kiirelt ja
ei läinud enam põlema, mis tekitas rehvide plahvatust.
1958.aastal
kasutati
Royal Enfield
Super Meteor mootorratast testimaks Maxaret
antoblokeerumispidurit.
Eksperimendid demonstreerisid, et
antiblokeerumispidurid oleksid väga kasulikud mootorratastele, sest
libisemine põhjustab suure
osakaalu avariidest. Peatumisdistantsid
lühenesid
enamikes testides võrreldes täieliku blokeerumisega
piduritega, kuid libeda pinnasega teel täheldati kuni 30%
paranemist.
Täielikku
mehaanilist süsteemi prooviti auto peal kasutada 1960.ndal aastal
Ferguson P99 võidusõiduautol, kuid sellel ei nähtud kasutegurit,
kuna süsteem oli kallis ning ebausaldusväärne.
tänapäeva ABS
Chrysler
koos Bendix korporatsiooniga
tutvustas arvutiseeritud kolmekanalist
antiblokeerumispiduri süsteemi
1971 .aastal. See oli kasutuses
mitmeid aastat peale seda, töödates ettekavatsetud ja
usaldusväärselt.
Tüüpiline
ABS töötab koos keskse elektrooniline kontollüksusega (ECU), nelja
ratta kiiruse sensorid – üks iga ratta jaoks – ning kaks või
rohkem hüdraulilisi klappe piduri hüdraulika sees. ECU jälgib
pidevalt rataste pöörlemiskiirust ning kui ta avastab, et mõni
ratas pöörleb aeglasemalt kui teised, siis ta
saadab automaatselt
seire üle pidurite. See käivitab klapid, vähendamaks hüdraulika
rõhku
piduris , mille ratas pöörles aeglasemalt ning see vähendab
antud piduris pidurdusjõudu. Ratas hakkab
seepeale kiiremini
pöörlema. Kui ECU avastab, et ratas pöörleb kiiremini kui teised,
siis piduri hüdraulika tõstab rõhku ning pidurdusjõud suureneb ja
ratta kiirus tasakaalustatakse teiste ratastega. Seda protsessi
tehakse jätkuvalt ja seda annab tunda piduripedaali pulseerimine.
Tüüpiline antiblokeerumissüsteem rakendab ja vabastab piduri rõhku
kuni 20 korda sekundis.
ECU
on programmeeritud eirama erinevusi ratta pöörlemisel alla
kriitilse läve, sest kui auto pöörab, siis kaks kurvipoolset
ratast pöörlevad aeglasemalt kui välimised kaks. Kui ABS avastab
mõne vea, milles ta rakendub, siis enamasti hoiatustuli annab
sellest salongis märku ning kui ABS kõrvaldab vea, tuli
kustub .
REAALAJA OPERATSIOONISÜSTEEM
Reaalaja
operatsioonisüsteem on süsteem reaalajasüsteemi rakendustele.
Sellised operatsioonisüsteemid teenindavad rakenduste nõudeid
reaalajas . Reaalaja operatsioonisüsteem pakub programmeerijatele
rohkem kontrolli protsesside prioriteetide üle. Rakenduste protsessi
prioriteedi tase võib ületada süsteemi protsessi. Reaalaja
operatsioonisüsteemid minimeerivad kriitilise osa süsteemi koodist,
mistõttu
rakenduse katkestus on kriitilise piiri lähedane.
Reaalaja
operatsioonisüsteemi iseloomujooneks on selle järjekindluse tase
aja hulga suhtes, võtab vastu ja lõpetab rakenduste ülesandeid.
Peakujunduse eesmärk ei ole kõrge läbilase, pigem garantii leebe
või range soorituse kategooriast. Reaalaja operatsioonisüsteem, mis
võib
kohtuda ajalise piiranguga on leebe operatsioonisüsteem ning
kui ta ei või kohtuda ajalise piiranguga ette määratult, siis on
range operatsioonisüsteem.
Reaalaja
operatsioonisüsteemil on arenenud algoritmi skeem. Skeemi
paindlikkus lubab laialdasemat arvutisüsteemi suhtlust protsesside
prioriteetide vahel. Võtmesõnad reaalaja operatsioonisüsteemides
on minimaalne
katkestuse peiteaeg ning minimaalne sõlmelülituse
peiteaeg, aga reaalaja operatsioonisüsteem on rohkem hinnatud kui
kiiresti või etteennustatavalt suudab ta vastata, mitte kui palju ta
suudab teatud arvutused ära teha teatud aja jooksul.
Skeem
Tüüpilises
kavandis on protsessil kolm
seisundit : 1) jooksev, 2) valmis, 3)
suletud. Suurem osa protsessidest on enamus aeg suletud. Ühes
protsessoris
jookseb ainult üks protsess. Tavaliselt
andmetestruktuur valmislistist ajakavas on kavandatud vähendama
võimalikult palju halbade juhtumite ajalise kulu pikkust.
Valmislistis
ei ole kunagi rohkem kui mõni protsess, kuid topeltviidatud listis
on valmis protsesse pigem optimaalselt. Kui valmislist koosneb
enamasti ainult mõnest protsessist, aeg-ajalt rohkem, siis peaks
list olema sorteeritud prioriteedi järgi, kus kõrge prioriteediga
protsessi otsimine tervest listist ei võtaks üleliigselt aega.
KOKKUVÕTE
Antud
tööst võib järeldada, et reaalajasüsteemid on üsna sarnased
tavalistele arvutussüsteemidele, kuid nad on karmima ülesehitusega.
Näiteks ei suuda tavaline koduarvuti käivituda sekunditega ning ei
saa olla kindel, et ta teeb oma arvutused enne ajalist piirangut.
Seetõttu on loodud reaalajasüsteemid, millel on kindel ajaline
tähtaeg ning nad on loodud reageerima ja vastama enne tähtaega.
Näiteks range tähtaeg, kus on eriti tähtis, et arvutused oleksid
enne tähtaega tehtud, muidu see võiks põhjustada ebaõnnestumise,
mis oleks tuumareaktorites katastroofilise tagajärjega. Kuid on
olemas ka leebe reaalajasüsteem, mida ei kasutada elulise ja ajalise
tähtsusega valdkondades, kuid siiski ajaline tähtaeg on olemas.
Suurtematel süsteemidel on olemas oma operatsioonisüsteem, mis
paneb seadmed omavahel
suhtlema ja töötama.
Ma
olen täiesti kindel, et reaalajasüsteemid on väga suureks
abimeheks iga inimese ja elukulgemise jaoks.
KASUTATUD ALLIKMATERJALID
Dr. Fernando S.Schlindwein – vanemlektor, magistriõppe juhendaja. [Online] http://www.le.ac.uk/eg/fss1/real%20time.ht m [11.02.2010]
Carnegie Mellon University . Author : Kanaka Juvva, 1998 [Online] http://www.ece.cmu.edu/~koopman/des_s99/real_time/ [12.02.2010]
Automaatikainstituut [Online] http://www.dcc.ttu.ee/abc/ [10.01.2010]
E. Douglas Jensen [Online] http://www.real-time.org/realtime.ht m [15.01.2010]
Leo Mõtus, reaalajasüsteemide professor , Tallinna Tehnikaülikool [Online] http://www.physic.ut.ee/instituudid/efti/loengumaterjalid/RAS/ [19.01.2010]
TTÜ õppematerjalid [Online] http://study2.risk.ee/tty/files/tarkvara_dynaamika.pdf [19.01.2010]
Wikipedia [Online] http://en.wikipedia.org/wiki/Real-time_computing [18.02.2010]
Wikipedia [Online] http://en.wikipedia.org/wiki/Anti-lock_braking_syste m [19.02.2010]
Wikipedia [Online] http://en.wikipedia.org/wiki/Real-time_operating_syste m [15.02.2010]
Tarmo Kuuse, Tallinna Tehnikaülikool [Online] http://www.hot.ee/tarmospam/fisss/LAP5713_RAS_projekt.pdf [01.02.2010]
LISAD
Lisa
1.
Joonis
1. Ajalise järjestuse ulatus (range tähtaja puhul).
http://www.real-time.org/timeco17.gif
Lisa
2.
Joonis
2. Näide maapealse ja maavälise reaalajasüsteemidega töötlemisest.
http://www.noaanews.noaa.gov/stories2008/images/ports2.jpg
Kõik kommentaarid