Valós idejű és biztonságkritikus rendszererek
A tantárgy célkitűzése
A tantárgy első fele azon beágyazott rendszerekkel foglalkozik, ahol a külső eseményre való garantált idejű reakció elvárás (valósidejű vagy real-time rendszerek). Az ilyen rendszerekben az előre rögzített határidő be nem tartása katasztrofális következményekkel járhat. A tantárgy megismertet a valós idejű rendszerek sajátosságaival, tervezési szempontjaival. Ezen belül részletesen foglalkozik a szoftver tervezés sajátosságaival, a prioritásos ütemezők ütemezési algoritmusaival, feladatok ütemezhetőségi analízisével, a szenzorhálózatokban felmerülő időkezelési problémákkal (lokális órák együttfutásának biztosítása), és a valós idejű beágyazott operációs rendszerekkel.
A tárgy második fele azokkal a beágyazott rendszerekkel foglalkozik, amelyek működése hozzájárulhat veszély, illetve adott környezeti feltételek mellett baleset vagy anyagi kár kialakulásához. Ilyen rendszereket találunk például a közlekedési, egészségügyi, folyamatirányítási alkalmazásokban. A tantárgy megismertet a biztonságkritikus rendszerek (sok esetben szabványban is rögzített) konstrukciós alapelveivel, a biztonsági és megbízhatósági analízissel valamint a szisztematikus tesztelés és debuggolás módszereivel.
A tantárgy részletes tematikája
1. Valós idejű (real-time) rendszerek (3 óra elmélet/előadás):
Célitűzés: valós idejű rendszerek speciális problémáinak bemutatása
Mitől valós idejű egy rendszer? Kemény és puha valósidejű rendszerek megkülönböztetése. Hibakezelés valós idejű rendszerekben (fail-safe és fail operational üzemmódok). Bizánci típusú hibák.
2. Ütemezés (3 óra elmélet/előadás + 2 óra számítási gyakorlat):
Célkitűzés: real-time rendszerekben alkalmazott prioritásos szoftverstruktúrák elemzése, ütemezési algoritmusok bemutatása és ütemezhetőségi analízis begyakoroltatása.
Real-time rendszerek modellezése, taszkok állapotai, ütemezhetőségi analízis (Deadline Monotonic Analysis), Earliest Deadline First és a Least Laxity First algoritmusok, prioritásinverzió és ennek elkerülése, pillanatnyi prioritás öröklés, prioritás felső határ protokoll.
3. Óraszinkronizálás (2 óra elmélet/előadás + 1 óra számítási gyakorlat):
Célkitűzés: annak bemutatása, hogy elosztott RT rendszerekben az idő kezelése kritikus (különböző csomópontoknál keletkező események előidejűségének megállapítása, egyidejű mintavétel vagy beavatkozás). Lokális órák együttjárásának vagy a globális idővel való egyezésének biztosítására szolgáló módszerek megismertetése.
Időreprezentáció, időkezelés. Referenciaóra, helyes óra, pontos óra definiálása. Órák hibájának modellezése ofszettel és óradrifttel. Időtartam mérése esetén jelentkező hibák. Óraszinkronizációs algoritmusok: központi órarendszerek, központilag felügyelt órarendszerek, elosztott órarendszerek.
4. Memóriamenedzsment (1 óra elmélet/előadás):
Célktűzés: a különböző memóriakezelési módszerek analízise valósidejű rendszerek követelményeinek szempontjából.
Statikus, stack, heap memóriakezelés elemzése.
5. Real-time futtatórendszerek, kernelek, operációs rendszerek (5 óra elmélet/előadás + 1 óra demonstráció):
Célkitűzés: a valósidejű beágyazott rendszerekben alkalmazott operációs rendszerek áttekintése.
Beágyazott real-time operációs rendszerek összehasonlítása, egy-egy RTOS részletes vizsgálata (uCOs, eCos, TinyOS stb).
6. Biztonságkritikus rendszerek alapfogalmai (3 óra elmélet/előadás):
Célkitűzés: a rendszer- és szoftverbiztonság koncepciójának bemutatása.
Baleset, kockázat, biztonság fogalma. A megbízhatóság, rendelkezésre állás és a biztonság kapcsolatának bemutatása, kritériumok és mérőszámok hozzárendelése (megbízhatóság, rendelkezésre állás, készenlét, MTFF, MTTF, MTTR). Az előírt biztonságintegritási szintek és a (szabványok szerinti) tervezési folyamat kapcsolata.
7. Biztonságkritikus rendszerek architektúrája (3 óra elmélet/előadás):
Célkitűzés: az architektúratervezés alapelveinek és tipikus megoldásainak bemutatása.
A biztonságos működés általános feltételei hibák bekövetkezése esetén. A többcsatornás működés mint tipikus megvalósítás. Tervezési minták bemutatása (biztonsági mag, redundancia, szoftver architektúrák).
8. Biztonsági és megbízhatósági analízis (4 óra elmélet/előadás + 1 óra alkalmazási gyakorlat):
Célkitűzés: a veszély- illetve a megbízhatósági analízis módszerek áttekintése, az egyes analízis technikák szerepének és alkalmazási feltételeinek elemzése.
A rendszervizsgálat alapvető módszerei: az analitikus modellezés, szimuláció, illetve mérés sajátosságai. Veszélyanalízis technikák (hibafa, eseményfa, ok-következmény analízis, FMEA, FMECA) és megbízhatósági analízistechnikák (Boole-modellek, kitekintésként sztochasztikus modellek) alkalmazása. Az általános kockázatcsökkentési módszerek áttekintése.
9. Formális verifikáció (2 óra elmélet/előadás + 1 óra demonstráció):
Célkitűzés: a matematikai precizitású, formális módszereken alapuló helyességigazolás demonstrálása.
Specifikáció biztonsági analízisének kritériumai. A modellalapú formális verifikáció bemutatása egy mintapéldán keresztül: időzített automaták (mint viselkedésmodell) és temporális logika (mint követelményleírás) alkalmazása. A korszerű integrált fejlesztőrendszerek lehetőségei: a SCADE tervezői keretrendszer.
10. Tesztelés és diagnosztika (3 óra elmélet/előadás + 1 óra alkalmazási gyakorlat):
Célkitűzés: a szisztematikus tesztelési technikák és stratégiák alkalmazásának bemutatása.
Funkcionális tesztelési módszerek (ekvivalenciaparticionálás, határértékanalízis) ismertetése és alkalmazása. A modellalapú teszttervezés lehetőségei, objektumorientált rendszerek tesztelésének specialitásai. A strukturális tesztelés és a kapcsolódó teszt fedettségi mértékek szerepe. Monitorozás és debuggolás.