Lernergebnisse
Die Studierenden verfügen über solides Grundverständnis der maschinennahen Programmierung (Systemprogrammierung) sowie des Aufbaus und der Funktionsweise von Betriebssystemen. Sie können die Theorie nebenläufiger Prozesse, deren Synchronisation und Kommunikation sowie der Verwaltung von Betriebsmitteln erklären und rekonstruieren. Sie sind darüber hinaus in der Lage, Aspekte der theoretischen Grundlagen prototypisch und mit Hilfe von kleinen Programmen in der Programmiersprache C umzusetzen.
Lehrinhalte
* Nebenläufigkeit: Prozesse, Threads, Scheduling
* Synchronisation und Kommunikation
* Betriebsmittelverwaltung
* Ein-/Ausgabe: Geräteunabhängigkeit, Treiber
* Speicherhierarchie: Caching und Virtualisierung
* Programmierung: Programmiertechnik, Exception Handling, Interrupt Handling
Das Modul geht auch auf gesellschaftliche Verantwortung und Nachhaltigkeit ein. Insbesondere wird die Bedeutung von sicheren Betriebssystemen hinsichtlich der Vermeidung von Daten- und Identitätsdiebstahl sowie der Beitrag für den Aufbau und den Betrieb von kritischen Infrastrukturen hervorgehoben. Schließlich wird dargestellt, wie effiziente Betriebssysteme den Ressourcenverbrauch nachhaltig senken können.
Beschreibung der Lehr- und Lernformen
In der Vorlesung findet die wesentliche Vermittlung der Inhalte statt. Ausgewählte Themen der Vorlesung werden in wöchentlichen Übungen und ca. 6-8 Übungsblättern vertieft. Die Programmieraufgaben sind als Hausaufgaben in Gruppen zu bearbeiten und vorzuführen.
Die Übungen werden als Kleingruppentutorien durchgeführt. Ca. 20 Teilnehmer vertiefen und üben den in der Vorlesung vermittelten Stoff, besprechen die Übungsaufgaben und diskutieren offene Fragen unter der Leitung eines Tutors. Alle 14 Tage findet ein Teil des Tutoriums als Rechnerübung statt, die vor allem zur Abgabe der Programmieraufgaben dienen. Die praktischen Übungsaufgaben sind in der Programmiersprache C zu bearbeiten.