Modul Betriebssysteme, Informatik (Bachelor) (SPO 7)

Englische Sprache
Kompakte Schrift

Farbschema

Modulübersicht

Betriebssysteme

INFB3107

Prof. Dr. Thomas Fuchß

/

3. Semester

Softwareprojekt, Informatik 2

keine

Nach erfolgreichem Abschluss des Moduls sind die Studierenden in der Lage, die Funktionsweisen und Strukturen moderner Betriebssysteme sowie deren Einbettung in verschiedene Rechnerarchitekturen zu verstehen und verständlich zu erklären. Sie können systemnahes Wissen gezielt einsetzen, um performante Software zu entwerfen, zu entwickeln und zu implementieren. Darüber hinaus sind sie in der Lage, komplexe Programmieraufgaben im Team zu organisieren, gemeinsam zu bearbeiten und erfolgreich abzuschließen. Sie haben ihre technischen, sozialen und persönlichen Kompetenzen sowie ihre Kommunikationsfähigkeit und ihr Selbstmanagement weiterentwickelt.

Einzelprüfungen
Lehrveranstaltung Betriebssysteme

INFB3117

Vorlesung

Prof. Dr. Thomas Fuchß

deutsch

4/4

120 Stunden gesamt, davon 60 Stunden Kontaktstudium.

Klausur 90 Min. (benotet)

Die Lehrveranstaltung Betriebssysteme vermittelt die grundlegenden Aufgaben und Funktionsweisen moderner Betriebssysteme und befähigt die Studierenden, diese Techniken strukturiert und eigenständig im Team auf systemnahe Entwicklungsaufgaben anzuwenden. Die Veranstaltung gliedert sich in vier zentrale Themenbereiche:

Grundlagen, Prozessmanagement und Scheduling:

  • Verbindung zwischen Rechnerarchitektur und Betriebssystem.
  • Prinzipien der Prozessorvirtualisierung und Limited Direct Execution.
  • Scheduling-Algorithmen (z. B. Round-Robin, Shortes-Job-First).

Dateisysteme und Persistenz:

  • Anforderungen und Unterschiede bei HDDs und SSDs.
  • Aufbau und Realisierung von Dateisystemen.
  • Konzepte des Free-Space Managements und zur Konsitenzsicherung.

Speichervirtualisierung:

  • Prinzipien der Speichersegmentierung und Paging.
  • Verwaltung von Page Frames und Zuordnungsschemata.
  • Mechanismen zur Isolation und Speicherverwaltung.

Concurrency: Prozesse und Threads:

  • Einführung in Threads.
  • Synchronisationsmechanismen: Mutex, Semaphore, Condition Variables, Monitore.
  • Patterns für parallele und nebenläufige Programmierung.

Zusätzlich werden die spezifischen Herausforderungen der jeweiligen Bereiche sowie die typischen Lösungsansätze vorgestellt und in einem praxisnahen Kontext angewendet. Praktische Übungen begleiten die Veranstaltung, um den Transfer der theoretischen Inhalte auf realistische Szenarien zu fördern.

  • Foliensammlung und Videos
  • Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. Operating Systems: Three Easy Pieces, (V. 1.10) Arpaci-Dusseau Books, 2023
  • Tanenbaum, Andrew S.; Bos, H. Modern Operating Systems (4th Edition) – Pearson, 2014
  • Stallings, W. Operating Systems: Internals and Design Principles (8th Edition) – Pearson, 2014
  • Aufgabensammlung zur Vorlesung sowie Sammlung alter Klausuren und deren Lösung ebenfalls im ILIAS-Sytem verfügbar.
Lehrveranstaltung Betriebssysteme Labor

INFB3127

Labor

Prof. Dr. Carsten Sinz

deutsch

3/2

90 Stunden gesamt, davon 30 Stunden Kontaktstudium.

Laborarbeit 1 Semester (nicht benotet)

Die in Gruppen durchzuführende Aufgabe kommt aus dem Themenkomplex Dateisysteme. Im ersten Teil wird den Studierenden vermittelt, wie sich Dateisysteme mit Hilfe von FUSE (Filesystem in User SpacE) implementieren und in das Linux-Dateisystem einhängen lassen. Dazu wird die Struktur des Dateisystems entwickelt und Dateisystem-Abbilder generiert, auf die zunächst nur lesend zugegriffen werden kann. Im zweiten Teil werden Verwaltungsroutinen für das Dateisystem entwickelt, die es ermöglichen, Dateien dynamisch anzulegen und zu löschen. Dabei muss der verfügbare Speicherplatz effizient verwaltet werden. Die durchzuführende Implementierung in C++ vertieft die Fähigkeiten im Umgang mit Systembibliotheken, dynamischen Datenstrukturen, Speicherverwaltung und Zeigern.

  • Folien-Skript
  • R. Arpaci-Dusseau, A. Arpaci-Dusseau, Operating Systems: Three Easy Pieces, (V. 0.90). Arpaci-Dusseau Books, 2015. http://pages.cs.wisc.edu/~remzi/OSTEP/ (Kapitel 39 und 40).
  • J. Pfeiffer, Writing a FUSE Filesystem: a Tutorial. https://www.cs.nmsu.edu/~pfeiffer/fuse-tutorial/ (abgerufen 12.10.2017)
  • R. Stevens, S. Rago, Advanced Programming the UNIX Environment (3rd Edition). Addison Wesley, 2013. (Kapitel 3 und 4)

Seminaristischer Unterricht; betreutes Labor