Vorlesung
Systemprogrammierung 1 - Vorlesung
Aktuelles
- 2. Klausureinsicht: Dienstag, 25.10.2022 16:00 im I4 Besprechungsraum (0.035)
- 1. Klausureinsicht: Donnerstag, 11.08.2022 10:00 in Raum 0.031, Martensstr. 1
- Klausur: Dienstag, 02.08.2022 13:00 in der Ballspielhalle
- Fragestunde zur Klausur: Montag, 01.08.2022 10:00 im H4
- Beginn der Anmeldung zum Übungsbetrieb: Donnerstag, 28.04.2022 17:00 via Waffel
Hinweis: Gruppenaufgaben können nur mit Partnern bearbeitet werden, die die selbe Tafelübung besuchen.
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.
Vorlesungskonzept
Die Vorlesung (und die Tafelübungen) finden als Präsenzveranstaltungen statt. Gleichzeitig liegen aus den Vorjahren vollständige Videoaufzeichnungen der Vorlesung vor. Die einzelnen Videos können über die Gliederungspunkte im nächsten Abschnitt aufgerufen werden.
Vor diesem Hintergrund ist es eigentlich nicht sinnvoll, wenn wir in der Präsenzvorlesung genau das, was wir in den Videos bereitstellen, noch einmal im Hörsaal präsentieren. Die Zeit kann besser genutzt werden, wenn alle Teilnehmenden die Videos vor dem Vorlesungstermin angesehen haben und wir einzelne, besonders wichtige Themen dann ausführlicher erläutern und durch Beispiele vertiefen. Gerne würden wir auch auf Fragen, die sich beim Ansehen der Videos ergeben haben, eingehen und einzelne Themen diskutieren.
Dieses Konzept funktioniert natürlich nur, wenn die Teilnehmenden hierbei mitmachen. Werden keine Fragen gestellt, entwickelt sich die Vorlesung mehr und mehr zu einer „normalen Vorlesung“, wobei wir aber auch hier bei den „einfacheren Teilen“ mehr auf die Videos verweisen werden und mehr Zeit für einzelne, aus unserer Sicht besonders wichtige Punkte verwenden werden.
Die Zeit für die Vorbereitung der Vorlesungen durch Ansehen der Videos ist sicher kein zusätzlicher Aufwand. Das Verständnis für den Stoff in der Vorlesung wird dadurch größer, durch gezielte Fragen kann man Unklarheiten schnell klären und die sonst übliche Nachbereitungszeit wird geringer.
Folien und Videos
Über die einzelnen Gliederungspunkte in der folgenden Übersicht gelangt man zu den Videoaufzeichnungen aus den Vorjahren. Die aktuellen Folien sind über die jeweils zugeordneten pdf-Links abrufbar.
All slides are copyrighted (C) 2011-2022 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!
A I: Organisatorisches (28.4.)
Lernzielkontrolle: Fragen
Videos aus dem SS20:
A II: C-Kurzeinführung (28.4., 3.5., 5.5., 10.5.)
A III: Ausführung von Programmen - von der Quelle zum Prozess (12.5.)
B IV: Einleitung (19.5.)
B V.1: Rechnerorganisation: Virtuelle Maschinen (2.6.)
B VI.1: Betriebssystemkonzepte: Prozesse (9.6.)
B VI.2: Betriebssystemkonzepte: Speicher (23.6.)
B VI.3: Betriebssystemkonzepte: Adressbindung (30.6.)
B V.2: Rechnerorganisation: Maschinenprogramme (7.7.)
B V.3: Rechnerorganisation: Betriebssystemmaschine (14.7.)
Inhalte: Teilinterpretation, Programmunterbrechung, Laufzeitkontext, Nichtsequentialität
Folien (komplett): (A4) (A5) (A6)
Lernzielkontrolle: Fragen
Videos aus dem SS20:
- Begüßung und Tagesordnung 🔗 pdf
- Einführung in die Teilinterpretation 🔗 pdf
- Ausnahmen auf der Befehlsatzebene 🔗 pdf
- Synchrone und asynchrone Programmunterbrechungen 🔗 pdf
- Nichtsequentielle Programmabläufe 🔗 pdf
- Zusammenfassung 🔗 pdf
- Anhang zu nichtsequentiellen Programmabläufen 🔗 pdf
B VII.1: Betriebsarten: Stapelverarbeitung (21.7.)
Inhalte: Einprogrammbetrieb, Mehrprogrammbetrieb (Multiplexverfahren, Schutzvorkehrungen, Dynamisches Laden, Simultanverarbeitung)
Folien (komplett): (A4) (A5) (A6)
Lernzielkontrolle: Fragen
Videos aus dem SS20:
- Begrüßung und Tagesordnung 🔗 pdf
- Einführung 🔗 pdf
- Manueller Rechnerbetrieb 🔗 pdf
- Automatisierter Rechnerbetrieb 🔗 pdf
- Schutzvorkehrungen für Einprogrammbetrieb 🔗 pdf
- Maßnahmen zur Leistungssteigerung 🔗 pdf
- Auslastungssteigerung durch Multiplexverfahren 🔗 pdf
- Schutzvorkehrungen für Mehrprogrammbetrieb 🔗 pdf
- Programmüberlagerungen 🔗 pdf
- Simultanverarbeitung 🔗 pdf
- Zusammenfassung 🔗 pdf
- Anhang zur Einführung 🔗 pdf
- Anhang zu Programmüberlagerungen 🔗 pdf
B VII.2: Betriebsarten: Dialog- und Echtzeitverarbeitung (optional)
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.
- Prof. Dr. Wolfgang Schröder-Preikschat. Systemprogammierung Glossar aktuell
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.