Vorlesung

Hinweis:  Gruppenabgaben ab Aufgabe 3 (clash) können auch in 3er Teams bearbeitet werden.


  • Klausureinsicht: Mittwoch, 09.08.2023, 10:00 in Raum 0.031, Martensstr. 1
  • Klausur: Dienstag, 25.07.2023, 10:00 in der Ballspielhalle
  • Fragestunde zur Klausur: Dienstag, 18.07.2023 im Rahmen der letzten Vorlesung in H7
  • Beginn des Übungsbetriebs am Montag, 24.04.2023.
    Für die Teilnahme wird ein Account auf gitlab.cs.fau.de sowie im CIP benötigt.
  • Besuch des Linux-Kurses der FSI wird empfohlen, Inhalt wird im Übungsbetrieb vorausgesetzt.
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. Den 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 diesem 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.  

Folien

Die aktuellen Folien sind über die jeweils zugeordneten pdf-Links abrufbar. All slides are copyrighted (C) 2011-2023 by Wolfgang Schröder-Preikschat, Rüdiger Kapitza and Jürgen Kleinöder, University of Erlangen-Nürnberg, Germany. Use without prior written permission of the authors is not permitted!

Inhalte:

  • Vorstellung der Dozenten
  • Einleitung in den Themenkompl
  • Konzept der Lehrveranstaltung
  • Arrangement der Lehre

Folien: (A4) (A5) (A6)

Lernzielkontrolle: Fragen

Inhalte:

  • Teil 1 (18.04.): - Programmstruktur - Datentypen und Variablen - Anweisungen
  • Teil 2 (24.04.): - Funktionen - Preprozessor - Module - Gültigkeitsbereiche von Variablen - Lebensdauer von Variablen
  • Teil 3 (25.04.): - Zeiger - Zeiger als Funktionsargumente - Zeiger auf Strukturen - Felder - Zeiger und Felder - Zeigerarithmetik - Mehrdimensionale Felder - Dynamische Speicherverwaltung - sizeof-Operator - Cast-Operator
  • Teil 4 (02.05.): - Felder als Funktionsparameter - Zeiger - Felder und Zeichenketten - Felder von Zeigern - Argumente aus der Kommandozeile - Strukturen - Zeiger auf Funktionen - Ein-/Ausgabe

Folien (komplett): (A4) (A5) (A6)

Inhalte:

  • Übersetzen, Binden
  • Programme und Prozesse, Laden
  • Prozesserzeugung, Programmausführung, Operationen auf Prozessen

Folien (komplett): (A4) (A5) (A6)

Inhalte:

  • Einordnung von Systemprogrammierung
  • Deutung des Begriffs Betriebssystem

Folien (komplett): (A4) (A5) (A6)

Lernzielkontrolle: Fragen

Inhalte:

  • Schichtenstruktur
  • Mehrebenenmaschinen
  • Interpretersysteme

Folien (komplett): (A4) (A5) (A6)

Lernzielkontrolle: Fragen

Inhalte:

  • Virtualität
  • Betriebsmittel
  • Aktionen
  • Einplanung/-lastung
  • Synchronisation (Semaphor)
  • Repräsentation

Folien (komplett): (A4) (A5) (A6)

Lernzielkontrolle: Fragen

Inhalte:

  • Speicherhierarchie
  • Primär-/Sekundärspeicher
  • Speicherverwaltung

Folien (komplett): (A4) (A5) (A6)

Lernzielkontrolle: Fragen

Inhalte:

  • Namen
  • numerische (reale, logische, virtuelle) und symbolische Adressen
  • Adress-/Namensräume

Folien (komplett): (A4) (A5) (A6)

Lernzielkontrolle: Fragen

Inhalte:

  • Programmhierarchie
  • Systemaufrufe
  • Organisationsprinzipien

Folien (komplett): (A4) (A5) (A6)

Lernzielkontrolle: Fragen

Inhalte:

  • Teilinterpretation
  • Programmunterbrechung
  • Laufzeitkontext
  • Nichtsequentialität

Folien (komplett): (A4) (A5) (A6)

Lernzielkontrolle: Fragen

Inhalte:

  • Einprogrammbetrieb
  • Mehrprogrammbetrieb (Multiplexverfahren, Schutzvorkehrungen, Dynamisches Laden, Simultanverarbeitung)

Folien (komplett): (A4) (A5) (A6)

Lernzielkontrolle: Fragen

Folien (komplett): (A4) (A5) (A6)

Inhalte:

  • Systemsoftware, C und Betriebssysteme
  • Rechnerorganisation
  • Betriebssystemkonzepte
  • Rechnerbetriebsarten
  • Ausblick Systemprogrammierung 2

Folien (komplett): (A4) (A5) (A6)

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.

Vorlesungstermin

Im Campo zu finden.
wöchentlichvom 18.04.-18.07.Di16:15-17:45H7
Einzeltermineam 24.04. und 15.05.Mo18:00-19:30H7