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:

No dates are listed.


Recommended previous and follow-up courses: