Programování systémů reálného času

Nemáte přístup do kurzu
Toto je tzv. shluknutý kurz. Skládá se z několika samostatných předmětů, které sdílejí výukové materiály, úkoly, testy apod. Níže si můžete zobrazit informace o jednotlivých předmětech tvořících tento shluk.
Programování systémů reálného času (Hlavní kurz) B3M35PSR
Kredity 6
Semestry zimní
Zakončení zápočet a zkouška
Jazyk výuky čeština
Rozsah výuky 2P+2C
Anotace
Cílem tohoto předmětu je poskytnout studentům základní znalosti v oblasti vývoje softwaru pro řídicí či jiné systémy pracující v reálném čase. Hlavní důraz bude kladen na vestavné systémy vybavené některým z operačních systémů reálného času (RTOS). Na přednáškách se studenti seznámí s teorií systémů pracujících v reálném čase, která slouží k formálnímu potvrzení správnosti kritických aplikací. Další část přednášek bude zaměřena na bezpečnostně kritické (safety-critical) aplikace, jejichž selhání může mít katastrofické následky. Na cvičeních budou studenti řešit nejprve několik menších úloh s cílem jednak zvládnout práci se základními komponentami RTOS VxWorks a jednak změřit časové parametry OS a hardwaru, které jsou potřebné při výběru platformy vhodné pro danou aplikaci. Poté se bude řešit složitější úloha - časově náročné řízení modelu, kde bude možno plně využít vlastnosti použitého RTOS. Úlohy na cvičeních se budou řešit v jazyku C.
Cíle studia
Žádná data.
Osnovy přednášek
1. Úvod do systémů reálného času, požadavky, vlastnosti, aplikace
2. Operační systém VxWorks
3. POSIX 1003.1b - přenositelné rozhraní operačních systémů reálného času
4. Referenční model systému reálného času
5. Off-line (hodinkami řízené) rozvrhování
6. Rozvrhování se statickou prioritou
7. Rozvrhování s dynamickou prioritou
8. Správa sdílených zdrojů v systémech reálného času
9. Kombinování real-time a běžných úloh
10. Vývoj bezpečnostně-kritického (safety-critical) aplikací, standardy pro funkční bezpečnost, úroveň bezpečnosti (SIL)
11. Techniky pro zvýšení spolehlivosti bezpečnostně kritického softwaru (redundance, kódování, dekompozice)
12. Studie HAZOP, software HAZOP, ukázka aplikace
13. Vícejádrové systémy a reálný čas, přehled RTOS
Osnovy cvičení
1. Základy VxWorks IDE: tvorba aplikaci, simulátor VxWorks, přístup k dokumentaci, ladění
2. VxWorks API: Mutexy, semafory
3. VxWorks API: Real-Time procesy a sdílená paměť
4. Blokování na mutexu, dědění priorit
5. Cyklická exekutiva, měření doby běhu (WCET)
6. Měření latence rozvrhovače
7. Měření latence při komunikaci po Ethernetu
8. Semestrální práce - distribuované řízení motoru v reálném čase (steer-by-wire) + vizualizace pomocí vestavěného web serveru
Literatura
Buttazzo, Giorgio C, Hard Real-Time Computing Systems, Predictable Scheduling Algorithms and Applications, Springer, 2011

Burns A. and Wellings A.: Real-Time Systems and Programming Languages (Fourth Edition), Ada 2005, Real-Time Java and C/Real-Time POSIX, Addison Wesley Longmain, 2009

Redmill F., Morris Ch. et al, System Safety: HAZOP and Software HAZOP, Wiley, April 1999

Požadavky
Zájemce musí zvládat základy programování v jazyce C a programování vícevláknových aplikací. Výhodou (ale ne podmínkou) je absolvování předmětu A0B35APO a B4B35OSY.
Stránky předmětu: https://moodle.dce.fel.cvut.cz/
Programování systémů reálného času A4B35PSR
Kredity 6
Semestry zimní
Zakončení zápočet a zkouška
Jazyk výuky čeština
Rozsah výuky 2P+2C
Anotace
Cílem tohoto předmětu je poskytnout studentům základní znalosti v oblasti vývoje SW pro řídicí systémy vybavené některým z operačních systémů reálného času RTOS. Na cvičeních budou studenti řešit nejprve několik menších úloh s cílem jednak zvládnout práci se základními komponenty RTOS VxWorks a jednak změřit časové parametry OS a hardwaru, které jsou potřebné při výběru platformy vhodné pro danou aplikaci. Poté budou řešit složitější úlohu - časově náročné řízení modelu, kde budou moci plně využít vlastností použitého RTOS. Na přednáškách budou studenti seznámeni jak s teorií systémů pracujících v reálném času, která slouží k formálnímu potvrzení správnosti bezpečnostně kritických aplikací, tak s některými praktikami softwarového inženýrství, které vedou ke zvyšování kvality výsledných softwarových produktů. \\Výsledek studentské ankety předmětu je zde: http://www.fel.cvut.cz/anketa/aktualni/courses/A3M35PSR \\Výsledek studentské ankety předmětu je zde: http://www.fel.cvut.cz/anketa/aktualni/courses/A4B35PSR
Cíle studia
Žádná data.
Osnovy přednášek
1. Systémy reálného času, požadavky, vlastnosti
2. OS VxWorks
3. Rozhraní podle normy POSIX
4. Jazyk C pro pokročilé, překladač GCC
5. Kódovací standardy, verzovací systémy, certifikace
6. Časování přístupu k paměti; správa dynamické paměti
7. Statické rozvrhování
8. Rozvrhování s dynamickou prioritou
9. Rozvrhování se statickou prioritou
10. Problémy v analýze RT aplikací
11. Správa sdílených zdrojů
12. Správa sdílených zdrojů II.
13. Ostatní real-time operační systémy; přerušovací systém; podpora různých HW platforem (BSP
14. Kombinování real-time úloh s běžnými úlohami

Osnovy cvičení
1. Seznámení se s OS VxWorks a jeho vývojovým prostředím. Překlad, ladění, prohlížeč událostí.
2. Úloha 1: VxWorks API: mutexy, semafory.
3. Úloha 2: VxWorks API: fronty zpráv, časovače
4. Úloha 3: VxWorks API: procesy, sdílená paměti
5. Úloha 4: Benchmark latencí rozvrhovače OS.
6. Úloha 5: Vliv přístupu k paměti na dobu běhu (cache, prefetching, ...)
7. Úloha 6: Měření latence při komunikaci přes ethernet
8. Úloha 7: Měření času blokování na mutexu, dědění priorit
9. Test; zadání úlohy 8 - řízení motorku
10. Řešení úlohy 8
11. Řešení úlohy 8
12. Řešení úlohy 8
13. Odevzdávání úlohy 8
14. Zápočet
Literatura
1. Robbins, K., Robbins, S.: Practical UNIX Programming: A Guide to Concurrency, Communication and Multithreading. Prentice Hall, 1996
2. Liu J. W. S.: Real-Time Systems, Prentice Hall, 2000
3. Burns A., Wellings A.: Real-Time Systems and Programming Languages (Third Edition). Addison Wesley Longmain, 2001.
4. VxWorks manuals (http://www.wrs.com)

Požadavky
Zájemce musí zvládat základy programování v jazyce C a programování vícevláknových aplikací. Výhodou je absolvování předmětu A0B35APO.
Stránky předmětu: https://moodle.dce.fel.cvut.cz/
Programování systémů reálného času B4B35PSR
Kredity 6
Semestry zimní
Zakončení zápočet a zkouška
Jazyk výuky čeština
Rozsah výuky 2P+2C
Anotace
Cílem tohoto předmětu je poskytnout studentům základní znalosti v oblasti vývoje softwaru pro řídicí či jiné systémy pracující v reálném čase. Hlavní důraz bude kladen na vestavné systémy vybavené některým z operačních systémů reálného času (RTOS). Na přednáškách se studenti seznámí s teorií systémů pracujících v reálném čase, která slouží k formálnímu potvrzení správnosti kritických aplikací. Další část přednášek bude zaměřena na bezpečnostně kritické (safety-critical) aplikace, jejichž selhání může mít katastrofické následky. Na cvičeních budou studenti řešit nejprve několik menších úloh s cílem jednak zvládnout práci se základními komponentami RTOS VxWorks a jednak změřit časové parametry OS a hardwaru, které jsou potřebné při výběru platformy vhodné pro danou aplikaci. Poté se bude řešit složitější úloha - časově náročné řízení modelu, kde bude možno plně využít vlastnosti použitého RTOS. Úlohy na cvičeních se budou řešit v jazyku C.
Cíle studia
Žádná data.
Osnovy přednášek
1. Úvod do systémů reálného času, požadavky, vlastnosti, aplikace
2. Operační systém VxWorks
3. POSIX 1003.1b - přenositelné rozhraní operačních systémů reálného času
4. Referenční model systému reálného času
5. Off-line (hodinkami řízené) rozvrhování
6. Rozvrhování se statickou prioritou
7. Rozvrhování s dynamickou prioritou
8. Správa sdílených zdrojů v systémech reálného času
9. Kombinování real-time a běžných úloh
10. Vývoj bezpečnostně-kritického (safety-critical) aplikací, standardy pro funkční bezpečnost, úroveň bezpečnosti (SIL)
11. Techniky pro zvýšení spolehlivosti bezpečnostně kritického softwaru (redundance, kódování, dekompozice)
12. Studie HAZOP, software HAZOP, ukázka aplikace
13. Vícejádrové systémy a reálný čas, přehled RTOS
Osnovy cvičení
1. Základy VxWorks IDE: tvorba aplikaci, simulátor VxWorks, přístup k dokumentaci, ladění
2. VxWorks API: Mutexy, semafory
3. VxWorks API: Real-Time procesy a sdílená paměť
4. Blokování na mutexu, dědění priorit
5. Cyklická exekutiva, měření doby běhu (WCET)
6. Měření latence rozvrhovače
7. Měření latence při komunikaci po Ethernetu
8. Semestrální práce - distribuované řízení motoru v reálném čase (steer-by-wire) + vizualizace pomocí vestavěného web serveru
Literatura
Buttazzo, Giorgio C, Hard Real-Time Computing Systems, Predictable Scheduling Algorithms and Applications, Springer, 2011
(knihovna ČVUT má jeden kus, naše katedra také, další pořídíme)

Burns A. and Wellings A.: Real-Time Systems and Programming Languages (Fourth Edition), Ada 2005, Real-Time Java and C/Real-Time POSIX, Addison Wesley Longmain, 2009
(naše katedra má 1 kus)

Redmill F., Morris Ch. et al, System Safety: HAZOP and Software HAZOP, Wiley, April 1999
(naše katedra má 1 kus)

Požadavky
Zájemce musí zvládat základy programování v jazyce C a programování vícevláknových aplikací. Výhodou je absolvování předmětu A0B35APO.
Stránky předmětu: https://moodle.dce.fel.cvut.cz/
Real-time Systems Programming BE4B35PSR
Kredity 6
Semestry zimní
Zakončení zápočet a zkouška
Jazyk výuky angličtina
Rozsah výuky 2P+2C
Anotace
Cílem tohoto předmětu je poskytnout studentům základní znalosti v oblasti vývoje softwaru pro řídicí či jiné systémy pracující v reálném čase. Hlavní důraz bude kladen na vestavné systémy vybavené některým z operačních systémů reálného času (RTOS). Na přednáškách se studenti seznámí s teorií systémů pracujících v reálném čase, která slouží k formálnímu potvrzení správnosti kritických aplikací. Další část přednášek bude zaměřena na bezpečnostně kritické (safety-critical) aplikace, jejichž selhání může mít katastrofické následky. Na cvičeních budou studenti řešit nejprve několik menších úloh s cílem jednak zvládnout práci se základními komponentami RTOS VxWorks a jednak změřit časové parametry OS a hardwaru, které jsou potřebné při výběru platformy vhodné pro danou aplikaci. Poté se bude řešit složitější úloha - časově náročné řízení modelu, kde bude možno plně využít vlastnosti použitého RTOS. Úlohy na cvičeních se budou řešit v jazyku C.
Cíle studia
Žádná data.
Osnovy přednášek
1. Úvod do systémů reálného času, požadavky, vlastnosti, aplikace
2. Operační systém VxWorks
3. POSIX 1003.1b - přenositelné rozhraní operačních systémů reálného času
4. Referenční model systému reálného času
5. Off-line (hodinkami řízené) rozvrhování
6. Rozvrhování se statickou prioritou
7. Rozvrhování s dynamickou prioritou
8. Správa sdílených zdrojů v systémech reálného času
9. Kombinování real-time a běžných úloh
10. Vývoj bezpečnostně-kritického (safety-critical) aplikací, standardy pro funkční bezpečnost, úroveň bezpečnosti (SIL)
11. Techniky pro zvýšení spolehlivosti bezpečnostně kritického softwaru (redundance, kódování, dekompozice)
12. Studie HAZOP, software HAZOP, ukázka aplikace
13. Vícejádrové systémy a reálný čas, přehled RTOS
Osnovy cvičení
1. Základy VxWorks IDE: tvorba aplikaci, simulátor VxWorks, přístup k dokumentaci, ladění
2. VxWorks API: Mutexy, semafory
3. VxWorks API: Real-Time procesy a sdílená paměť
4. Blokování na mutexu, dědění priorit
5. Cyklická exekutiva, měření doby běhu (WCET)
6. Měření latence rozvrhovače
7. Měření latence při komunikaci po Ethernetu
8. Semestrální práce - distribuované řízení motoru v reálném čase (steer-by-wire) + vizualizace pomocí vestavěného web serveru
Literatura
Buttazzo, Giorgio C, Hard Real-Time Computing Systems, Predictable Scheduling Algorithms and Applications, Springer, 2011
(knihovna ČVUT má jeden kus, naše katedra také, další pořídíme)

Burns A. and Wellings A.: Real-Time Systems and Programming Languages (Fourth Edition), Ada 2005, Real-Time Java and C/Real-Time POSIX, Addison Wesley Longmain, 2009
(naše katedra má 1 kus)

Redmill F., Morris Ch. et al, System Safety: HAZOP and Software HAZOP, Wiley, April 1999
(naše katedra má 1 kus)

Požadavky
Zájemce musí zvládat základy programování v jazyce C a programování vícevláknových aplikací. Výhodou je absolvování předmětu A0B35APO.
Stránky předmětu: https://moodle.dce.fel.cvut.cz/
Real-time Systems Programming BE3M35PSR
Kredity 6
Semestry zimní
Zakončení zápočet a zkouška
Jazyk výuky angličtina
Rozsah výuky 2P+2C
Anotace
The goal of this course is to provide students with basic knowledge about software development for real-time systems, for example in control and embedded applications. The main focus is on embedded systems equipped with a real-time operating system (RTOS). Lectures will cover real-time systems theory, which can be used to formally verify timing correctness such systems. Another set of lectures will introduce methods and techniques used for development of safety-critical systems, whose failure may have catastrophic consequences. During labs, students will first solve a few simple tasks to familiarize them with basic components of VxWorks RTOS and to benchmark the used OS and hardware (Xilinx Zynq). The obtained metrics represent the typical criteria for assessing the suitability of a given platform for the given application. After the simple tasks, students will solve complex task of time-critical motion control application which will require full utilization of RTOS features. All the tasks at the labs will be implemented in C (or C++) language.
Cíle studia
Žádná data.
Osnovy přednášek
1. Introduction to real-time systems, requirements, properties, applications
2. VxWorks operating system (OS)
3. POSIX 1003.1b - portable real-time OS interface
4. Reference model of real-time system
5. Off-line (clock-driven) scheduling
6. Fixed priority scheduling and analysis
7. Dynamic priority scheduling and analysis
8. Shared resource management
9. Combining real-time and non-real-time task, temporal isolation
10. Development of safety critical applications, functional safety standards, safety integriti level (SIL)
11. Techniques for increasing reliability of safety-critical software (redundancy, information coding, decomposition)
12. HAZOP study, software HAZOP, example
13. Multi-core systems and real-time, overview of RTOSes
Osnovy cvičení
1. VxWorks IDE basics: creating applications, VxWorks simlator, documentacion, debugging
2. VxWorks API: Mutexes, semaphores
3. VxWorks API: Real-Time processes and shared memory
4. Blocking on mutex, priority inheritance
5. Cyclic executive, worst-case execution time (WCET) measurement
6. Scheduler latency measurement
7. Ethernet communication latency measurement
8. Semestral work - distributed real-time motor controller (steer-by-wire) + visualisation with an in-application web server
Literatura
Buttazzo, Giorgio C, Hard Real-Time Computing Systems, Predictable Scheduling Algorithms and Applications, Springer, 2011
(knihovna ČVUT má jeden kus, naše katedra také, další pořídíme)

Burns A. and Wellings A.: Real-Time Systems and Programming Languages (Fourth Edition), Ada 2005, Real-Time Java and C/Real-Time POSIX, Addison Wesley Longmain, 2009
(naše katedra má 1 kus)

Redmill F., Morris Ch. et al, System Safety: HAZOP and Software HAZOP, Wiley, April 1999
(naše katedra má 1 kus)

Požadavky
Attendee must be capable of writing basic C programs and understand principles of multithreaded programming. It is an advantage (but not requirements) to finish B0B36APO and B4B35OSY before taking this course.
Programování systémů reálného času R35PSR
Kredity 6
Semestry zimní
Zakončení zápočet a zkouška
Jazyk výuky čeština
Rozsah výuky 2P+2C
Anotace
http://www.fel.cvut.cz/anketa/aktualni/courses/R35PSR
\\Výsledek studentské ankety předmětu je zde: http://www.fel.cvut.cz/anketa/aktualni/courses/R35PSR
Cíle studia
Žádná data.
Osnovy přednášek
Žádná data.
Osnovy cvičení
Žádná data.
Literatura
Žádná data.
Požadavky
Žádná data.
Za správnost dat zodpovídá: Studijní Informační Systém (KOS)