Linux – Advanced C Programming (LNXPR2)

Unix-like systems, Linux - programming

Location, current course term

Contact us

Vlastní Školení na míru (termín, lokalita, obsah, délka)

The course:

Hide detail
  • Procesy
    1. Vytvoření procesů, návaznosti procesů (process groups, sessions), obsluha ukončení potomků procesu (problematika zombie), vlastnosti procesů
    2. Postup vytvoření démona
  • IPC komunikace
    1. 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ů
    2. Roura, FIFO, socketpair - vlastnosti a použití
    3. SystemV IPC - semafory, fronty zpráv, sdílená paměť - princip, vlastnosti a použití jednotlivých mechanismů
    4. POSIX IPC - semafory, fronty zpráv, sdílená paměť - princip, vlastnosti a použití jednotlivých mechanismů
    5. Používání sdílené paměti - podložené souborem, anonymní (SVR a BSD implementace)
    6. Využití vláknových prostředků (mutex, cond. variables) pro komunikaci mezi různými procesy
    7. Řešení klasické úlohy producer/consumer pomocí jednotlivých prostředků
  • Vícevláknové aplikace dle normy POSIX
    1. Principy implementace vláken a z toho plynoucí vlastnosti
    2. Vytvoření, nastavení vlastností, ukončování vícevláknových aplikací
    3. Základní synchronizační mechanismy - mutex, conditional variables, R/W lock, barriers, spinlocks
    4. Strategie předcházení deadlockům a chybám vícecláknových aplikací
    5. Thread specific data (POSIX a GCC implementace) - účel a použití
  • Atomické operace, odstraňování zámků a optimalizace
    1. Použití atomic builtins v gcc
  • Síťová komunikace s využitím socketů
    1. Použití a vlastnosti socketů
    2. Domény INET
    3. INET6 a UNIX datagramovové a streamové spojení
    4. Používání multicastingu a broadcastingu v komunikaci
  • Pokročilá práce se TCP/IP sockety
    1. Neblokující TCP/IP spojení a jeho navázání
    2. Sledování velkého množství descriptorů a doporučení
    3. Srovnání volání poll, select a epoll
  • Pokročilé operace se signály
    1. Realtime signály
    2. Signály nesoucí data
    3. Příjem signálů s epoll pomocí deskriptorů
  • Ladění a sledování běžících procesů
    1. Ladění pomocí gdb
    2. Vzdálené ladění
    3. Ladění programů s odstraněnými symboly
    4. Metody sledování procesů (strace, ltrace, pstack, pmap) a profilling.
    5. Nástroje pro detekci chyb alokace a přetečení paměti.
  • Práce s nástrojem Valgrind pro hledání problémů s přístupem k paměti a memory leaků
    1. Ladění problémů s pamětí
    2. Detekce memory leaků
    3. Detekce race conditions
Recommended previous course:
Linux – Basic C Programming (LNXPR1)
Schedule:
4 days (9:00 AM - 5:00 PM )
Language:

Vybrané zákaznické reference

Advantech Czech s.r.o., Tomáš P.
Linux – Advanced C Programming ( LNXPR2)
"Na tomto školení jsem si prohloubil znalosti různých témat a dozvěděl jsem se pár nových věcí, které by mi mohly usnadnit práci."
RETIA, a.s., Jindřich S.
Linux – Advanced C Programming ( LNXPR2)
"Školení bylo pro mne velice přínosné.Jsem s ním velmi spokojen."
RETIA, a.s., Jaromír K.
Linux – Advanced C Programming ( LNXPR2)
"Konečně ucelené školení o linuxu. Spoustu jednotlivostí jsem již dřív věděl, ale až tady jsem si je dokázal propojit dohromady."
Petr Hliněný, Petr H.
Linux – Advanced C Programming ( LNXPR2)
"Kurz mne mile překvapil, lektor měl znalosti nad mé očekávání, celkově jsem byl velice spokojen."