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

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 behandelten Abschnitte und Verweise auf die zugehörigen Folien-Dokumente.

Hinweis: Da die Vorlesung im Sommersemester 2015 in wesentlichen Teilen neu strukturiert wurde, existiert keine aktuelle Vorlesungsaufzeichnung. Die Aufzeichnung zur früheren Fassung kann jedoch weiterhin auf den Seiten zum Sommersemester 2014 und Wintersemester 2014/15 abgerufen werden. Die Inhalte in den dortigen Videos können jedoch von den aktuellen Folien abweichen. Prüfungsrelevant sind in jedem Falle nur die Inhalte des aktuellen Foliensatzes, der in der Vorlesung präsentiert und hier zum Herunterladen angeboten wird.

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

AbschnittDatumFolien (PDF)
Teil A
1.Organisatorisches 23.04.2019(A4),
(A5),
(A6)
2. C-Kurzeinführung
2.1.Überblick, Programmstruktur, Datentypen und Variablen, Anweisungen23.04.2019(A4),
(A5),
(A6)
2.2.Anweisungen, Funktionen, Preprozessor, Module, Gültigkeitsbereiche von Variablen25.04.2019
2.3.Lebensdauer von Variablen, Zeiger, Zeiger als Funktionsargumente, Zeiger auf Strukturen, Felder, Zeiger und Felder, Zeigerarithmetik30.04.2019
2.4.Dynamische Speicherverwaltung, Felder als Funktionsparameter, Zeiger, Felder und Zeichenketten02.05.2019
2.5.Zeiger, Felder und Zeichenketten, Felder von Zeigern, Argumente aus der Kommandozeile, Strukturen, Zeiger auf Funktionen, Ein-/Ausgabe07.05.2019
3.Ausführung von Programmen - von der Quelle zum Prozess
Übersetzen, Binden, Programme und Prozessen, Laden, Prozesserzeugung, Programmausführung, Operationen auf Prozessen09.05.2019(A4),
(A5),
(A6)
Teil B
4.Einleitung
Einordnung, Fallstudie, Begriffsdeutung14.05.2019(A4),
(A5),
(A6)
5.Rechnerorganisation
5.1.Virtuelle Maschinen: Schichtenstruktur, Mehrebenenmaschinen, Interpretersysteme21.05.2019(A4),
(A5),
(A6),
ergänzendes Material
5.2.Maschinenprogramme: Programmhierarchie, Systemaufrufe, Organisationsprinzipien28.05.2019(A4),
(A5),
(A6)
5.3.Betriebssystemmaschine: Teilinterpretation, Programmunterbrechung, Laufzeitkontext, Nichtsequentialität04.06.2019(A4),
(A5),
(A6)
6.Betriebssystemkonzepte
6.1.Prozesse: Virtualität, Betriebsmittel, Aktionen, Einplanung/-lastung, Synchronisation (Semaphor), Repräsentation18.06.2019(A4),
(A5),
(A6)
6.2.Speicher: Speicherhierarchie, Primär-/Sekundärspeicher, Speicherverwaltung25.06.2019(A4),
(A5),
(A6)
6.3.Namen: numerische (reale, logische, virtuelle) und symbolische Adressen, Adress-/Namensräume02.07.2019(A4),
(A5),
(A6)
7.Betriebsarten
7.1.Stapelverarbeitung: Einprogrammbetrieb, Mehrprogrammbetrieb (Multiplexverfahren, Schutzvorkehrungen, Dynamisches Laden, Simultanverarbeitung)09.07.2019(A4),
(A5),
(A6)
7.2.Dialogverarbeitung: Mehrzugangsbetrieb, Systemmerkmale, Echtzeitbetrieb16.07.2019(A4),
(A5),
(A6)
8.Zwischenbilanz zu Teil B23.07.2019(A4),
(A5),
(A6)

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.
Zeit und Ort: Di 10:15 - 11:45, H11; Einzeltermine am 25.4.2019, 2.5.2019, 9.5.2019 18:00 - 19:30, H11; Bemerkung zu Zeit und Ort: Zusätzlicher Vorlesungstermin in den ersten drei Wochen jeweils Do. 18:00-19:30

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