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

Reaaliaikajärjestelmien suunnittelu

Dec 31, 2015

Download

Documents

Lucy Gregory

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Reaaliaikajärjestelmien suunnittelu

04/19/23 1

ReaaliaikajärjestelmienReaaliaikajärjestelmiensuunnittelusuunnittelu

Juhani Heikkinen

Kymenlaakson ammattikorkeakoulu

Page 2: Reaaliaikajärjestelmien suunnittelu

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

Page 3: Reaaliaikajärjestelmien suunnittelu

04/19/23 3

Kaavio reaaliaikajärjestelmän Kaavio reaaliaikajärjestelmän erosta perinteiseenerosta perinteiseen

Page 4: Reaaliaikajärjestelmien suunnittelu

04/19/23 4

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

Page 5: Reaaliaikajärjestelmien suunnittelu

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ä)

Page 6: Reaaliaikajärjestelmien suunnittelu

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

Page 7: Reaaliaikajärjestelmien suunnittelu

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

Page 8: Reaaliaikajärjestelmien suunnittelu

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)

Page 9: Reaaliaikajärjestelmien suunnittelu

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

Page 10: Reaaliaikajärjestelmien suunnittelu

04/19/23 10

Esimerkki ra-järjestelmän Esimerkki ra-järjestelmän prosessirakenteestaprosessirakenteesta

Page 11: Reaaliaikajärjestelmien suunnittelu

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

Page 12: Reaaliaikajärjestelmien suunnittelu

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

Page 13: Reaaliaikajärjestelmien suunnittelu

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

Page 14: Reaaliaikajärjestelmien suunnittelu

04/19/23 14

.. prosessirakenne.. prosessirakenne

– Prioriteetit: kiireellisille omat prosessit– ajastetut prosessit esim varmistus– moniprosessoriympäristö– hajautetut järjestelmät– muistinhallinta (muistin koko rajoittaa)

Page 15: Reaaliaikajärjestelmien suunnittelu

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