reaaliaikajärjestelmien suunnittelu
DESCRIPTION
Reaaliaikajärjestelmien suunnittelu. Juhani Heikkinen Kymenlaakson ammattikorkeakoulu. Miten reaaliaikajärjestelmät eroavat erätyyppisestä järjestelmästä. Erätyyppisessä, perinteisessä ohjelmassa syötteiden voi ajatella olevan täysin tiedossa - PowerPoint PPT PresentationTRANSCRIPT
04/19/23 1
ReaaliaikajärjestelmienReaaliaikajärjestelmiensuunnittelusuunnittelu
Juhani Heikkinen
Kymenlaakson ammattikorkeakoulu
04/19/23 2
Miten reaaliaikajärjestelmät Miten reaaliaikajärjestelmät eroavat erätyyppisestä eroavat erätyyppisestä
järjestelmästäjärjestelmästä
Erätyyppisessä, perinteisessä ohjelmassa syötteiden voi ajatella olevan täysin tiedossa
Reaaliaikajärjestelmässä toimintalogiikkaa ohjaavat useista eri lähteistä tulevat tieto/tapahtumavirrat
04/19/23 3
Kaavio reaaliaikajärjestelmän Kaavio reaaliaikajärjestelmän erosta perinteiseenerosta perinteiseen
04/19/23 5
Reaaliaikaisen ohjelmistojen Reaaliaikaisen ohjelmistojen tyyppejätyyppejä
Jako kahteen:– Pehmeät: ei tiukkoja vastevaatimuksia (esim.
pankkiautomaatti)– Kovat: vasteajan täsmällisyys tärkeää (esim.
auton sytytysjärjestelmä)
04/19/23 6
ToteutustapojaToteutustapoja
Pienet mikrokontrollerit ilman käyttöjärjestelmän apua– esim. ikuinen silmukka => tutkitaan
syötevirtoja ja säädetään ulostulo– usein käytetään ajastinpiirejä– keskeytyskäsittelijä hoitaa priorisoinnin
04/19/23 7
……toteutustapojatoteutustapoja
Järjestelmän monimutkaistuessa kannattaa harkita reaaliaikakäyttöjärjestelmän käyttöä– esim RMX, OS/9, VRTX, QP, QNX– Reaaliaikakäyttöjärjestelmä tarjoaa palveluja:
prosessien hallintaan (luominen, lopettaminen, prioriteetit)
synkronointiin ja poissulkemiseen oheispiirien ohjaukseen
04/19/23 8
……toteutustapojatoteutustapoja
Reaaliaikakäyttöjärjestelmä tarjoaa sovelluksen toteuttamisen keskenään kommunikoivina prosesseina– prosessit poikkeavat ’normaaleista’
käyttöjärjestelmä prosesseista siinä, että muistin suojausta ei ole (tehokkuus, alkeelliset prosessorit)
04/19/23 9
……toteutustapojatoteutustapoja
Käytetään yleiskäyttöisiä käyttöjärjestelmiä (Unix, NT, OS/2)– Nykyaikaiset kj:t mahdollistavat toteutuksen
yhden prosessin sisällä toimivana säikeinä– Käyttöjärjestelmät helpottavat ylläpitoa, mutta
toteutus saattaa olla hidas tai kallis; harkittavissa myös kj-ytimen koodaaminen itse
04/19/23 10
Esimerkki ra-järjestelmän Esimerkki ra-järjestelmän prosessirakenteestaprosessirakenteesta
04/19/23 11
……toteutustapojatoteutustapoja
Vaikka toteutuksessa ei käytetä reaaliaikakäyttöjärjestelmää, ohjelmisto kannattaa suunnitella siten, että ra-kj:n käyttöön voidaan siirtyä vähällä vaivalla– esim. prosessien kotelointi moduulien sisään
04/19/23 12
RA-ohjelmoinnin erityisongelmiaRA-ohjelmoinnin erityisongelmia Poissulkeminen
– usean prosessin samanaikainen tietorakenteen suojaus
Synkronointi– prosessi joutuu odottamaan toista tapahtumaa
Ajastus Lukkiutumiset
– prosessi odottaa tapahtumaa, jota ei tapahdu koskaan
04/19/23 13
Prosessirakenteen Prosessirakenteen määrääminenmäärääminen
Pieni prosessien määrä:– nopeus: prosessien välinen kommunikointi
hidasta, prosessien luonti ym. ylläpito hidasta– järjestelmän testaus helpompaa
Prosesseja lisätään seuraavilla kriteereillä:– yksinkertaistus– jokaista asynkronista i/o -vuo ohjaamaan oma
prosessi
04/19/23 14
.. prosessirakenne.. prosessirakenne
– Prioriteetit: kiireellisille omat prosessit– ajastetut prosessit esim varmistus– moniprosessoriympäristö– hajautetut järjestelmät– muistinhallinta (muistin koko rajoittaa)
04/19/23 15
Reaaliaikajärjestelmien Reaaliaikajärjestelmien kansanviisauksiakansanviisauksia
Turvallisuuskriittisen järjestelmän toiminta ei saa koskaan perustua pelkästään ohjelmiston virheettömään toimintaan => +turvamekanismit
Prototyyppitestaus Puolustautuva ohjelmointi (defensive programming)
– kohdissa, joihin ei saisi koskaan tulla, on ylimääräinen tarkistus
– aliohjelma suorittaa ylimääräisiä tarkistuksia parametreille Seuraa prosessorin käyttöastetta:
– Yli 50% tietää ongelmia Kerää tilastoa prosessien käyttäytymisestä Varaudu sanomien välityksessä kaikkeen:
– mitään ei tapahdu, sanomat tulevat väärässä järjestyksessä, tuplat jne