Vorlesung
- Die zweite und letzte Klausureinsicht zur (G)SP-Klausur des Wintersemesters 2024 (21.02.2024) findet am Dienstag, 16.04.2024 von 15:30 bis 17:30 Uhr in Raum 0.031, Martensstr. 1 statt.
- Klausureinsicht: Dienstag, 12.03.2024 10:00 in Raum 0.031, Martensstr. 1
- Mittwoch, 06.03.2024: Klausurergebnisse im Waffel und Campo einsehbar, Statistiken unter Prüfungsinformationen. Termin zur Einsicht wird per Mail (und hier) bekannt gegeben sobald bekannt.
- Fragestunde zur Klausur: Montag, 19.02.2024 15:00 im H4
- Die Ergebnisse der Miniklausur sind im Waffel eingetragen (Punkteverteilung). Die Einsicht findet jeweils in Ihrer nächsten Tafelübung statt.
- Die Miniklausur findet dieses Semester am Freitag den 10.11.2023 um 14:15 in H11 statt. Bitte melden Sie sich vorab im Waffel an wenn Sie teilnehmen wollen.
Zeit und Ort
Den Vorlesungstermin finden Sie im Campo unter Menü (links oben) > Studienangebot > Veranstaltungen suchen > „Systemprogrammierung“ > Vorlesung > Parallelgruppen / Termine.
Inhalt
Die Veranstaltung gibt eine Einführung in das "Programmieren im Großen" mit der Sprache C, verbunden mit der Vermittlung von grundlegenden Techniken der (imperativen) Systemprogrammierung am Beispiel von Betriebssystemen.
Die Vorlesung behandelt Betriebssysteme auf funktionaler wie auch (Software-)struktureller Ebene. Der "klassische" Lehrstoff über Betriebssystemfunktionen wird am Beispiel eines logischen, schichtenstrukturierten Systementwurfs vermittelt. Dabei steht der gesamtheitliche Zusammenhang zwischen den verschiedenen Funktionen im Vordergrund.
Der Lehrstoff gliedert sich auf in drei Hauptteile. Der erste Teil ist von einführendem Charakter und gibt zunächst eine kurze Motivation, gefolgt von einem etwas längeren geschichtlichen Rückblick über die Entwicklung von Betriebssystemen. Im zweiten Teil werden die typischen zentralen Betriebssystemabstraktionen (Adressraum, Speicher, Datei und Prozess) aus Benutzersicht, d. h. "von oben" und am Beispiel der UNIX-Systemschnittstelle, diskutiert. Abschluss bildet ein kurzer Abstecher in den modularen, hierarchischen Entwurf von Betriebssystemen. Hier wird die logische Struktur eines Betriebssystems entwickelt, dessen Funktionen im weiteren Verlauf des sich anschließenden dritten Teils genauer betrachtet werden sollen. In eben diesen dritten Teil werden die Konzepte, Techniken und Funktionen im Detail erklärt, die zur Implementierung der eingangs erwähnten Basisabstraktionen von Betriebssystemen erforderlich sind. Im Einzelnen behandelt werden in dem Kontext die folgenden Themen:
- Speichervergabe, Adressraumabbildung
- Prozessumschaltung, -einplanung und -verwaltung
- Unterbrechungssteuerung, Koordination
- Ein-/Ausgabe, Dateiverwaltung
- Ein-/Auslagerung, Programmverwaltung
- Zugriffskontrolle, Systemaufrufe
Im Vordergrund stehen Betriebssystemfunktionen für Einprozessorsysteme. Spezielle Fragestellungen zu Mehrprozessorsystemen (auf Basis gemeinsamen Speichers) werden nur am Rande und in Bezug auf Funktionen zur Koordinierung nebenläufiger Programme behandelt. In ähnlicher Weise werden Fragen zur Echtzeitverarbeitung ansatzweise nur in Bezug auf die Prozesseinplanung erörtert.
Folien
Die Vorlesungsfolien werden im PDF-Format mit einer DIN-A4-Seite, zwei DIN-A5-Seiten und vier DIN-A6-Seiten pro Druckblatt angeboten.
Die Folien liegen zu Beginn des Semesters noch nicht vollständig vor - wir werden die Teile jeweils zur Verfügung stellen, sobald sie fertig werden. Die folgende Tabelle enthält eine Übersicht über die zu den jeweiligen Vorlesungsterminen vorgesehenen Abschnitte und Verweise auf die zugehörigen Folien-Dokumente und Videos. Der Inhalt der Folien kann sich bis zum jeweiligen Vorlesungstermin noch ändern und ist erst danach als final zu sehen.
Aktuell wird für die Vorlesungen SP1 und SP2 ein Glossar entwickelt, in dem die in der Vorlesung verwendeten Akronyme und Fachvokabular näher erläutert werden. Der aktuelle Stand, der den Stoff von SP1 bereits weitestgehend abdeckt (und auch Themen aus SP2 beinhaltet), ist unter folgendem Link zu finden: Glossar aktuell.
All slides are copyrighted (C) 2011-2023 by Rüdiger Kapitza, Wolfgang Schröder-Preikschat, and Jürgen Kleinöder, University of Erlangen-Nürnberg, Germany. Use without prior written permission of the authors is not permitted!
Legende (*): Die gesternten Episoden haben im Vergleich zur realen Vorlesung eine (teils erheblich) längere Laufzeit. Der Grund dafür liegt nicht darin, die virtuelle Vorlesung durch entsprechend mehr Folien oder Lehrinhalte angereichert zu haben. Vielmehr wird hier Stoff aus vorangegangenen Vorlesungen oder anderen Lehrveranstaltungen repetiert und enger zur Systemprogrammierung in Beziehung gebracht. Die reale Vorlesung fliegt eher über diesen Stoff, wohingegen die virtuelle Vorlesung den einen und anderen Punkt vor allem wegen der fehlenden Möglichkeit zum direkten Feedback durch die Zuhörerschaft ausführlicher behandelt: die Idee ist, die einzelne Vorlesung in sich geschlossen zu halten. Es kann davon ausgegangen werden, dass der betreffende Stoff nicht den Kern für Klausur-/Prüfungsaufgaben bildet, was auch für die entsprechende reale Vorlesung gilt. Des Weiteren sind grundsätzlich Episoden betreffs Begrüßung und Tagesordnung, Einführung (mit oder ohne weiterer Angabe) und Zusammenfassung wie auch — die bereits ausgegraut zeitlich erfassten — Anhänge in aller Regel nicht prüfungsrelevant. Die können gerne immer übersprungen werden.
Vertiefende Literatur
- A. Silberschatz, P. B. Galvin, G. Gagne. Operating Systems Concepts. John Wiley & Sons, 2001.
- R. W. Stevens. Advanced Programming in the UNIX Environment. Addison-Wesley, 1992.
- A. S. Tanenbaum, A. S. Woodhull. Operating Systems: Design And Implementation. Prentice-Hall, 1997.
- A. S. Tanenbaum. Structured Computer Organization. Prentice-Hall, 1999.
Nachfolgend Auszüge aus einem Manuskript des Dozenten, die die einleitenden Themen der Vorlesung (Teil B, 4. und 5.) behandeln.
Der Zugriff auf die Kapitel ist nur aus dem Netz der Universität möglich.