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?.
| Kurz je zaradenĂ˝ v kategĂłriĂĄch: |
Opera?ní systémy → Linux / Unix Programování → C/C++ Ostatní |
NĂĄroÄnosĹĽ kurzu: expert
DĂŠlka kurzu: 4 dny
NĂĄplĹ kurzu:
- 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 pouití, obsluha signál? asynchronní a synchronní, blokování, doporu?ená metodika obsluhy signál? pro zabrán?ní deadlock?
- Roura, FIFO, socketpair vlastnosti a pouití
- SystemV IPC - semafory, fronty zpráv, sdílená pam?? princip, vlastnosti a pouití jednotlivých mechanism?
- POSIX IPC semafory, fronty zpráv, sdílená pam?? princip, vlastnosti a pouití jednotlivých mechanism?
- Pouívání sdílené pam?ti podloené souborem, anonymní (SVR a BSD implementace)
- Vyuití vláknových prost?edk? (mutex, cond. variables) pro komunikaci mezi r?znými procesy
- ?eení 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 pouití
- Sí?ová komunikace s vyuitím socket? - pouití, 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
PredpokladanĂŠ znalosti: znalost jazyka C, základní orientace v programování v systémech Unix na úrovni kurzu C3 a uivatelská znalost práce s systému Unix/Linux
.TermĂny kurzu:
OdporuÄenĂŠ predchĂĄdzajĂşce a nadväzujĂşce kurzy:
