Detail předmětu

Programovací seminář

IPS Ak. rok 2023/2024 zimní semestr 2 kredity

Aktuální akademický rok

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

česky, anglicky

Zakončení

zápočet

Rozsah

  • 20 hod. seminář
  • 6 hod. projekty

Bodové hodnocení

  • 100 bodů numerická cvičení

Zajišťuje ústav

Cvičící

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í.

  • 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.

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 seminářů

DEMO cvičení s rozšířeným výkladem:

  1. Ukazatele, dynamické přidělování paměti.
  2. Aktivační záznam, rekurze.
  3. Překlad a ladění programu
  4. --
  5. Demonstrace vzorového řešení zadaného úkolu.
  6. Stavové automaty, regulární výrazy v *nixových programech
  7. Synchronizace procesů
  8. Uváznutí
  9. --
  10. Demonstrace vzorového řešení zadaného úkolu.
  11. Tabulka stránek v OS
  12. Vliv stránkování a vyrovnávací paměti na výkonu
  13. 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ý
Nahoru