Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase Pavel Čeleda Univerzita obrany Katedra komunikačních a informačních systémů
Obsah 1 Formulace problému 2 Cíle disertační práce 3 Řešení cílů disertační práce 4 Přínos disertační práce 5 Závěr Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 2 / 36
Formulace problému Zvýšení inherentní spolehlivosti programového vybavení: za hybnou sílu vývoje je považována tvorba zdrojového kódu, vzdalování se zdrojového kódu od původního popisu systému, rychlá devalvace technologií a produktů na nich založených. Diagnostika programového vybavení pro OS reálného času: absence standardu pro diagnostiku programového vybavení, programové vybavení nepředpokládá průběžnou diagnostiku, stávající diagnostika je zaměřena na technické vybavení. Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 3 / 36
Cíle disertační práce Cíle disertační práce: specifikace, analýza a návrh diagnostického podsystému, vytvoření diagnostického podsystému, experimenty v prostředí operačního systému reálného času. Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 4 / 36
Diagnostický podsystém pro OS reálného času I Vlastnosti diagnostického podsystému: určen pro vestavné systémy pracující v reálném čase, omezené výpočetní a paměťové prostředky cílového systému, založen na metodě průběžné diagnostiky, splnění real-time podmínek po začlenění do cílového systému. Funkční součásti diagnostického podsystému: diagnostické rozhraní operačního systému a řídicích procesů, diagnostická sběrnice a systém diagnostických zpráv, správce diagnostických a monitorovaných úloh. Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 5 / 36
Diagnostický podsystém pro OS reálného času II Struktura diagnostického podsystému: řídicí jednotky (podřízení) se zabudovanými diag. prvky, hlavní diagnostická jednotka (nadřízený), uživatelské rozhraní pro dohled nad systémem. řídicí jednotka řídicí jednotka hlavní diagnostická jednotka dohledové centrum řídicí jednotka Obr. 1: Hierarchická struktura navrženého diagnostického podsystému Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 6 / 36
Diagnostický podsystém pro OS reálného času III uživatelský prostor diagnostický a monitorovací manažer proces 1 proces 2 proces n diagnostická sběrnice diagnostický modul jádra jádro RTOS prostor jádra Obr. 2: Bloková struktura navrženého diagnostického podsystému Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 7 / 36
Diagnostický podsystém pro OS reálného času IV Diagnostické rozhraní řídicího procesu: řídicí stavový automat - algoritmus řídicího procesu, diagnostický stavový automat - algoritmus diag. metody, diagnostická sběrnice - předávání diag. zpráv uvnitř systému. Proces 1 Proces 2 řídicí stavový diagram řídicí stavový diagram diagnostický stavový diagram diagnostický stavový diagram diagnostická sběrnice Obr. 3: Řídicí proces s diagnostickým rozhraním Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 8 / 36
Diagnostický podsystém pro OS reálného času V Inteligentní diagnostický časovač Watch-Dog Timer: přiřazení WDT jednotlivým součástem systému, zapojení podřízených WDT do SW-WDT a HW-WDT, začlenění mechanizmů obnovení po detekci poruchy v systému. úloha č. 1 WDT úloha č. 2 WDT SW watchdog ovládání HW watchdog úloha č. n WDT RESET systému Obr. 4: Navržený inteligentní diagnostický časovač Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 9 / 36
Diag. podsystém pro OS reálného času závěr Navržená koncepce diagnostického podsystému: systém vychází z metody průběžné diagnostiky, v reálném čase jsou poskytovány informace o chování systému, jedná se intrusivní monitorování cílového systému, mechanizmy spolupráce jsou založeny na kooperativní bázi, nedochází k ovlivňovaní chování cílového systému, rozhodování správce diagnostických úloh na základě pravidel. Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 10 / 36
Model diagnostického podsystému I Metoda MDA - Model Driven Architecture: metoda zvolena pro návrh spolehlivého prog. vybavení, MDA využívá modelů k vytváření programového vybavení, modely jsou popsány v jazyce UML, objektový přístup daný jazykem UML, nový přístup v oblasti tvorby programového vybavení. Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 11 / 36
Model diagnostického podsystému II pouze kód vizualizace kódu obousměrný vývoj transformace modelu pouze model model model model model kód kód kód kód model neexistuje kód je modelem kód a model existují společně model je kódem kód neexistuje Obr. 5: Vztah mezi modelem a zdrojovým kódem Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 12 / 36
Model diagnostického podsystému III PIM vysoký stupeň abstrakce, nezávislý na finální realizaci, PDM popis cílové platformy a na ní dostupných technologií, PSM výsledek transformace PIM a PDM modelu, zdrojový kód kód použitelný k sestavení finální aplikace. model platformy model aplikace model diagnostického podsystému platformově specifický model zdrojový kód model RTOS Obr. 6: Transformace modelů PIM, PDM na PSM a zdrojový kód Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 13 / 36
Model diagnostického podsystému IV překladač AST BasicMTL -> AST Java MTL modelovací nástroj (Eclipse) MTL stroj (Java VM) transformace modelu MTL API modely pro čtení modely pro zápis a čtení modelovací nástroj (Poseidon CE) metamodel založený na MOF 1.3 Obr. 7: Architektura překladače BasicMTL Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 14 / 36
Model diagnostického podsystému V ProdConsModel (from PSM) + main ():void << process, Thread >> Producer (from PSM) good :int << run >> + run ():void prodbuf Buffer (from PSM) contents :int empty :boolean = true + get ():int + put (val:int ):void consbuf << process, Thread >> Consumer (from PSM) << run >> + run ():void << read only >> Thread (from java::lang ) Obr. 8: PSM model po provedení transformace v jazyce MTL Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 15 / 36
Model diagnostického podsystému VI main Main ConsumerProducerGood + main (args :String[] ):void << use >> << use >> << use >> n:int Producer << create >> +Producer (m:int,buf :Buffer ):Producer + run ():void prodbuf Buffer contents :int empty :boolean = true + put (i:int ):void + get ():int consbuf n:int Consumer << create >> + Consumer (m:int,buf :Buffer ):Consumer + run ():void << read only >> Thread (from java::lang ) + start ():void + join ():void Obr. 9: PSM model použitý při metodě obousměrného vývoje Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 16 / 36
Model diagnostického podsystému závěr model úlohy producent - konzument doplněný o prvky průběžné diagnostiky (inteligentní WDT), transformace PIM, PDM modelů na PSM v jazyce MTL, převod modelu PSM na zdrojový kód metodou přímé transformace modelu v jazyce MTL, ruční převod modelu PSM na zdrojový kód metodou obousměrného vývoje v nástroji Poseidon CE. Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 17 / 36
Experimenty v prostředí OS reálného času experiment s bezpilotním prostředkem na letišti v Přerově, testování real-time vlastností OS Linux, experiment s diagnostickou sběrnicí pro real-time systémy, experiment s inteligentním diagnostickým časovačem. Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 18 / 36
Experiment na letišti v Přerově I Cíle experimentu: sestavení vývojové platformy pro diagnostický podsystém, ověření funkcí diagnostické ústředny v reálných podmínkách, sběr letových charakteristik UAV z inteligentních senzorů. gyroskop GPS 16A elektronický kompas PC/ 104 Obr. 10: Umístění elektronického vybavení na bezpilotním prostředku Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 19 / 36
Experiment na letišti v Přerově II Aerocomm AC 4486 868 MHz radio link 5V / 1A 9600,N,8,1 RTS/CTS UART0 Procesorový modul PC/ 104 MSM586SEV UART2 19200,N,8,1 elektronický kompas HMR 3300 8V / 24mA GPS 16A 8V / 100mA 38400,N,8,1 UART1 AMD ÉlanSC520 133 MHz SDRAM 128 MB UART3 19200,N,8,1 gyroskop 8V / 200mA CFC 256 MB 5V/1A NiMH baterie 8 článků SANYO - 3000 mah Zdroj napájení napětí z baterie 9,2V aktivní chlazení stabilizátor 5V / 5A stabilizátor 3,3V / 1A Obr. 11: Bloková struktura použitého výpočetního systému Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 20 / 36
Experiment na letišti v Přerově III 180 UAV - Flight Level (Přerov 15-7-2004) Flight Level 160 140 120 Flight Level [m] 100 80 60 40 20 0 12:02:30 12:03:00 12:03:30 12:04:00 12:04:30 12:05:00 12:05:30 Universal Time (UTC) [h] Obr. 12: Průběh dosažené výšky zaznamenaný z GPS přijímače Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 21 / 36
Experiment na letišti v Přerově závěr výpočetní systém založen na modulech PC/104, centrální řídicí jednotka provozována s OS Linux a RTAI, použité programové vybavení nevykazovalo žádné výpadky, nadměrné mechanické namáhání elektronického vybavení uvnitř draku letounu (svévolné rozpojování konektorů). Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 22 / 36
Testování real-time vlastností OS Linux I Cíle experimentu: ověřit real-time vlastnosti OS Linux bez a se zapnutou podporou pro real-time aplikace, testy latence, preemptivity a přepínačů u RTAI rozšíření, test vstupně/výstupních operací modulů PC/104. procesorový modul PCM - 3350 číslicový osciloskop paralelní port kanál A D0 (vývod 2) GND (vývod 25) Obr. 13: Test vstupně/výstupních operací na paralelním portu PC Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 23 / 36
Testování real-time vlastností OS Linux II Obr. 14: Test paralelního portu se zátěží - běžný Linux Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 24 / 36
Testování real-time vlastností OS Linux III Obr. 15: Test paralelního portu se zátěží - Linux s RTAI rozšířením Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 25 / 36
Testování real-time vlastností OS Linux závěr omezené real-time vlastnosti standardního linuxového jádra, zapnutí preemptivní podpory v jádře vede k dosažení odezvy systému v řádech ms, pouze mikrojádrové RTAI rozšíření garantuje real-time chování s odezvou v řádech desítek µs. Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 26 / 36
Diagnostická sběrnice pro real-time systémy I Cíle experimentu: ověření koncepce vybraných rozhraní pro diag. sběrnici, diag. sběrnice na bázi ethernetové sítě a protokolu RTnet, diag. sběrnice vytvořená pomocí sběrnice CAN. MASTER PC eth0 monitorovací PC SLAVE v promiskuitním procesorový modul režimu PCM - 3350 IP: 10.0.0.1/ 24 IP: 10.0.0.3/ 24 IP: 10.0.0.2/ 24 eth0 eth0 RTnet RTnet rozbočovač (HUB) RTnet Obr. 16: Zapojení pracoviště během testu diagnostické sběrnice s RTnet Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 27 / 36
Diagnostická sběrnice pro real-time systémy závěr ověřeny vlastnosti obou typů rozhraní a způsob jejich ovládání, RTnet využívá TDMA (Time Division Multiple Access) metodu pro bezkolizní přístup na ethernetové síti, sběrnice CAN disponuje inteligentními mechanizmy pro přístup na přenosové médium a vysílání/příjem zpráv. Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 28 / 36
Experiment s inteligentním WDT I Cíle experimentu: ověřit koncept inteligentního diagnostického časovače na úloze producent - konzument, srovnání výsledků metody MDA s ručně vytvořeným zdrojovým kódem. vyrovnávací paměť producent konzument zápis čtení Obr. 17: Princip úlohy producent - konzument Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 29 / 36
Experiment s inteligentním WDT II producent - konzument start update WDT start produkuj start konzumuj porucha SW-WDT porucha producent porucha konzument Obr. 18: Stavový diagram úlohy producent - konzument Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 30 / 36
Experiment s inteligentním WDT III SW-WDT producent konzument čas Obr. 19: Přepínání vláken v úloze producent - konzument Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 31 / 36
Experiment s inteligentním WDT IV #./wdt -p4 -c2 HW-WDT enabled. SW-WDT thread is up. Producer thread is up. Consumer thread is up. SW - WDT - wdt flag sw 0 prod 0 cons 0 - HW-WDT cleared Producer - wdt flag 1 - buffer - 1 Consumer - wdt flag 1 - buffer - 1 SW - WDT - wdt flag sw 1 prod 1 cons 1 - HW-WDT cleared Producer - wdt flag 2 - buffer - 2 Consumer - wdt flag 2 - buffer - 2 SW - WDT - wdt flag sw 2 prod 2 cons 2 - HW-WDT cleared Producer - wdt flag 3 - buffer - 3 SW - WDT - wdt flag sw 3 prod 3 cons 2 - HW-WDT cleared Consumer failure detected! Producer - wdt flag 4 - buffer - 4 SW - WDT - wdt flag sw 4 prod 4 cons 2 - HW-WDT cleared Consumer failure detected! SW - WDT - wdt flag sw 5 prod 4 cons 2 - HW-WDT cleared Producer failure detected! Consumer failure detected! Program failure detected! Waiting for HW-WDT reboot! Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 32 / 36
Experiment s inteligentním WDT závěr producent - konzument je typická úloha v řídicích systémech, sledování stavu vláken pomocí čítačů aktivity v SW-WDT, obnovení funkce při úplném selhání úlohy pomocí HW-WDT, úloha neprováděla maskování poruch nebo obnovu po poruše, metoda MDA se snaží o postupný převod jednotlivých modelů, kód vytvářený programátorem je vázán na cílovou platformou, příliš složitý popis modelů a transformací u MDA metody, malá škálovatelnost metody MDA pro větší programové celky. Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 33 / 36
Přínos disertační práce Teoretický přínos disertační práce: návrh diagnostického podsystému pro operační systémy pracující v reálném čase, popis programového vybavení vestavných systémů pomocí metody MDA a jazyka MTL. Praktický přínos disertační práce: transformace UML modelů metody MDA v jazyce MTL, použití open-source programového vybavení u vestavných systémů pracujících v reálném čase. Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 34 / 36
Závěr návrh průběžné diagnostiky řídicích úloh v OS reálného času, založeno na OS Linux s rozšířením pro práci v reálném čase, popis prog. vybavení pomocí UML modelů a metody MDA, provedena řada experimentů na modulech PC/104, práce vypracována na půdě Univerzity obrany a během zahraniční stáže na vysoké škole ENSIETA ve Francii, výsledky disertační práce uveřejněny v 11 publikacích a 3 technických zprávách. Pavel Čeleda Zvýšení spolehlivosti a diagnostika operačních systémů pracujících v reálném čase 35 / 36
Děkuji za pozornost.