Programm
Der Lebenszyklus von Threads; detached vs. joinable; Raceconditions und deren Vermeidung; Mutex; Kommunikationsmechanismen; Condition Variable; Verschiedenes; One-Time-Initialisierung; Atomare Integer-Operationen; Thread Specific Data (Thread Local Storage); Realtime Scheduling; Prioritäten; Scheduling Policies; FIFO; Round-Robin, ...; Gefahren; Priority Inversion etc.; Mechanismen zur Vermeidung ("Mutex-Protokolle" wie Priority Inheritance);
Ziele
Parallele Programmierung war schon immer schwer, und es ist unverständlich, warum Multithreading von modernen Programmiersprachen und Frameworks ungeachtet der Gefahren als einzige Möglichkeit, effiziente Programme zu schreiben, propagiert wird. Parallele Programmierung ist auch unter Linux schwer - wie sollte es auch anders sein? Der Kurs gibt einen soliden Überblick über Multithreading unter Linux (in C) und die Mechanismen, die dort zur Synchronisation und Kommunikation zur Verfügung stehen. Vor allem werden die Gefahren beleuchtet, die unbedachtes Handeln in einer parallelen Welt mit sich bringt.
Voraussetzungen
Solide Kenntnisse in C werden vorausgesetzt, genau wie eine Grundkenntnis des Systems (vgl. Kurs "Linux vom Programmierer-Standpunkt: Überblick").
Noch nicht bewertet