MENU
Introduction
CoursesCourses
Pokročilé programování v systému Unix/Linux v jazyku C
Interest in course

Pokročilé programování v systému Unix/Linux v jazyku C (UXAP)

Kurz je orientován na prohloubení znalostí a technik programování v systému Unix se zaměřením na oblasti používané hlavně při programování aplikací plnících roli serveru. V kurzu jsou probírána tři nosná témata: IPC – meziprocesorová komunikace, vícevláknové programování a síťová komunikace pomocí socketů.

The course is included in the following categories: Operační systémyLinux / Unix
ProgramováníC/C++
Ostatní

Difficulty of the course: expert

Course duration: 4 days

Contents of the course:

  • Procesy
  • Vytvoření procesů, návaznosti procesů (process groups, sessions), obsluha ukončení potomků procesu (problematika zombie), vlastnosti procesů
  • Postup vytvoření démona
  • IPC komunikace
  • Signály – účel a použití, obsluha signálů asynchronní a synchronní, blokování, doporučená metodika obsluhy signálů pro zabránění deadlocků
  • Roura, FIFO, socketpair – vlastnosti a použití
  • SystemV IPC - semafory, fronty zpráv, sdílená paměť – princip, vlastnosti a použití jednotlivých mechanismů
  • POSIX IPC – semafory, fronty zpráv, sdílená paměť – princip, vlastnosti a použití jednotlivých mechanismů
  • Používání sdílené paměti – podložené souborem, anonymní (SVR a BSD implementace)
  • Využití vláknových prostředků (mutex, cond. variables) pro komunikaci mezi různými procesy
  • Řešení klasické úlohy producer/consumer pomocí jednotlivých prostředků
  • Vícevláknové aplikace dle POSIX
  • Principy implementace vláken a z toho plynoucí vlastnosti
  • Vytvoření, nastavení vlastností, ukončování vícevláknových aplikací
  • Základní synchronizační mechanismy – mutex, conditional variables, R/W lock, barriers, spinlocks
  • Strategie předcházení deadlockům a chybám vícecláknových aplikací
  • Thread specific data (POSIX a GCC implementace) – účel a použití
  • Síťová komunikace s využitím socketů - použití, vlastnosti, domény INET, INET6 a UNIX datagramovové a streamové spojení, používání multicastingu a broadcastingu v komunikaci
  • Ladění a sledování běžících procesů - ladění pomocí gdb, vzdálené ladění, ladění programů s odstraněnými symboly. Metody sledování procesů (strace, ltrace, pstack, pmap) a profilling. Nástroje pro detekci chyb alokace a přetečení paměti.
  • Účastníci standardně pracují v systému GNU/Linux (používá se aktuální verze distribuce CentOS) a dále mají k dispozici pro porovnání některých rozdílů systémy NetBSD a Solaris

Expected knowledge: znalost jazyka C, základní orientace v programování v systémech Unix na úrovni kurzu C3 a uživatelská znalost práce s systému Unix/Linux

.

Course dates:

26.06. 29.06.2018 Brno
16 400 CZK (without VAT)
09.07. 12.07.2018 Praha
16 400 CZK (without VAT)
09.07. 12.07.2018 Bratislava
650 EUR (without VAT)
24.07. 27.07.2018 Brno 16 400 CZK (without VAT) Order
30.07. 02.08.2018 Praha 16 400 CZK (without VAT) Order
31.07. 03.08.2018 Bratislava 650 EUR (without VAT) Order
20.08. 23.08.2018 Praha 16 400 CZK (without VAT) Order
20.08. 23.08.2018 Bratislava 650 EUR (without VAT) Order
21.08. 24.08.2018 Brno 16 400 CZK (without VAT) Order
03.09. 06.09.2018 Košice 650 EUR (without VAT) Order
10.09. 13.09.2018 Ostrava 16 400 CZK (without VAT) Order
17.09. 20.09.2018 Bratislava 650 EUR (without VAT) Order
17.09. 20.09.2018 Brno 16 400 CZK (without VAT) Order
18.09. 21.09.2018 Praha 16 400 CZK (without VAT) Order
09.10. 12.10.2018 Praha 16 400 CZK (without VAT) Order
15.10. 18.10.2018 Brno 16 400 CZK (without VAT) Order
15.10. 18.10.2018 Bratislava 650 EUR (without VAT) Order

Recommended previous and follow-up courses: