reaaliaikajärjestelmien suunnittelu

15
03/25/22 1 Reaaliaikajärjestelmie Reaaliaikajärjestelmie n n suunnittelu suunnittelu Juhani Heikkinen Kymenlaakson ammattikorkeakoulu

Upload: lucy-gregory

Post on 31-Dec-2015

21 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

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 4

Reaaliaikajärjestelmässä vaaditaan– ajastusta– rinnakkaisuuden hallintaa

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