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

Bekanntmachung:

In diesem Semester wird die Vorlesung nicht als Präsenzveranstaltung angeboten. Stattdessen werden Videoaufzeichnungen der jeweiligen Vorlesungen auf der Webseite veröffentlicht. Die Folien und Videos werden spätestens zu dem auf der Webseite genannten Termin zur Verfügung gestellt.
Zusätzlich wird eine wöchentliche Fragestunde in Form einer Videokonferenz angeboten. Die Verbindungsdaten werden im zugehörigen StudOn-Kurs bereitgestellt.

Der Übungsbetrieb wird ebenfalls in virtueller Form abgehalten. Weitere Informationen zur Übung finden Sie auf der Übungswebseite.

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 ▲

Zu der Vorlesung wird kein Vorlesungsskript im eigentlichen Sinn angeboten. Zur Verfügung gestellt werden die in der Vorlesung eingesetzten Folien als PDF-Dokumente.
Diese Folien alleine können aber eine ergänzende Vorlesungsmitschrift oder Fachliteratur nicht ersetzen!

Die Vorlesungsfolien werden im PDF-Format mit einer DIN-A4-Seite, zwei DIN-A5-Seiten und vier DIN-A6-Seiten pro Druckblatt angeboten.

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. Die als Lernzielkontrolle ausgewiesenen Fragen sollen dabei helfen, die Schwerpunkte der einzelnen Kapitel zu erkennen und können in der wöchentlichen Fragestunde mit aufgegriffen werden.

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

AbschnittDatumLern­ziel­kontrolleVideos + FolienDauer (Minuten)
Teil A
1. Organisatorisches 15.04.2021 Fragen 24
  • Vorstellung der Dozenten und Tagesordnung
  • Einleitung in den Themenkomplex
  • Konzept der Lehrveranstaltung
  • Arrangement der Lehre und Ausklang
  • 1
  • 5
  • 4
  • 14
2. C-Kurzeinführung
2.1.
  • Vorstellung
  • Überblick
  • Programmstruktur, Datentypen und Variablen
  • Anweisungen
15.04.2021
  • 3
  • 11
  • 24
  • 22
2.2.
  • Funktionen
  • Preprozessor
  • Module
  • Gültigkeitsbereiche von Variablen
20.04.2021
  • 18
  • 10
  • 13
  • 18
2.3.
  • Lebensdauer von Variablen
  • Zeiger, Zeiger als Funktionsargumente, Zeiger auf Strukturen
22.04.2021
  • 8
  • 31
2.4.
  • Felder, Zeiger und Felder, Zeigerarithmetik, Mehrdimensionale Felder
  • Dynamische Speicherverwaltung, sizeof-Operator, Cast-Operator
27.04.2021
  • 27
  • 15
2.5.
  • Felder als Funktionsparameter
  • Zeiger, Felder und Zeichenketten
  • Felder von Zeigern, Argumente aus der Kommandozeile
  • Strukturen, Zeiger auf Funktionen
  • Ein-/Ausgabe
29.04.2021
  • 14
  • 20
  • 20
  • 23
  • 33
3. Ausführung von Programmen - von der Quelle zum Prozess
  • Übersetzen, Binden
  • Programme und Prozesse, Laden
  • Prozesserzeugung, Programmausführung, Operationen auf Prozessen
04.05.2021
  • 12
  • 17
  • 16
Teil B
4. Einleitung 06.05.2021 Fragen 86
  • Begrüßung und Tagesordnung
  • Einordnung von Systemprogrammierung
  • Fallstudie zur Motivation
  • Analyse der Fallstudie
  • Deutung des Begriffs Betriebssystem
  • Zusammenfassung
  • Anhang zur Fallstudie
  • 2*
  • 13*
  • 15
  • 34
  • 14
  • 8*
  • 14
5. Rechnerorganisation
5.1. Virtuelle Maschinen: Schichtenstruktur, Mehrebenenmaschinen, Interpretersysteme 12.05.2021 Fragen 92
  • Begüßung und Tagesordnung
  • Abriss der Lektion
  • Schichtenstruktur und semantische Lücke
  • Hierarchie virtueller Maschinen
  • Entvirtualisierung und Ausnahmen
  • Zusammenfassung
  • Anhang zu Virtualisierung
  • 3*
  • 6*
  • 27
  • 26
  • 26
  • 4*
  • 31
5.2. Maschinenprogramme: Programmhierarchie, Systemaufrufe, Organisationsprinzipien 20.05.2021 Fragen 88
  • Begüßung und Tagesordnung
  • Einführung in Maschinenprogramme
  • Programmhierarchie oberhalb der Befehlsatzebene
  • Organisationsprinzipien von Maschinenprogrammen
  • Zusammenfassung
  • Anhang zu Betriebssystembefehlen
  • Anhang zu Systemaufrufen
  • 2*
  • 15*
  • 40
  • 26
  • 5*
  • 28
  • 15
5.3. Betriebssystemmaschine: Teilinterpretation, Programmunterbrechung, Laufzeitkontext, Nichtsequentialität 27.05.2021 Fragen 100
  • Begüßung und Tagesordnung
  • Einführung in die Teilinterpretation
  • Ausnahmen auf der Befehlsatzebene
  • Synchrone und asynchrone Programmunterbrechungen
  • Nichtsequentielle Programmabläufe
  • Zusammenfassung
  • Anhang zu nichtsequentiellen Programmabläufen
  • 2*  
  • 27 
  • 21 
  • 20*
  • 25 
  • 5*  
  • 19 
6. Betriebssystemkonzepte
6.1. Prozesse: Virtualität, Betriebsmittel, Aktionen, Einplanung/-lastung, Synchronisation (Semaphor), Repräsentation 02.06.2021 Fragen 140
  • Begüßung und Tagesordnung
  • Einführung und Prozessbegriff
  • Virtualität und Betriebsmittel
  • Nichtsequentielles Programm
  • Prozessplanung
  • Prozesssynchronisation
  • Implementierungsaspekte
  • Zusammenfassung
  • Anhang zu Allerlei
  • 1* 
  • 9*
  • 25*
  • 16*
  • 20 
  • 40 
  • 25 
  • 4*  
  • 30 
6.2. Speicher: Speicherhierarchie, Primär-/Sekundärspeicher, Speicherverwaltung 10.06.2021 Fragen 100
  • Begrüßung und Tagesordnung
  • Einführung
  • Speicherebenen und Adressräume
  • Einleitung zur Speicherverwaltung
  • Speicherzuteilung
  • Speichervirtualisierung
  • Zusammenfassung
  • Anhang zur Speichervirtualisierung
  • Anhang zur Speicherzuteilung
  • 1*
  • 3*
  • 26
  • 11
  • 30
  • 23
  • 6*
  • 17
  • 23
6.3. Adressbindung: Namen, numerische (reale, logische, virtuelle) und symbolische Adressen, Adress-/Namensräume 17.06.2021 Fragen 110
  • Begrüßung und Tagesordnung
  • Einführung
  • Speicheradressen
  • Pfadnamen
  • Namensbindung und -auflösung
  • Symbolauflösung
  • Zusammenfassung
  • Anhang zur Segmentierung
  • Anhang zu Pfadnamen
  • Anhang zur Internetprotokolladresse
  • 2*
  • 19*
  • 27
  • 17
  • 25
  • 16
  • 4*
  • 31
  • 13
  • 9
7. Betriebsarten
7.1. Stapelverarbeitung: Einprogrammbetrieb, Mehrprogrammbetrieb (Multiplexverfahren, Schutzvorkehrungen, Dynamisches Laden, Simultanverarbeitung) 24.06.2021 Fragen 150
  • Begrüßung und Tagesordnung
  • Einführung
  • Manueller Rechnerbetrieb
  • Automatisierter Rechnerbetrieb
  • Schutzvorkehrungen für Einprogrammbetrieb
  • Maßnahmen zur Leistungssteigerung
  • Auslastungssteigerung durch Multiplexverfahren
  • Schutzvorkehrungen für Mehrprogrammbetrieb
  • Programmüberlagerungen
  • Simultanverarbeitung
  • Zusammenfassung
  • Anhang zur Einführung
  • Anhang zu Programmüberlagerungen
  • 2*
  • 10*
  • 14*
  • 14*
  • 16
  • 28
  • 25
  • 24
  • 7*
  • 5*
  • 5*
  • 4
  • 6
7.2. Dialogverarbeitung: Mehrzugangsbetrieb, Systemmerkmale, Echtzeitbetrieb 01.07.2021 Fragen 122
  • Begrüßung und Tagesordnung
  • Einführung
  • Mehrzugangsbetrieb
  • Echtzeitbetrieb
  • Multiprozessorsysteme
  • Schutzvorkehrungen
  • Umlagerung von Programmen
  • Universalität von Betriebssystemen
  • Zusammenfassung
  • 2*
  • 5*
  • 22
  • 13
  • 14*
  • 25
  • 28
  • 10*
  • 3*
8. Zwischenbilanz zu Teil B 08.07.2021 92
  • Begrüßung und Tagesordnung
  • Systemsoftware, C und Betriebssysteme
  • Rechnerorganisation
  • Betriebssystemkonzepte
  • Rechnerbetriebsarten
  • Ausblick Systemprogrammierung 2
  • 1*
  • 24
  • 19
  • 25
  • 17
  • 6*

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 1 (SP1)

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

Angaben
Vorlesung
2 SWS, ECTS-Studium, ECTS-Credits: 2,5
für Gasthörer zugelassen, Sprache Deutsch, In den Studiengängen Mathematik und Technomathematik kann diese Lehrveranstaltung alternativ zu "Systemnahe Programmierung in C" belegt werden. Im Sommersemester '20 wird die Vorlesung als Video aufgezeichnet und online abrufbar sein. Weitere Informationen finden Sie unter https://www4.cs.fau.de/Lehre/SS20/V_SP1/Vorlesung/
Asynchrone Lehrveranstaltung, https://www4.cs.fau.de/Lehre/SS21/V_SP1/Vorlesung/#folien
Zeit und Ort: Do 12:15 - 13:45, Zoom-Meeting; Bemerkung zu Zeit und Ort: Zusätzlicher Fragestundentermin zur Vorlesung: Dienstag, dem 20.04.2021, 10:15 Uhr

Studienfächer / Studienrichtungen
WPF MT-BA ab 5
WPF MT-MA-BDV ab 1
WPF M-BA 2
WPF TM-BA 2
PF CE-BA-G 2
PF INF-BA 2
PF INF-LAG ab 5
PF IuK-BA 2
PF WINF-BA 2
PF MT-BA-BV 4