Lernergebnisse
Absolventinnen und Absolventen dieses Moduls haben:
* Grundkenntnisse der maschinennahen Programmierung (Systemprogrammierung) und des Aufbaus und der Funktionsweise von Betriebssystemen.
* Ein Verständnis nebenläufiger Prozesse, deren Synchronisation und Kommunikation sowie der Verwaltung von Betriebsmitteln.
* Die Fertigkeit in der Erstellung kleiner Assemblerprogramme und der Programmierung nebenläufiger Prozesse.
Lehrinhalte
* Assemblerprogrammierung: Programmiertechnik, Exception Handling, Interrupt Handling
* Nebenläufigkeit: Prozesse, Threads
* Synchronisation und Kommunikation
* Betriebsmittelvergabe (Scheduling)
* Ein/Ausgabe: Geräteunabhängigkeit, Treiber
* Speicherhierarchie: Caching und Virtualisierung
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. 15 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.