Rozhraní operačního systému (LNXPR2)

Unixové systémy, Linux - programování

Programování spolupracujících procesů či vláken pomocí POSIX rozhraní a linuxových rozšíření je dost „dřevorubecká“ práce. Pustit se do ní znamená tvořit si vlastní komunikační framework. Nechcete použít existující framework, ať už pro C, C++, nebo raději rovnou pro Rust? Pojďte se podívat a vyzkoušet si, jak se pracuje přímo s posixovou platformou.

Privátní školení a termíny na míru

Toto téma je možné zrealizovat pouze jako privátní, a to nejen formou uzavřeného firemního kurzu, ale také jako individuální konzultaci pro jednotlivce.

V případě kurzu na míru je níže uvedená osnova pouze inspirací. Finální obsah vzdělávání, jeho délka i termíny budou přizpůsobeny konkrétním vstupním znalostem, potřebám a cílům účastníků.

Cenovou nabídku vám rádi připravíme na základě vstupů zaslaných e-mailem nebo zadaných prostřednictvím poptávkového formuláře. Cena privátního školení vychází z náročnosti požadované obsahové náplně školení, časového rozsahu a celkového počtu přihlášených osob.

Lokalita, termín kurzu

Kontaktujte nás

Virtuálně se můžete přidat i ke školením ve výše nabízených lokalitách. Do poznámky v objednávce prosím uveďte „Připojím se virtuálně“

Náplň kurzu:

Skrýt detaily
  • 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
Předpokládané znalosti:
Znalost jazyka C, základní orientace v programování v systémech Unix a uživatelská znalost práce se systému Unix/Linux.
Doporučený předchozí kurz:
Základy unixového programování (LNXPR1)
Časový rozvrh:
4 dny (9:00hod. - 17:00hod.)

Vybrané zákaznické reference

Advantech Czech s.r.o., Tomáš P.
Rozhraní operačního systému ( 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.
Rozhraní operačního systému ( LNXPR2)
"Školení bylo pro mne velice přínosné.Jsem s ním velmi spokojen."
RETIA, a.s., Jaromír K.
Rozhraní operačního systému ( 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.
Rozhraní operačního systému ( LNXPR2)
"Kurz mne mile překvapil, lektor měl znalosti nad mé očekávání, celkově jsem byl velice spokojen."