Detail předmětu

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

FEKT-LRTSAk. rok: 2010/2011

Základní pojmy z oblasti řídicích systémů, systémů reálného času a řízení technologických procesů. HW architektury a multitasking. Princip činnosti systému reálného času (RTOS) a jeho vlastnosti. Plánovací algoritmy pro jednoprocesorové systémy. Základní prvky v RTOS: procesy, vlákna, semafory, mutexy, kritické sekce, události. Další aspekty v RTOS: sdílené prostředky, IPC, synchronizace procesů, monitor procesu, deadlock, inverze priorit, starvation, race condition, správa paměti a zdrojů. Ovládání periférií v I/O prostoru, paměti a na sběrnici PCI. Přerušení v RTOS. Vysoká funkčnost a bezpečnost řídicích systémů reálného času. Operační systém reálného času na bázi Windows - RTX.

Jazyk výuky

čeština

Počet kreditů

5

Garant předmětu

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

Absolvováním kurzu získají studenti znalosti v oblasti implementace řídicích systémů v moderním operačním systému reálného času za použití postupů zohledňující vysokou funkčnost a vysokou bezpečnost řídicího systému.

Prerekvizity

Jsou požadovány znalosti v rozsahu bakalářského studia, zejména pak znalost jazyka C nebo C++.

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

Metody vyučování závisejí na způsobu výuky a jsou popsány článkem 7 Studijního a zkušebního řádu VUT.

Způsob a kritéria hodnocení

Laboratorní projekt + domácí úkol: 35 bodů.
Závěrečná písemná zkouška: 65 bodů.

Osnovy výuky

Klasické řízení a řídicí systémy. Multitasking a operační systémy, procesy a vlákna. Operační systémy reálného času. Determinismus. Plánovací algoritmy a architektury. Architektura x86. Události, mutexy, semafory, kritické sekce. Race condition, deadlock, livelock, starvation, inverze priorit. Správa paměti v RTOS. Komunikační sběrnice PCI. Faul-Tolerant systémy.

Učební cíle

Cílem předmětu je naučit studenty implementovat řídicí algoritmy ve 23-bitových systémech reálného času. Během kurzu se studenti seznámí s problematikou operačních systémů reálného času na praktických příkladech, kde se naučí vytvářet více vláknové procesy a synchronizovat jejich činnost pomocí standardních prostředků operačního systému (semafory, kritické sekce, mutexy, události ...). Naučí se implementovat časově kritické algoritmy reagující na externí události a algoritmy vyžadující pevnou periodu vzorkování (regulátory, převodníky ...). Během kurzu se studenti seznámí se základními principy sdílení dat a HW prostředků mezi procesy běžícími v reálném čase a procesy běžícími na úrovni GUI. Praktické znalosti studenti získají při programování operačního systému RTX 8.1 na architektuře IBM PC se sběrnicí PCI.

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

Vymezení kontrolované výuky a způsob jejího provádění stanoví každoročně aktualizovaná vyhláška 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-ML magisterský navazující

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

  • Program EEKR-CZV celoživotní vzdělávání (není studentem)

    obor ET-CZV , 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.