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?.
| Der Kurs ist den Kategorien zugeordnet: |
Opera?ní systémy → Linux / Unix Programování → C/C++ Ostatní |
Kursstufe: expert
Course duration: 4 days
Kursinhalt:
- 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
Erforderliche Kenntnisse: 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
.Kurstermine:
Empfohlene vorhergehende und anschlieĂźende Kurse:
