Linux – Advanced C Programming (LNX8)

Unix-like systems, Linux - programming

Location, current term course



Brno
11/9/2020 - 11/12/2020
Order
2/1/2021 - 2/4/2021
Order
Praha
10/19/2020 - 10/22/2020
Order
12/14/2020 - 12/17/2020
Order
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 (LNX7)
Schedule:
4 days (9:00 AM - 5:00 PM )
Course price:
700.00 € ( 847.00 € incl. 21% VAT)

Vybrané zákaznické reference

RETIA, a.s., Jindřich S.
Linux – Advanced C Programming ( LNX8)
"Školení bylo pro mne velice přínosné.Jsem s ním velmi spokojen."
RETIA, a.s., Jaromír K.
Linux – Advanced C Programming ( LNX8)
"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."
fyzická osoba, Petr H.
Linux – Advanced C Programming ( LNX8)
"Kurz mne mile překvapil, lektor měl znalosti nad mé očekávání, celkově jsem byl velice spokojen."