Detail předmětu
Programovací seminář
IPS Ak. rok 2022/2023 zimní semestr 2 kredity
Dynamické přidělování paměti, datový typ ukazatel a reference. Aktivační záznam a rekurze. Překlad, zavádění a laděni binárních programů. Implementace stavových automatů. Implementace algoritmů nad regulárními výrazy. Synchronizace programů. Principy práce s vlákny a procesy. Vybrané synchronizační chyby. Úvod do MPI. Problematika výpadků stránek a dopad na výpočetní výkon.
Garant předmětu
Koordinátor předmětu
Jazyk výuky
Zakončení
Rozsah
- 20 hod. cvičení
- 6 hod. projekty
Bodové hodnocení
- 100 bodů numerická cvičení
Zajišťuje ústav
Cvičící
Rogalewicz Adam, doc. Mgr., Ph.D. (UITS)
Smrčka Aleš, Ing., Ph.D. (UITS)
Získané dovednosti, znalosti a kompetence z předmětu
- Student dokáže vysvětlit problematiku exekuce programů, umí vysvětlit práci s dynamickým přidělováním paměti.
- Student dokáže využít stavové automaty v řízení programů.
- Student zvládne aplikovat regulární výrazy.
- Student ovládá tvorbu paralelních programů.
- Student dokáže identifikovat pokles výkonu související s paměťovými přístupy.
Cíle předmětu
Cílem předmětu je nahlédnout na klíčové kapitoly principů programování a operačních systémů jiným pohledem, zejména v souvislosti s abstrakcemi algoritmů a formálních automatů a modelů tak, aby došlo k vzájemnému propojení jak teoretických, tak praktických dovedností a znalostí.
Proč je předmět vyučován
Cíl předmětu je doplnit znalosti studentů o ta témata programování, na která v jiných předmětech nezbyl prostor. Většinou je daná problematika demonstrována na praktických ukázkách a úkolech.
Požadované prerekvizitní znalosti a dovednosti
Programování v jazyce C. Základy algoritmizace. Základní synchronizační primitiva. Architektura počítače.
Literatura studijní
- A. Kumar, A. K. Verma. A Novel Algorithm for the Conversion of Parallel Regular Expressions to Non-deterministic Finite Automata. 2014. doi: 10.1.1.403.6706
- Kernighan and Ritchie. The C Programming Language, 2nd edition. Chapter A. Storage Allocator for C maloc and free. 1989.
- Maged M. Michael. Scalable lock-free dynamic memory allocation. In Proc. of PLDI'04. doi: 10.1145/996841.996848
- Drepper, D.: What Every Programmer Should Know About Memory, 2007.
- Michael, M.M.: Scalable lock-free dynamic memory allocation. 2004. In Proc. of PLDI'04. doi: 10.1145/996841.996848
Osnova numerických cvičení
DEMO cvičení s rozšířeným výkladem:
- Ukazatele, dynamické přidělování paměti.
- Aktivační záznam, rekurze.
- Překlad a ladění programu
- --
- Demonstrace vzorového řešení zadaného úkolu.
- Stavové automaty, regulární výrazy v *nixových programech
- Synchronizace procesů
- Uváznutí
- --
- Demonstrace vzorového řešení zadaného úkolu.
- Tabulka stránek v OS
- Vliv stránkování a vyrovnávací paměti na výkonu
- Demonstrace vzorového řešení zadaného úkolu.
Průběžná kontrola studia
- Hodnocení prvních dvou úloh po 35 bodech.
- Hodnocení poslední úlohy za 30 bodů.
Podmínky zápočtu
Zápočet je udělen při získání minimálně 50 bodů za semestr a minimálně 5 bodů z každé úlohy.
Zařazení předmětu ve studijních plánech
- Program BIT, 2. ročník, volitelný
- Program BIT (anglicky), 2. ročník, volitelný
- Program IT-BC-3, obor BIT, 2. ročník, volitelný