Detail předmětu
Operační systémy reálného času
FEKT-MRTSAk. rok: 2017/2018
Předmět si klade za cíl seznámit posluchače jak s teoretickými, tak i s praktickými aspekty implementace řídicích aplikací do operačních systémů reálného času. Předmět je koncipován tak, aby seznámil posluchače krok za krokem se všemi důležitými aspekty tvorby řídicí aplikace, jako jsou analýza úlohy, volba vhodné architektury a operačního systému reálného času, tvorba více vláknových procesů a jejich synchronizace s ohledem na časová omezení a sdílené zdroje, syntéza a verifikace úlohy na cílové platformě. Předmět připravuje posluchače na metodiku vývoje systému pomocí schématu analýza-verifikace-syntéza s ohledem na vysoce funkční a vysoce bezpečné řízení. Většina teoretických poznatků je vyzkoušena na praktických příkladech a jejich pochopení a zvládnutí je ověřeno na závěrečném projektu.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
Vysvětlit základní pojmy v oblasti operačních systémů reálného času, algoritmů plánovaní, synchronizace paralelního běhu úloh, symetrických a asymetrických architektur.
Určit základní vlastnosti konkrétního operačního systému reálného času jak z přiložené dokumentace, tak pomocí vhodných experimentů.
Popsat architekturu x86 a ARM a kvalifikovaně rozhodnout o vhodnosti jejich použití pro danou úlohu.
Analyzovat a definovat pro zadanou úlohu požadavky na HW a SW vybavení řídicího systému.
Analyzovat a definovat pro zadanou úlohu její časové charakteristiky s ohledem na jejich splnění v reálném čase.
Analyzovat a definovat pro zadanou úlohu sdílené zdroje a pro tyto zvolit vhodný mechanismus sdílení, přidělování a synchronizace.
Provést analýzu, verifikaci a syntézu kritických částí úlohy ve vhodném nástroji.
Identifikovat paralelně běžící části zadané úlohy a tyto správně implementovat ve zvoleném API.
Identifikovat a vypočítat základní charakteristiky systému s ohledem na jeho Fault-tolerant chování.
Prerekvizity
Plánované vzdělávací činnosti a výukové metody
Způsob a kritéria hodnocení
10 bodů za dvě domácí cvičení (2 x 5).
30 bodů za závěrečný projekt.
50 bodů za povinnou písemnou část závěrečné zkoušky.
10 bodů za ústní část závěrečné zkoušky.
Účast na písemné a ústní části je podmíněna udělením zápočtu. Zápočet je udělen za odevzdaný závěrečný projekt, který má nenulové bodové hodnocení.
Osnovy výuky
2. Multitasking a operační systémy, přehled RTOS.
3. Synchronizace (event, mutex, semafor, critical section, shared object).
4. Deadlines (Race condition, deadlock, livelock, starvation, priority inversion).
5. Plánovací algoritmy jednoduché a víceprocesorové architektury. Architektura x86 a ARM.
6. Základní pojmy a definice v oblasti RTOS.
7. Analýza parametrů RTOS, systémy řízené časem a událostmi.
8. Analýza požadavků za řízení v reálném čase.
9. Analýza, verifikace a syntéza úlohy. Determinismus řídicí úlohy.
10. HMI systémy, vazba na real-time systémy.
11. Správa paměti v RTOS.
12. Faul-tolerant systémy.
Učební cíle
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
Základní literatura
Doporučená literatura
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
2. Princip činnosti řízení ve smyčce, s operačním systémem a s RTOS. Preemptivní a nepreemptivní multitasking.
3. Operační systém Windows jako HMI. Princip fungování Windows. Zprávy, fronty, události. Plánovač procesů ve Windows. Windows GDI a Windows API. Uživatelský vstup/výstup. Souborový systém. Privilegované instrukce. WDM.
4. Popis a princip činnosti RTOS. Struktura a klasifikace RTOS. Plánovací algoritmy. Struktura jádra RTOS, přepínání kontextu. Proces. Vlákno. Synchronizace procesů. Semafory, uváznutí, mutexy, kritické sekce. Výlučný přístup ke sdílenému prostředku. Inverze priorit. Monitor procesu.
5. Popis a princip činnosti RTOS Windows RTX. Struktura jádra RTX. RTX a Windows. API rozhraní RTX. Základní funkce Windows RTX.
6. Rozšířené funkce Windows RTX.
7. Komunikační sběrnice a jejich řešení v systémech reálného času. Průmyslové sběrnice v řídicích aplikacích. Základy činnosti master/slave přístupu ke sběrnici. Arbitr sběrnice. Tokeny. Nedeterministický přístup.
8. Vysoká funkčnost a bezpečnost řídicích systémů reálného času. Fault-Tolerant, Safety-Critical a Fail-safe.
9. Formální metody a postupy při návrhu fault-tolerant řídicích aplikací. Spolehlivost a ukazatelé spolehlivosti. Zálohování. TMR systém. NMR systém.
10. Stavové automaty. Časované stavové automaty. Implementace Mealy a Moore automatů v systémech reálného času. Asynchronní a synchronní komunikace mezi automaty.
11. Bezpečné programování. Nebezpečné konstrukce. WatchDog. Vyjímky a jejich ošetření. Objektově orientované programování a přínos v bezpečnosti a funkčnosti.
12. RT systém na bázi PC versus PLC. Požadavky na řízení v technologických procesech.
Laboratorní cvičení
Vyučující / Lektor
Osnova
2. Nastavení HAL časovače. Nastavení času deadlocku. Nastavení časového kvanta. Převod PCI zařízení z Windows do správy RTX. Vlastnosti RTX PCI zařízení.
3. Převod PCI RTX zařízení zpět do Windows. Převod ISA zařízení z Windows do správy RTX. Vlastnosti RTX ISA zařízení. Převod ISA RTX zařízení zpět do Windows.
4. Základní utility (RTX Properties Control Panel, RTSSrun, RTSSkill, RTSSview, RtxServer). Procesy a vlákna v RTX. Správa paměti. Funkce RtAllocateLockedMemory a RtFreeLockedMemory.
5. Správa procesů. Funkce RtLockProcess a RtUnlockProces. RTX a časovače.
6. RTX funkce pro získání informací o časovačích: RtGetClockTime, RtSetClockTime, RtGetClockResolution a RtGetClockTimerPeriod.
7. Funkce pro práci s časovači: RtCreateTimer, RtDeletTImer, RtCancelTimer, RtSetTimer, RtSetTimerRelative.
8. RTX a sdílená paměť její vytváření, ovládání a rušení: RtCreateSharedMemory, RtOpenSharedMemory.
9. RTX a funkce pro semafory: RtCreateSemaphore a RtOpenSemaphore. RTX a funkce pro ošetření událostí: RtCreteEvent, RtOpenEvent, RtPulseEvent.
10. RTX a funkce pro mutexy: RtCreateMutex, RtReleaseMutex, RtOpenMutex.
11. RTX a funkce ošetřující přerušení: RtAttachInterruptVector, RtReleaseInterruptVector, RtEnableInterrupts, RtDisableInterrupts.
12. RTX a funkce pro operace s porty: RtEnablePortIo, RtDisablePortIo, RtReadPortUchar, RtWritePortUchar.
13. RTX a funkce pro mapování paměti: RtMapMemory, RtUnamMemory. RTX a funkce pro správu sběrnic: RtGetBusDataByOffset, RtTransalateBusAddress, RtSetBusDataByOffset. RTX a dll přístup.