Modul Betriebssysteme, Medien- und Kommunikationsinformatik (Bachelor) (SPO 3)

Englische Sprache
Kompakte Schrift

Farbschema

Modulübersicht

Betriebssysteme

MKIB3103

Prof. Dr. Thomas Fuchß

/

3. Semester

Theoretische Informatik, Softwareprojekt, Informatik 2, Informatik 1

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.

Einzelprüfungen
Lehrveranstaltung Betriebssysteme

MKIB3113

Vorlesung

Prof. Dr. Thomas Fuchß

deutsch

4/4

120 Stunden gesamt, davon 60 Stunden Kontaktstudium.

Klausur 90 Min. (benotet)

Im Rahmen der Lehrveranstaltung Betriebssysteme werden nicht nur die grundlegenden Aufgaben und Arbeitsweisen moderner Betriebssysteme vermittelt, sondern die Studierenden erlernen auch diese Techniken selbständig und strukturiert im Team zur Lösung typischer systemnaher Entwicklungsaufgaben einzusetzen. Die Vorlesung selbst gliedert sich hierzu in vier Teile:

  • Grundlagen, Prozessmanagement und Scheduling
  • Dateisysteme und Persistenz
  • Speichervirtualisierung
  • Concurrency: Prozesse und Threads

Während im ersten Teil die Verbindung zwischen Rechnerarchitektur und Betriebssystem geschaffen wird und ein prinzipielles Verständnis für die Aufgaben eines Betriebssystems entwickelt wird, stehen in den darauffolgenden Abschnitten die Vermittlung der spezifischen Probleme, das Verstehen der typischen Lösungsstrategien und das Anwenden dieser Strategien im entsprechenden Kontext im Vordergrund. Insbesondere werden folgende Punkte behandelt: Prozessorvirtualisierung, Speichervirtualisierung, Limited Direct Execution, Scheduling-Algorithmen, Free-Space Management, Segmentierung, Page Frames, Prozesse, Threads, Mutex, Semaphor, Condition Variable, Monitore und Patterns zur parallelen Programmierung. Hinzu kommen die zentralen Konzepte von Dateisystemen, deren Aufbau und Realisierung, bis zur Behandlung von Raid-Konzepten und dem Umgang mit modernen SSDs.

  • Foliensammlung und Videos
  • Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. Operating Systems: Three Easy Pieces, (V. 1.00) Arpaci-Dusseau Books, 2018
  • 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

MKIB3123

Labor

Prof. Dr. Carsten Sinz

deutsch

5/4

150 Stunden gesamt, davon 60 Stunden Kontaktstudium.

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