Valós idejű és biztonságkritikus rendszererek

Instructors: 
István Majzik

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.