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
proces n
proces 2
diagnostický a monitorovací manažer
proces 1
uživatelský prostor
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
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
pouze kód
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 stroj (Java VM)
MTL modelovací nástroj (Eclipse) 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
Buffer (from PSM) − prodBuf
−contents :int −empty :boolean = true + get ():int + put (val:int ):void
<< process , Thread >> Consumer (from PSM) − consBuf << 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 >>
Buffer
Producer −n:int − prodBuf << create >> + Producer (m :int ,buf :Buffer ):Producer + run ():void
Consumer
−contents :int −empty :boolean = true + put (i:int ):void + get ():int
−n:int − consBuf
<< 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ů. GPS 16A gyroskop 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
GPS 16A 8V / 100mA
38400,N,8,1
MSM586SEV AMD ÉlanSC520 133 MHz
SDRAM 128 MB
UART2
RTS/CTS
Procesorový modul PC/ 104
19200,N,8,1
UART3
9600,N,8,1
868 MHz radio link 5V / 1A
UART1
Aerocomm AC 4486
UART0
Experiment na letišti v Přerově – II
19200,N,8,1
elektronický kompas HMR 3300 8V / 24mA
gyroskop 8V / 200mA
CFC 256 MB 5V/1A
aktivní chlazení NiMH baterie 8 článků SANYO - 3000 mAh
Zdroj napájení
napětí z baterie 9,2V
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 UAV - Flight Level (Přerov 15-7-2004) 180 Flight Level
160
140
Flight Level [m]
120
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 paralelní port D0 (vývod 2)
číslicový osciloskop
kanál A 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.
IP: 10.0.0.1/ 24
monitorovací PC v promiskuitním režimu IP: 10.0.0.3/ 24
SLAVE procesorový modul PCM - 3350 IP: 10.0.0.2/ 24
eth0
eth0
eth0
MASTER PC
RTnet
RTnet
RTnet
rozbočovač (HUB)
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 update WDT
start
SW-WDT porucha
start
produkuj
producent porucha
start
konzumuj
konzument porucha
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.