Detail předmětu

Operační systémy reálného času

FEKT-MRTSAk. rok: 2015/2016

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

čeština

Počet kreditů

5

Výsledky učení předmětu

Absolvent předmětu je schopen:
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

Posluchač by měl mít znalosti a zejména praktické dovednosti z programování v některém vyšším programovacím jazyce jako C, C++ nebo C#. Posluchač by měl být schopen provést samostatnou analýzu úlohy definované buďto slovně nebo pomocí vývojového či stavového diagramu a z provedené analýzy provést algoritmizaci a implementaci úlohy. Měl by mít základní přehled o číslicových obvodech, procesorové technice a o teorii řízení v rozsahu bakalářského studia elektrotechnického směru. Dále by měl mít posluchač znalosti z matematické statistiky, teorie pravděpodobnost, matematické analýzy a fyziky v rozsahu bakalářského studia libovolného směru. Velkou výhodou posluchače je schopnost a ochota pracovat samostatně nebo v týmu na projektu zabývající se problémem v oblastí řízení a regulace.

Plánované vzdělávací činnosti a výukové metody

Během semestru se předmět skládá z pravidelných přednášek, cvičení, konzultací a závěrečného projektu v souladu s články 7.2a, 7.2c, 7.3 a 7.4 Studijního a zkušebního řádu VUT.

Způsob a kritéria hodnocení

Kritérium hodnocení kurzu je založeno na bodovém hodnocení v souladu s článkem 13 Studijního a zkušebního řádu VUT. Horní hranice bodů je v jednotlivých kategoriích stanovena takto:
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

1. Klasické řízení a řídicí systémy. Řízení ve smyčce.
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

Cílem předmětu je seznámit posluchače s problematikou implementace řídicích algoritmů do 32bitových operačních systémů reálného času s důrazem na bezpečnost a spolehlivost řídicího systému.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

Kontrolovaná výuka předmětu je určena v souladu článkem 7.5 Studijního a zkušebního řádu VUT a je prováděna vyučujícím kurzu způsobem a v míře odpovídající zvyklostem akademické obce. Nahrazování zameškané výuky je řešeno individuálně dle požadavků posluchače a uvážení garanta předmětu.

Základní literatura

Douglas, B., P. Doing Hard Time, Reading, Mass.:Addison-Wesley, 2000 (EN)

Doporučená literatura

Chowdary, V. P. Simple Real-time Operating System: A Kernel Inside View for a Beginner, Trafford Publishing, 2007 (EN)

Zařazení předmětu ve studijních plánech

  • Program EEKR-M1 magisterský navazující

    obor M1-KAM , 1. ročník, zimní semestr, volitelný oborový

  • Program EEKR-M magisterský navazující

    obor M-KAM , 1. ročník, zimní semestr, volitelný oborový

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova

1. Základní pojmy z oblasti řídicích systémů, operačních systémů reálného času (RTOS) a řízení technologických procesů.
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í

26 hod., nepovinná

Vyučující / Lektor

Osnova

1.Úvod do RTX. Architektura RTX. RTX API. Konfigurace RTX Runtime. Manuální a automatické spuštění RTX. Běh rtss procesu. Ukončení rtss procesu.
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.