eloadas_3.hu.pdf
TRANSCRIPT
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 1/31
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
Autonóm robotok és járm˝ uvekValós idej˝ u operációs rendszerek, gyors prototípus
tervezés
Kiss Bálint
Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
2008. május 14.
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 2/31
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
Tartalom
1 Valós idej˝ u operációs rendszerekQNX - processzek közötti kommunikáció
QNX - ütemezés
2 Gyors prototípus tervezésHardware-in-the-loop szimuláció
MatLab - dSPACE
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 3/31
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
RTOS - Real-time operating systems
Általános elvárásoker ˝ oforrások menedzselése
több processz futtatása
determinisztikus késleltetések (nincs kiéheztetés)
megszakítások determinisztikusan számítható érvényre jutása
Megoldások
RT Linux (Linux kernel kiterjesztése)
QNX (például Quanser) - POSIX PSE52 Realtime Controller
igazolással rendelkez ˝ o operációs rendszer; igen elterjedt ipari megoldásVxWorks - POSIX kompatibilis, igen elterjedt ipari megoldások
OSEK (Offene Systeme und deren Schnittstellen für die Elektronik inKraftfahrzeugen) - autóipari beágyazott operációs rendszer, de példáula Mindstorms Lego készletekben is ez található
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 4/31
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
Soft (lágy) és hard (er ˝ os) valósidej˝ uség
Az id ˝ o szerepe
A valós idej˝ u m ˝ uködés követelménye azt jelenti, hogy az eljárás/programáltal nyújtott megoldás helyessége önmagában nem jelent megfelel ˝ om˝ uködést, hanem annak id ˝ obeli keletkezése is meghatározó.
Lágy valósidej˝ uség
Az eredmény az elvárt határid ˝ otörtén ˝ o el ˝ oállítása tolerálható (adott
mértékig). Példa: kép és hangtömörít ˝ oeljárások esetén egy kép kihagyásavagy egy hangcsomag elvesztése nemteszi a szolgáltatást használhatatlanná.
Er ˝ os valósidej˝ uség
Az eredmény az elvárt határid ˝ o utántörtén ˝ o el ˝ oállítás esetén márhasználhatatlan. Példa: szabályozási
rendszerek, ahol a szenzorok jelétadott id ˝ oközönként fel kell dolgozniés véges elmúltával beavatkozó jeletkell el ˝ oállítani.
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 5/31
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
Esettanulmány - a QNX valósidej˝ u operációs rendszer
Általános jellemz ˝ ok
UNIX hasonlóság
megbízhatóság
Eclipse alapú fejleszt ˝ o környezet (Momentics) akár Windows alá, ahola fordítás elvégezhet ˝ o különböz ˝ o célplatformokra is
Verziók: 4 (id ˝ osebb, de sokat bizonyított), 6 (Neutrino)
Skálázhatóság: egészen kis beágyazott rendszerekt ˝ ol, elosztott,
többgépes megoldásokigFejlesztés különböz ˝ o processzorokra: x86, PPC, MIPS (Risc), SH4(Risc), ARM (grafikai processzor)
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
ló id j˝ á ió d k G í é
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 6/31
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
QNX 4 - a mikrokernel
A skálázhatóság kulcsa - mikromag
A kernel (mag) alapvet ˝ oen négyszolgáltatást nyújt
1 megszakítás irányítása2 processzek közötti
kommunikáció3 hálózati interfész4 ütemez ˝ o
Minden egyéb szolgáltatás (hálózat,fájlrendszer(ek), periféria kezelés,képerny ˝ okezelés, stb.) egy processz.A mikrokernel igen kicsi.
Illusztráció
Hálózati interfész
Transzparens, hogy melyik processzmelyik processzoron (node) fut.
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
V ló id j˝ á ió d k G t tí t é
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 7/31
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
QNX - processzek közötti kommunikáció
Tartalom
1 Valós idej˝ u operációs rendszerekQNX - processzek közötti kommunikáció
QNX - ütemezés
2 Gyors prototípus tervezésHardware-in-the-loop szimuláció
MatLab - dSPACE
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
Valós ideju operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 8/31
Valós idej u operációs rendszerek Gyors prototípus tervezés
QNX - processzek közötti kommunikáció
QNX 4 - Processzek közötti kommunikáció
IPC - InterProcess Communication
Három különböz ˝ o típusú IPC áll rendelkezésre1 Üzenetek (message) - szinkornizációra is használható, kliens-szerver
kiszolgálás megvalósítása, az üzenet adatot is továbbít2 Proxik - speciális üzenet, a küld ˝ o processz nem vár választ3 Signals - UNIX hagyomány, asszinkron kommunikáció, nem továbbít
adatot
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
Valós ideju operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 9/31
Valós idej u operációs rendszerek Gyors prototípus tervezés
QNX - processzek közötti kommunikáció
QNX 4 - IPC üzenetek segítségével
Három alapvet ˝ o függvény
1 Send( pid, smsg, rmsg, smsg_len,
rmsg_len );
2 pid = Receive( 0, msg, msg_len );
3 Reply( pid, reply, reply_len );
Üzenet tartalma
Csak a kommunikáló két processzszámára jelent valamit.
Illusztráció
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
Valós ideju operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 10/31
Valós idej u operációs rendszerek Gyors prototípus tervezés
QNX - processzek közötti kommunikáció
QNX 4 - IPC üzenetek segítségével
Menetrend1 Az A processz fut és üzenetet
küld a B processznek. Meghívja
a mikrokernel Send()függvényét. Futását megállítják.
2 A B processz valamikor elkezdfutni, elérkezik a Recieve()
híváshoz. Ekkor megkapja az
üzenetet.3 Amíg B nem válaszol a Reply()
hívásával, addig A processzblokkolva marad.
Processz állapotok üzenetküldéskor
Üzenet adatainak helye
A blokkolások miatt nincs szükségarra, hogy a kernel másolatotkészítsen az üzenet tartalmáról. Ezgyorsít.
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 11/31
j p y p p
QNX - processzek közötti kommunikáció
QNX 4 - IPC szerver kliens szolgáltatáshoz
Küldésvezérelt üzenetcsere
Az üzenet alapú IPC segítségévelkliens processzek kérhetnek
szolgáltatást egy szerver processzt ˝ ol.Ez küldésvezérelt üzenetcserét jelent.
Fogadásvezérelt üzenetcsere
A szerver szétoszthatja a feladatokatdolgozó processzek között, akik asend() segítségével bejelentkeznek.
IPC szerver - kliens esetben
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 12/31
j p y p p
QNX - processzek közötti kommunikáció
IPC - proxik használata
Proxy (megbízott)Lehet ˝ ové teszi, hogy a küld ˝ o ne blokkolódjon és nem várjon válaszra. Ehheza processzhez egy megbízottat (proxit) kell rendelni a qnx_proxy_attach
függvény segítségével. Egy megbízottat több üzenet küldésére is fel lehetkérni a trigger() függvénnyel és több processz is használhatja.
IPC - megbízott m˝ uködése
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 13/31
QNX - processzek közötti kommunikáció
IPC - signals (jelek) használata
Jelek típusai
POSIX kompatibilis jelek
QNX specifikus jelek
egyes UNIX jelek történelmiokokból
Jel küldése
A processz kéri, hogy számára a jel küldésre kerüljön havalamilyen eseménybekövetkezik. A processz sajátmagának is küldhet jelet. A jelnem tartalmaz adatot.
Jelfogadás1 A processz nem tartalmaz a jel
kezelésére rutint. Ekkor azalapértelmezett m˝ uködés következik be.
2
A processz nem kíván reagálni a jelre.Egyes jelek nem hagyhatók ily módonfigyelmen kívül (SIGKILL, SIGSTOP)
3 A processz tartalmaz egy jelkezel ˝ ofüggvényt, amely ekkor meghívásra
kerül, ˝ o fogja „elkapni" (catch) a jelet.A processz nem kerül aktív (futó) állapotbaattól, hogy jelet kapott. A mikrokernel a nemfutó processzeknek akkor továbbítja a jeleket,ha azok futó állapotba kerülnek.
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 14/31
QNX - ütemezés
Tartalom
1 Valós idej˝ u operációs rendszerekQNX - processzek közötti kommunikáció
QNX - ütemezés
2 Gyors prototípus tervezésHardware-in-the-loop szimuláció
MatLab - dSPACE
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 15/31
QNX - ütemezés
QNX - processzek ütemezése
Ütemezési döntések
A mikrokernel ütemezési döntésekethoz ha
1 valamely processz kikerül a
blokkolási állapotból2 futó processz id ˝ oszelete lejár (haaz id ˝ oszeletesen ütemezett)
3 ha a futó processz futásátmagasabb prioritású processz
miatt fel kell függeszteni
Futtatás
A legmagasabb prioritási szintentalálható kész processz fog futni.
Prioritási szintekMinden processz induláskor kap egyet(esetleg örökli). Összesen 32 szint létezik.
Ütemezés - a processzek besorolása
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 16/31
QNX - ütemezés
Ütemezési eljárások
Alapelv
Az azonos prioritási szinten találhatóprocesszek között valahogy dönteni
kell. Módszerek:1 FIFO ütemezés2 ciklikus id ˝ oosztásos
(round-robin)3 adaptív
Mindegyik processzhez meg kellmondani, hogy ˝ ot hogyan ütemezze amikrokernel.
First In First OutAdott prioritási szinten a sorbalegkorábban érkezett kerül futtatásra.
FIFO ütemezés illusztráció
FIFO processz kidobása
ha elengedi a processzort
ha magasabb prioritású processzfutásra kész állapotba kerül
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 17/31
QNX - ütemezés
Ciklikus id ˝ oosztásos ütemezés
Id ˝ oosztásos processz kidobása
ha elengedi a processzort
ha magasabb prioritású processzfutásra kész állapotba kerül
ha id ˝ oszelete lejár
Ez FIFO de van id ˝ oszelet is.
Id ˝ oszelet hossza
Az id ˝ oszelet alapegysége az operációsrendszer alapbeállítása (pl. 50ms).Minden processz ennek egész számútöbbszörösét kaphatja.
Round-robin ütemezés illusztráció
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 18/31
QNX - ütemezés
Adaptív ütemezés
Prioritási szint változása
Adaptív módon ütemezettprocesszhez tartozik id ˝ oszelet
Ha a processz elfogyasztottaid ˝ oszeletét prioritási szintjeeggyel csökken.
Ha megint elfogyasztja nemcsökken tovább.
Ha csökkentett prioritású szintnem használja ki id ˝ oszeletét ésblokkolódik, akkor eredetiprioritási szintjét visszanyeri.
Shell-b ˝ ol indított processzek
A Shell-el indított processzekütemezése alapesetben adaptív.
Adaptív ütemezés illusztráció
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 19/31
Rapid control prototyping
Angol terminológiaRapid prototyping = Rapid control prototyping
Cél
szabályzó tervezése
a szabályzó jeleket fogat, valós id ˝ oben reagál (számol) és jeleket ad kiKiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 20/31
Mit akar az ipar és mi az, ami van neki?
Van neki
szakaszmodell (kvalitatív vagy kvantitatív)
ECU architektúra (saját fejlesztés vagy vásárolt)
Szeretne
Szimulációs eszközök
Szabályzó tervezését segít ˝ o eszközök
Prototípus létrehozását segít ˝ o fejleszt ˝ oi környezetECU valós idej˝ u tesztelése
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 21/31
Feladatok a fejlesztési fázisban
1 Mérés / adatgy˝ ujtés2 Modellezés3
Identifikáció4 Szabályzó tervezés5 Szabályzó implementálása prototípuson6 Prototípus tesztelés7 Gyors implementáció a rendszeresített ECU architektúrán8 ECU verifikáció
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 22/31
Az 5. lépés
5. Szabályzó implementálása prototípuson
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem
1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 23/31
A fizikai jelek
Források és nyel ˝ ok
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 24/31
Gyorsaság
Automatikus kódgenerálás
A magas szint˝ u leírásból (pl. blokkdiagramból, átviteli elemekb ˝ ol) a valósidej˝ u magon végrehajtható kód automatikusan generálódik.
Valós idej ˝ u hangolás
Aszinkron hozzáférés a szabályzó paramétereihez testre szabható GUI-nkeresztül.
Adatgy˝ ujtés
Hozzáférési és rögzítési lehet ˝ oség a rendszer jeleinek, azok könny˝ uimportálása a fejleszt ˝ oi környezetbe.
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 25/31
Valós idej˝ u target
B ˝ ovíthet ˝ o, a fizikai rendszer paramétereihez igazítható
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 26/31
Valós id ˝ oben futtatható kód el ˝ oállítása
A fordítás folyamata
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 27/31
Gyártók
Target, I/O kártyák, környezet
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
Hardware in the loop szimuláció
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 28/31
Hardware-in-the-loop szimuláció
Tartalom
1 Valós idej˝ u operációs rendszerekQNX - processzek közötti kommunikáció
QNX - ütemezés
2 Gyors prototípus tervezésHardware-in-the-loop szimulációMatLab - dSPACE
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
Hardware in the loop szimuláció
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 29/31
Hardware-in-the-loop szimuláció
HIL szimuláció
ElgondolásA fizikai rendszer vagy egy részének kiváltása valós id ˝ oben futószimulációval, jelek meg ˝ orzésével.
A séma
Példa: széler ˝ om˝ u
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
MatLab - dSPACE
7/17/2019 Eloadas_3.hu.pdf
http://slidepdf.com/reader/full/eloadas3hupdf 30/31
MatLab dSPACE
Tartalom
1 Valós idej˝ u operációs rendszerekQNX - processzek közötti kommunikáció
QNX - ütemezés
2 Gyors prototípus tervezésHardware-in-the-loop szimulációMatLab - dSPACE
Kiss Bálint Irányítástechnika és Informatika Tanszék,Budapesti M˝ uszaki és Gazdaságtudományi Egyetem1. el ˝ oadás
Valós idej˝ u operációs rendszerek Gyors prototípus tervezés
MatLab - dSPACE