Název:

Programovací seminář

Zkratka:IPS
Ak.rok:2019/2020
Semestr:zimní
Studijní plán:
ProgramObor/
specializace
RočníkPovinnost
BIT-2.volitelný
IT-BC-3BIT2.volitelný
Vyučovací jazyk:čeština
Kredity:2 kredity
Ukončení:zápočet
Výuka:
hod./sempřednáškasem./cvič.lab. cvič.poč. cvič.jiná
Rozsah:020006
 zkouškatestycvičenílaboratořeostatní
Body:08010010
Garant:Smrčka Aleš, Ing., Ph.D. (UITS)
Zástupce garanta:Rogalewicz Adam, doc. Mgr., Ph.D. (UITS)
Přednášející:Peringer Petr, Dr. Ing. (UITS)
Rogalewicz Adam, doc. Mgr., Ph.D. (UITS)
Smrčka Aleš, Ing., Ph.D. (UITS)
Cvičící:Peringer Petr, Dr. Ing. (UITS)
Rogalewicz Adam, doc. Mgr., Ph.D. (UITS)
Smrčka Aleš, Ing., Ph.D. (UITS)
Fakulta:Fakulta informačních technologií VUT v Brně
Pracoviště:Ústav inteligentních systémů FIT VUT v Brně
Rozvrh:
DenVýukaTýdenMístnostOdDoPSKSkupiny
přednáškavýukyE112 14:0015:502BIA 2BIB 3BIT xx
 
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í.
Anotace:
  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.
Požadované prerekvizitní znalosti a dovednosti:
  Programování v jazyce C. Základy algoritmizace. Základní synchronizační primitiva. Architektura počítače.
Získané dovednosti, znalosti a kompetence:
  
  • 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.
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. (cvičení viz níže)
  5. (cvičení viz níže)
  6. Stavové automaty, regulární výrazy v *nixových programech
  7. Synchronizace procesů
  8. Uváznutí
  9. (cvičení viz níže)
  10. (cvičení viz níže)
  11. Tabulka stránek v OS
  12. Vliv stránkování a vyrovnávací paměti na výkonu
  13. Zápočtová písemka
Osnova počítačových cvičení:
 
  1. -
  2. -
  3. -
  4. Cvičení s konzultací k úloze (cvičení s výkladem).
  5. Řešení a předvedení zadaného úkolu s konzultací (cvičení s výkladem).
  6. -
  7. -
  8. -
  9. Cvičení s konzultací k úloze (cvičení s výkladem).
  10. Řešení a předvedení zadaného úkolu s konzultací (cvičení s výkladem).
  11. -
  12. -
  13. -
Literatura referenční:
 
  • Kernighan, B.; Ritchie, D.: The C Programming Language, 2nd edition. Kapitola A. Alokátor paměti pro maloc a free v C. Addison-Wesley, 1989.
  • Michael, M.M.: Scalable lock-free dynamic memory allocation. 2004. In Proc. of PLDI'04. doi: 10.1145/996841.996848
  • Drepper, D.: What Every Programmer Should Know About Memory, 2007.
Literatura studijní:
 
  • Kumar, A.; Verma, A. K.: A Novel Algorithm for the Conversion of Parallel Regular Expressions to Non-deterministic Finite Automata. 2014. doi: 10.1.1.403.6706
Průběžná kontrola studia:
  
  • 10 bodů za každou úlohu řešenou ve dvojici, celkem 20
  • 80 bodů zápočtová písemka
Podmínky zápočtu:
  Zápočet je udělen při získání minimálně 50 bodů za semestr.
 

Vaše IPv4 adresa: 34.229.126.29