Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

In diesem Semester wollen wir eine Mischung aus Präsenzbetrieb und online-Vorlesung erproben. Aus den letzten Semestern stehen vollständige Vorlesungsaufzeichnungen zur Verfügung. Diese Art der Vorlesung wollen wir nun nicht einfach im Hörsaal wiederholen - wir denken, diese Präsenzzeit ist besser nutzbar.

Die über das Videoportal bereitgestellten Vorlesungsvideos sollen vor dem jeweiligen Präsenztermin gehört werden. Dabei auftretende Unklarheiten sollte man sich für den Präsenztermin notieren. Ausserdem haben wir auf der Webseite der Vorlesungsfolien als Lernzielkontrolle formulierte Fragen zu den jeweiligen Kapiteln bereitgestellt. Damit kann man selbst eine erste Reflexion über den Vorlesungsinhalt vornehmen.

An den Präsenzterminen wollen wir in erster Linie Fragen zum Vorlesungsstoff diskutieren, einzelne Themen vertiefen und ggf. auch besonders wichtige Punkte nochmals wiederholen. Solch ein Format funktioniert vor allem dann gut, wenn wir möglichst viel interaktiv mit den Studierenden arbeiten können.

Diese Art von Lehrveranstaltung erfordert etwas mehr Vorbereitung auf die Präsenztermine - wir sind aber überzeugt, dass sich das bei der sonst immer erforderlichen Nachbearbeitung einer Vorlesung sehr schnell wieder ausgleicht.


Der Übungsbetrieb wird ebenfalls in teilvirtueller Form angeboten. Für alle Studierenden, die nicht die Möglichkeit haben, an einer Präsenzübung teilzunehmen, wird ein Onlinekurs bereitgestellt. Ansonsten soll die Präsenztafelübung zur Diskussion der Videos und Aufgabennachbesprechung genutzt werden.

Vorlesungsüberblick

Die Veranstaltung Systemprogrammierung (SP) 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.

Gliederung und Vorlesungsfoliennach oben ▲

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.

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-2025 by 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!

AbschnittDatumLern­ziel­kontrolleVideos + FolienDauer (Minuten)
Teil B
8. Zwischenbilanz zu SP1 19.10.2021 Fragen 92
  • Begrüßung und Tagesordnung
  • Systemsoftware, C und Betriebssysteme
  • Rechnerorganisation
  • Betriebssystemkonzepte
  • Rechnerbetriebsarten
  • Ausblick Systemprogrammierung 2
  • 1*
  • 24
  • 19
  • 25
  • 17
  • 6*
Teil C
9. Prozessverwaltung
9.1. Einplanungsgrundlagen 26.10.2021 Fragen 78
  • Begüßung und Tagesordnung
  • Einführung
  • Programmfaden als Prozesszuteilungseinheit
  • Arbeitsweise eines Prozessplaners
  • Gütemerkmale der Prozeseinplanung
  • Zusammenfassung
  • 4*
  • 3*
  • 26
  • 32
  • 10
  • 3*
9.2. Einplanungsverfahren 02.11.2021 Fragen 84
  • Begüßung und Tagesordnung
  • Einführung
  • Klassifikation
  • Verfahrensweisen im Überblick
  • Kooperative Verfahren
  • Verdrängende Verfahren
  • Probabilistische Verfahren
  • Mehrstufige Verfahren
  • Zusammenfassung
  • Anhang Unix: V7, 4.3BSD, Solaris
  • Anhang Linux: 2.4, O(1), CFS
  • 1*
  • 7*
  • 16
  • 3
  • 6
  • 13
  • 17
  • 12
  • 9*
  • 18
  • 30
10. Prozesssynchronisation
10.1. Nichtsequentialität 09.11.2021 Fragen 86
  • Begrüßung und Tagesordnung
  • Einführung
  • Nebenläufige Systeme
  • Koordination von Konkurrenz
  • Synchronisationsarten und -techniken
  • Zusammenfassung
  • Anhang Logische Synchronisation: bounded buffer
  • 1*
  • 4*
  • 19
  • 24
  • 35
  • 3*
  • 12
10.2. Monitore 16.11.2021 Fragen 78
  • Begrüßung und Tagesordnung
  • Einführung
  • Monitoreigenschaften
  • Monitorarchitektur
  • Bedingungsvariable
  • Beispiel Ringpuffer
  • Zusammenfassung
  • Anhang: Concurent C++
  • 2*
  • 7*
  • 16
  • 17
  • 25
  • 7
  • 4*
  • 15
10.3. Semaphore 23.11.2021 Fragen 89
  • Begrüßung und Tagesordnung
  • Einführung
  • Definition und Anwendung
  • Implementierung
  • Ablaufunterbrechung
  • Mutex
  • Sperren
  • Zusammenfassung
  • Anhang: Semaphor und Planer
  • Anhang: Sperren und zurückstellen
  • 1*
  • 6*
  • 17
  • 20
  • 10
  • 15
  • 16
  • 4*
  • 15
  • 11
10.4. Kreiseln 30.11.2021 Fragen 100
  • Begrüßung und Tagesordnung
  • Einführung
  • Umlaufsperre
  • Schlossalgorithmen
  • Nichtblockierende Synchronisation
  • Beispiele von Mikrotransaktionen
  • Zusammenfassung
  • Anhang: Schlossalgorithmen
  • Anhang: Mikrotransaktionen
  • 2*
  • 5*
  • 23
  • 31
  • 16
  • 14
  • 9*
  • 19
  • 19
11. Betriebsmittelvertwaltung
Betriebsmittel, Stillstand 07.12.2021 Fragen 108
  • Begrüßung und Tagesordnung
  • Einführung
  • Betriebsmittelverwaltung
  • Grundlagen der Systemblockade
  • Fallbeispiel aus dem Bankwesen
  • Speisende Philosophen
  • Gegenmaßnahmen
  • Zusammenfassung
  • Anhang: Verklemmungsvermeidung
  • 2*
  • 5*
  • 17
  • 20
  • 10
  • 14
  • 35
  • 5*
  • 3
12. Speicherverwaltung
12.1. Adressraumkonzepte: Grundlagen, physikalischer Adressraum, logischer Adressraum, virtueller Adressraum 14.12.2021 Fragen 106
  • Begrüßung und Tagesordnung
  • Einführung
  • Rekapitulation
  • Realer Adressraum
  • Seitenbasierter logischer Adressraum
  • Segmentierter logischer Adressraum
  • TLB und virtueller Adressraum
  • Mehradressraumsysteme
  • Zusammenfassung
  • Anhang: Mehradressraumsysteme
  • 1*
  • 5*
  • 14*
  • 8
  • 24
  • 19
  • 12
  • 23
  • 5*
  • 7
12.2. Zuteilungsverfahren: Platzierungsstrategie, Freispeicherorganisation, Speicherverschnitt 21.12.2021 Fragen 104
  • Begrüßung und Tagesordnung
  • Einführung und Rekapitulation
  • Freispeicherorganisation
  • Adressraumbezug
  • Verfahrensweisen der Speicherzuteilung
  • Hauptspeicherfragmentierung
  • Defragmentierung des Hauptspeichers
  • Zusammenfassung
  • Anhang: Halbierungsverfahren
  • 1*
  • 8*
  • 26
  • 18
  • 16
  • 13
  • 16
  • 6*
  • 13
12.3. Speichervirtualisierung: Ladestrategie, Ersetzungsstrategie (FIFO, LRU, WS) 11.01.2022 Fragen 113
  • Begrüßung und Tagesordnung
  • Einführung
  • Ladestrategie
  • Aufwandsanalyse
  • Ersetzungsstrategie
  • Globale Verfahren
  • Lokale Verfahren
  • Zusammenfassung
  • Anhang: Residenzmenge
  • 1*
  • 5*
  • 18
  • 21*
  • 29
  • 29
  • 16
  • 7*
  • 4
13. Dateisystem
13.1. Medien, Speicherung von Dateien, Beispiele: UNIX-FS, EXT2-FS, NTFS 18.01.2022 70
  • Medien
  • Speicherung von Dateien
  • Beispiel: UNIX Dateisysteme
  • Beispiel: NTFS
  • 25
  • 22
  • 7
  • 16
13.2. NTFS, Dateisysteme mit Fehlererholung (Journal, Log-structured), RAID-Systeme 25.01.2022 55
  • NTFS: Verzeichnisse
  • Dateisysteme mit Fehlererholung
  • Datensicherung und RAID-Systeme
  • 9
  • 22
  • 24
14. Fragestunde zur Klausur 01.02.2022

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 Literaturnach oben ▲

  • 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 Prof. Dr. Wolfgang Schröder-Preikschat, 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.

Kapitel PDF
Einleitung PDF
Evolution und Betriebsarten PDF
Organisation von RechensystemenPDF
Anhang PDF
Antworten PDF
Referenzen PDF
Begriffsverzeichnis PDF
Sachverzeichnis PDF
Fremdwortverzeichnis PDF

UnivIS-Informationennach oben ▲

Systemprogrammierung 2 (SP2)

Dozentinnen/Dozenten
Dr.-Ing. Jürgen Kleinöder, Prof. Dr.-Ing. habil. Wolfgang Schröder-Preikschat

Angaben
Vorlesung
Online/Präsenz
2 SWS, Sprache Deutsch
Asynchrone Lehrveranstaltung, Die Vorlesung steht in Form von Video-Sequenzen über das Video-Portal der FAU zur Verfügung und soll vor dem Präsenztermin gehört werden. Im Rahmen des Präsenztermins der Vorlesung erfolgt eine vertiefenden Besprechung der Vorlesungsinhalte und die Diskussion von Fragen zum Vorlesungsinhalt.
Zeit und Ort: Di 16:15 - 17:45, H7

Studienfächer / Studienrichtungen
WPF MT-BA ab 5
PF INF-BA 3
PF IuK-BA 3
PF CE-BA-G 3
PF WINF-BA 3
WPF MT-MA-BDV ab 1