Intendierte Lernergebnisse
Verstehen der wichtigsten Konzepte von Betriebssystemen anhand praktischer Programmierbeispiele unter Linux.Prozesse/Threads und Interprozesskommunikation praktisch kennen und verstehenKernel Module entwickeln und ladenSpeicherverwaltung verstehen (C, C++)
Lehrmethodik
Übungsthemen synchron mit gleichnamiger VorlesungÜbungsblätter: Präsentation und DiskussionKlausur am Ende des Semesters
Inhalt/e
Systemnahe Programmierung unter Linux um die wichtigsten Konzepte von Betriebssystemen praktisch zu erlernen. Der Kurs beginnt mit einer Einführung in die Programmiersprache C. Dieses Semester wird vor allem Interprozesskommunikation und Thread-Programmierung geübt. Kernel-Programmierung wird nur noch im Rahmen von Kernel-Modulen diskutiert. Der Kurs konzentriert sich auf Linux! Systemprogrammierung unter Windows oder Mac OS wird nicht behandelt.Systemnahe Programmierung in CInterprozesskommunikation (IPC) mit verschiedenen Methoden (Pipes, Semaphoren, etc.)Thread-ProgrammierungProgrammierung von Kernel-Modulen unter Linux
Erwartete Vorkenntnisse
Vorkenntnisse in der Programmiersprache C oder gute Programmierkenntnisse sind von Vorteil. Vorkenntnisse in Linux wünschenswert, sowie der Umgang mit Virtuellen Maschinen.
Literatur
In absteigender RelevanzOperating System Concepts, 10th EditionAbraham Silberschatz, Peter B. Galvin, Greg GagneISBN: 978-1-119-32091-3Tiny C ProjectsDan GookinISBN 9781633439825Modern CJens GustedtISBN: 9781617295812Moderne Betriebssysteme (4. Auflage)Andrew S. Tanenbaum, Herbert BosISBN: 978-3-86894-270-5