• Navigation überspringen
  • Zur Navigation
  • Zum Seitenende
Organisationsmenü öffnen Organisationsmenü schließen
Lehrstuhl für Informatik 4 & 16
  • FAUZur zentralen FAU Website
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
  • English
  • Campo
  • UnivIS
  • Stellenangebote
  • Lageplan
  • Hilfe im Notfall
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik

Lehrstuhl für Informatik 4 & 16

Menu Menu schließen
  • Lehrstuhl
    • Leitbild
    • Team
    • Kontakt und Anfahrt
    • 50-jähriges Jubiläum
    Portal Lehrstuhl
  • Forschung
    • Forschungsbereiche
      • Betriebssysteme
      • Echtzeitsysteme
      • Energiebewusste Systeme
      • Verteilte Systeme
    • Projekte
      • BFT2Chain
      • e.LARN
      • NEON
      • PAVE
      • PRIMaTE
      • REFIT
      • ResPECT
      • SURESOFT
      • TRR 89 C1: iRTSS
      • TRR 89 C5
      • Watwa
    • Projektkampagnen
      • DOSS
      • maRE
    • Forschungsgruppen
      • ergoo
    Portal Forschung
  • Publikationen
  • Lehre
    • Wintersemester 2022/23
      • Ausgewählte Kapitel der Systemsoftware
      • Betriebssysteme
      • Middleware – Cloud Computing
      • Systemnahe Programmierung in C (für Wiederholer)
      • Systemprogrammierung 1 (für Wiederholer)
      • Systemprogrammierung 2
      • Verlässliche Echtzeitsysteme
      • Virtuelle Maschinen
      • Web-basierte Systeme
    • Sommersemester 2023
      • Ausgewählte Kapitel der Systemsoftware
      • Betriebssystemtechnik
      • Projekt angewandte Systemsoftwaretechnik
      • Systemnahe Programmierung in C
      • Systemprogrammierung 1
      • Verteilte Systeme
    Portal Lehre
  • Examensarbeiten
  1. Startseite
  2. Lehre
  3. Wintersemester 2022/23
  4. Systemprogrammierung 1 (für Wiederholer)
  5. Vorlesung

Vorlesung

Bereichsnavigation: Lehre
  • Systemprogrammierung 1 (für Wiederholer)
    • Vorlesung
      • # Überblick
      • # Folien und Videos
      • # Vertiefende Literatur
    • Übung
      • # Anmeldung
      • # Termine
      • # Folien
      • # Aufgaben
      • # Korrekturhinweise
      • # Literaturempfehlungen
    • Semesterplan
      • FAQ
        • Kontakt
          • Prüfungsinformationen
            • Alte Klausuren
              • Evaluation
                • Intern

                Vorlesung

                Aktuelles


                • Freitag, 03.03.2023: Klausurergebnisse im Waffel und Campo einsehbar, Statistiken unter Prüfungsinformationen. Termin zur Einsicht wird per Mail (und hier) bekannt gegeben sobald bekannt.
                • Fragestunde zur Klausur im H4 ab Montag, 20.02.2023 08:30
                • Besuch des Linux-Kurses der FSI wird empfohlen, Inhalt wird im Übungsbetrieb vorausgesetzt
                • Übungsanmeldung im Waffel ab Montag, 17.10.2022 08:00

                Im Wiederholerdurchlauf findet keine Vorlesung statt, die Folien und Videos des Vorsemesters sollten jedoch eigenständig bearbeitet werden.

                Ü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.

                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.)

                Folien: (A4) (A5) (A6)

                Lernzielkontrolle: Fragen

                Videos aus dem SS20:

                • Vorstellung der Dozenten und Tagesordnung 🔗 pdf
                • Einleitung in den Themenkomplex 🔗 pdf
                • Konzept der Lehrveranstaltung 🔗 pdf
                • Arrangement der Lehre und Ausklang 🔗 pdf

                A II: C-Kurzeinführung (28.4., 3.5., 5.5., 10.5.)

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

                Teil 1 (28.4.)

                • Vorstellung
                • Überblick 🔗 pdf
                • Programmstruktur, Datentypen und Variablen 🔗 pdf
                • Anweisungen 🔗 pdf

                Teil 2 (3.5.)

                • Funktionen 🔗 pdf
                • Preprozessor 🔗 pdf
                • Module 🔗 pdf
                • Gültigkeitsbereiche von Variablen 🔗 pdf
                • Lebensdauer von Variablen 🔗 pdf

                Teil 3 (5.5.)

                • Zeiger, Zeiger als Funktionsargumente, Zeiger auf Strukturen 🔗 pdf
                • Felder, Zeiger und Felder, Zeigerarithmetik, Mehrdimensionale Felder 🔗 pdf
                • Dynamische Speicherverwaltung, sizeof-Operator, Cast-Operator 🔗 pdf

                Teil 4 (10.5.)

                • Felder als Funktionsparameter 🔗 pdf
                • Zeiger, Felder und Zeichenketten 🔗 pdf
                • Felder von Zeigern, Argumente aus der Kommandozeile 🔗 pdf
                • Strukturen, Zeiger auf Funktionen 🔗 pdf
                • Ein-/Ausgabe 🔗 pdf

                A III: Ausführung von Programmen - von der Quelle zum Prozess (12.5.)

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

                Videos aus dem SS20:

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

                B IV: Einleitung (19.5.)

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

                Lernzielkontrolle: Fragen

                Videos aus dem SS20:

                • Begrüßung und Tagesordnung 🔗 pdf
                • Einordnung von Systemprogrammierung 🔗 pdf
                • Fallstudie zur Motivation 🔗 pdf
                • Analyse der Fallstudie 🔗 pdf
                • Deutung des Begriffs Betriebssystem 🔗 pdf
                • Zusammenfassung 🔗 pdf
                • Anhang zur Fallstudie 🔗 pdf

                B V.1: Rechnerorganisation: Virtuelle Maschinen (2.6.)

                Inhalte: Schichtenstruktur, Mehrebenenmaschinen, Interpretersysteme

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

                Lernzielkontrolle: Fragen

                Videos aus dem SS20:

                • Begüßung und Tagesordnung 🔗 pdf
                • Abriss der Lektion 🔗 pdf
                • Schichtenstruktur und semantische Lücke 🔗 pdf
                • Hierarchie virtueller Maschinen 🔗 pdf
                • Entvirtualisierung und Ausnahmen 🔗 pdf
                • Zusammenfassung 🔗 pdf
                • Anhang zu Virtualisierung 🔗 pdf

                B VI.1: Betriebssystemkonzepte: Prozesse (9.6.)

                Inhalte: Virtualität, Betriebsmittel, Aktionen, Einplanung/-lastung, Synchronisation (Semaphor), Repräsentation

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

                Lernzielkontrolle: Fragen

                Videos aus dem SS20:

                • Begüßung und Tagesordnung 🔗 pdf
                • Einführung und Prozessbegriff 🔗 pdf
                • Virtualität und Betriebsmittel 🔗 pdf
                • Nichtsequentielles Programm 🔗 pdf
                • Prozessplanung 🔗 pdf
                • Prozesssynchronisation 🔗 pdf
                • Implementierungsaspekte 🔗 pdf
                • Zusammenfassung 🔗 pdf
                • Anhang zu Allerlei 🔗 pdf

                B VI.2: Betriebssystemkonzepte: Speicher (23.6.)

                Inhalte: Speicherhierarchie, Primär-/Sekundärspeicher, Speicherverwaltung

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

                Lernzielkontrolle: Fragen

                Videos aus dem SS20:

                • Begrüßung und Tagesordnung 🔗 pdf
                • Einführung 🔗 pdf
                • Speicherebenen und Adressräume 🔗 pdf
                • Einleitung zur Speicherverwaltung 🔗 pdf
                • Speicherzuteilung 🔗 pdf
                • Speichervirtualisierung 🔗 pdf
                • Zusammenfassung 🔗 pdf
                • Anhang zur Speichervirtualisierung 🔗 pdf
                • Anhang zur Speicherzuteilung 🔗 pdf

                B VI.3: Betriebssystemkonzepte: Adressbindung (30.6.)

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

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

                Lernzielkontrolle: Fragen

                Videos aus dem SS20:

                • Begrüßung und Tagesordnung 🔗 pdf
                • Einführung 🔗 pdf
                • Speicheradressen 🔗 pdf
                • Pfadnamen 🔗 pdf
                • Namensbindung und -auflösung 🔗 pdf
                • Symbolauflösung 🔗 pdf
                • Zusammenfassung 🔗 pdf
                • Anhang zur Segmentierung 🔗 pdf
                • Anhang zu Pfadnamen 🔗 pdf
                • Anhang zur Internetprotokolladresse 🔗 pdf

                B V.2: Rechnerorganisation: Maschinenprogramme (7.7.)

                Inhalte: Programmhierarchie, Systemaufrufe, Organisationsprinzipien

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

                Lernzielkontrolle: Fragen

                Videos aus dem SS20:

                • Begüßung und Tagesordnung 🔗 pdf
                • Einführung in Maschinenprogramme 🔗 pdf
                • Programmhierarchie oberhalb der Befehlsatzebene 🔗 pdf
                • Organisationsprinzipien von Maschinenprogrammen 🔗 pdf
                • Zusammenfassung 🔗 pdf
                • Anhang zu Betriebssystembefehlen 🔗 pdf
                • Anhang zu Systemaufrufen 🔗 pdf

                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)

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

                B VIII: Zwischenbilanz (28.7.)

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

                Videos aus dem SS20:

                • Begrüßung und Tagesordnung 🔗 pdf
                • Systemsoftware, C und Betriebssysteme 🔗 pdf
                • Rechnerorganisation 🔗 pdf
                • Betriebssystemkonzepte 🔗 pdf
                • Rechnerbetriebsarten 🔗 pdf
                • Ausblick Systemprogrammierung 2 🔗 pdf

                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.

                Kapitel

                • Einleitung
                • Evolution und Betriebsarten
                • Organisation von Rechensystemen
                • Anhang
                • Antworten
                • Referenzen
                • Begriffsverzeichnis
                • Sachverzeichnis
                • Fremdwortverzeichnis

                Friedrich-Alexander-Universität
                Erlangen-Nürnberg

                Schlossplatz 4
                91054 Erlangen
                • Impressum
                • Datenschutz
                • Barrierefreiheit
                Nach oben