Modul Betriebssysteme und Systemnahes Programmieren, Medieninformatik (Bachelor) (SPO 2)

Englische Sprache
Kompakte Schrift

Farbschema

Modulübersicht

Betriebssysteme und Systemnahes Programmieren

MKIB310

Prof. Dr. Thomas Fuchß

/

3. Semester

Theoretische Informatik, Softwarelabor, Informatik 1, Informatik 2

keine

Die Studierenden verstehen die Funktionsweisen und Strukturen moderner Betriebssysteme sowie ihre Einbettung in die jeweiligen Rechnerarchitekturen. Sie erlernen dieses Wissen zur Entwicklung performanter und systemnaher Software einzusetzen und entsprechende Software zu konzipieren und zu implementieren. Die komplexen Programmieraufgaben sind als Teamarbeit ausgelegt und unterstützen damit nicht nur die Verbesserung der fachlichen Kompetenz, sondern dienen gezielt der Entwicklung von Sozial- und Selbstkompetenz.

Die Studierenden nutzen ihre Programmierkenntnisse in Gruppenarbeit an einem Projekt. Anhand verschiedener Aufgaben werden prinzipielle Techniken der systemnahen Programmierung angewandt, sowie allgemeine Programmiertechniken vertieft. Darüber hinaus verstehen die Studierenden die Grundlagen des Compiler-Baus.

Einzelprüfungen
Lehrveranstaltung Betriebssysteme

MKIB311

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 Systemnahes Programmieren

MKIB312

Labor

Prof. Dr. Carsten Sinz

deutsch

5/4

150 Stunden gesamt, davon 60 Stunden Kontaktstudium.

Laborarbeit 1 Semester (nicht benotet)

Die in Gruppen durchzuführende Aufgaben kommt aus dem Gebiet Compiler-Bau. Im ersten Teil wird den Studenten die Funktionsweise eines Scanners sowie dessen Einordnung innerhalb eines Compilers vermittelt. Die durchzuführende Implementierung in C++ vertieft die Fähigkeiten im Umgang mit dynamischen Datenstrukturen, eigener Speicherverwaltung und Zeigern. Diese Kenntnisse werden im zweiten Teil des Labors im Rahmen der Entwicklung eines Parsers vertieft. Im Mittelpunkt steht hier der Umgang mit rekursiven Datenstrukturen. Die Studenten erlernen, wie sich durch den Einsatz von Entwurfsmustern Strukturen einfacher bearbeiten und verwalten lassen.

  • Folien-Skript
  • Eduard Glatz. Betriebssysteme: Grundlagen, Konzepte, Systemprogrammierung - dpunkt.verlag, 2010
  • A.V. Aho, M.S. Lam, R. Sethi und J.D. Ullman. Compiler - Prinzipien, Techniken und Werkzeuge - 2nd Edition - München: Pearson Studium, 2008.
  • D. Grune et. al. Modern compiler design - Wiley, 2000.
  • Andrew S. Tanenbaum. Betriebssysteme, Entwurf und Realisierung Teil 1 - Hanser, 1990.

Seminaristischer Unterricht; betreutes Labor