Real time jádro operačního systému Lukáš Hamáček
Cíl práce Vytvořit jádro operačního systému pro automaticky generované aplikace Real-timové, preemptivní, důraz na velikost a paměťové nároky Jádro bude přidáno ke kódu vygenerovanému ze Simulinku Pokud možno se držet standardu OSEK/VDX
1.Fáze - ready fronta a rozvrhovač Dva různé algoritmy ready fronty Výběr podle konkrétní aplikace Jednotné API, jeden rozvrhovač
Algoritmus – spojový seznam ID Priorita (ROM)Stav Čekající aktivace Next First
Vlastnosti Rychlé čtení – jen vyzvednutí první položky Lineární náročnost zápisu – musíme prohledat od začátku
Ready fronta s mapou priorit TCB 0 TCB 1 TCB 2 … TCB 11 TCB 12 … TCB 63 Mapa priorit MSB LSB0LSB1LSB7...
Vlastnosti Rychlé čtení i zápis pokud HW podporuje instrukci pro nalezení prvního obsazeného bitu Pokud ne – logaritmická závislost čtení, lineární závislost zápisu Bube výhodnější pro větší počet úloh
Porovnání doby zápisu
Porovnání doby čtení
Pravidla pro výběr ready fronty Pokud má systém více než 8 úloh, vždy fronta s mapou priorit Do 8 úloh, možná i fronta se spojovým seznamem – jednodušší implementace U spojového seznamu nezáleží na celkovém počtu úloh, ale na počtu úloh ve frontě
Konfigurace a nastavení Veškeré nastavení v konfiguračním souboru pomocí definic Nepotřebný kód a proměnné nejsou vloženy do programu – úspora paměti Ale musíme vždy znova přeložit Zapínání debugování – vypisuje prováděné operace přes standardní výstup
Debugovací výstup
Dokumentace Zdrojový kód je okomentován tak, aby bylo možné vygenerovat dokumentaci v programu Doxygen Dokument s popisem algoritmů a konfigurace
Dokumentace z Doxygenu
Děkuji za pozornost Webové stránky projektu: