Betriebssystembau und Betriebsystembau für Mehrkernsysteme

Art der Vorlesung: Vorlesung/Übung
Semester: Sommersemester
Betreuer: Christian Dietrich, Gerion Entrup
Dozent: Daniel Lohmann
Vorlesungstag/Uhrzeit: Freitag 10:15 bis 11:45 Uhr
Raum/Ort: SRA Seminarraum (Raum 135, Appelstr. 4, 1.OG)
Leitungspunkte: 5 (Single Core) bzw. 8 (Multi Core)

  • Betriebssystembau 5 LP, 2V+2Ü
    • Bachelor Informatik: IV
    • Bachelor Technische Informatik: IV
    • Bachelor E-Technik: diverse Modulgruppen
    • Master Informatik: GI
    • Master Technische Informatik: GTI
    • Master E-Technik: diverse Modulgruppen
  • Betriebssystembau für Mehrkernsysteme, 8 LP, 2V+4Ü
    • Master Informatik: INF
    • Master Technische Informatik: INF

Bei Fragen können Sie uns jederzeit eine E-Mail schreiben oder gerne auch direkt in unseren Büros vorbeischauen. Betreut wird Betriebssystembau von Daniel Lohmann, Christian Dietrich und Gerion Entrup.

Inhalt der Vorlesung

Ziel der Vorlesung ist die Vermittlung von konzeptionellen Grundlagen und wichtigen Techniken, die für den Bau eines Betriebssystems erforderlich sind. In den vorlesungsbegleitenden Übungen werden diese Kenntnisse praktisch angewendet, indem ein kleines PC-Betriebssystem in kleinen Arbeitsgruppen von Grund auf neu entwickelt wird. Um dies zu bewerkstelligen, sind fundierte Kenntnisse über Aufbau und Funktionsweise der PC-Hardware erforderlich, die ebenfalls in der Lehrveranstaltung vermittelt werden. Dabei werden gleichzeitig Grundlagen aus dem Betriebssystembereich wie Unterbrechungen, Synchronisation und Ablaufplanung, die aus früheren Veranstaltungen (z.B. Betriebssysteme) weitgehend bekannt sein sollten, wiederholt und vertieft.

Die Vorlesung umfasst folgende Themen:

  • Grundlagen der Betriebssystementwicklung
  • Unterbrechungen (Hardware, Software, Synchronisation)
  • IA-32: Die 32-Bit-Intel-Architektur
  • Koroutinen und Programmfäden
  • Scheduling
  • Betriebssystem-Architekturen
  • Fadensynchronisation
  • Gerätetreiber
  • Interprozesskommunikation

Organisation und Inhalt der Übungen

Ziel der Übungen ist es, schrittweise ein kleines Betriebssystem für den PC zu entwickeln. Für die Bearbeitung der Übungsaufgaben werden Gruppen von je 2 Studenten gebildet. Zunächst gibt es zwei Varianten der Übungen:

  • OOStuBS (Betriebsystembau) ist die klassische Uniprozessorvariante: 5 Leistungspunkte (2V + 2Ü)
  • MPStuBS (Betriebssystembau für Mehrkernsysteme) die Variante für moderne Mehrkernrechner: 8 Leistungspunkte (2V + 4Ü)

In den Tafelübungen werden Fragen zum Stoff der Vorlesung geklärt und die Übungsaufgaben vorgestellt. Zusätzlich werden Hintergründe, die für die Aufgaben relevant sind, stärker beleuchtet (z. B. Hardware-Spezifika) und Knackpunkte im Design und der Implementierung zusammen besprochen und Lösungen entwickelt. Tafelübungen finden im SRA-Seminarraum (Raum 135, Appelstr. 4, 1. OG) statt. Da die Bearbeitung einer Aufgabe in der Regel zwei Wochen beansprucht, finden Tafelübungen nicht wöchentlich statt (siehe Semesterplan).

Rechnerübungen finden im SRA-Rechnerlabor (Raum 124, Appelstr. 4, 1. OG) statt, wo zu den entsprechenden Zeiten mindestens ein Betreuer anwesend ist. Auch außerhalb der dedizierten Zeiten können Sie bei Fragen gerne bei uns vorbeischauen.

Semesterplan

Woche Di 12:30 Di 14:00 Mi 12:30 Mi 14:00 Fr 10:15
09.04 VL1Einführung Ü0C++ VL2BS-Entwicklung
16.04 Ü1Ein-/Ausgabe Ü1Ein-/Ausgabe VL3IRQs (Hardware)
23.04 Ü2IRQ-Behandlung VL4IRQs (Software)
30.04 1. Mai 1. Mai Ü2IRQ-Behandlung A1Abgabe 1 VL5IRQs (Synchronisation)
07.05 A1Abgabe 1
14.05 Ü3IRQ-Synchronisation A2Abgabe 2 Ü3IRQ-Synchronisation A2Abgabe 2 VL6Intel IA-32
21.05
28.05 VL7Koroutinen und Fäden
04.06 Ü4Fadenumschaltung A3Abgabe 3 Ü4Fadenumschaltung A3Abgabe 3 VL8Scheduling
11.06 VLE1Extra: Meltdown & Spectre VL9Architekturen
18.06 Ü5Zeitscheiben-Scheduling A4Abgabe 4 Ü5Zeitscheiben-Scheduling A4Abgabe 4
25.06 VL10Fadensynchronisation, VLE2Extra: Externer Vortrag um 15:00
02.07 Ü6Fadensynchronistion A5Abgabe 5 Ü6Fadensynchronistion A5Abgabe 5 VL11Gerätetreiber
09.07 Ü7Anwendung (opt) Ü7Anwendung (opt) VL12Ausblick
16.07 A6Abgabe 6 A6Abgabe 6

Es finden 2 Übungsslots pro Woche statt, wovon jeder Student nur einen besuchen muss. Das bedeutet, dass wir die gleiche Übung zweimal pro Woche halten um eine kleinere Gruppengröße zu erreichen. Ein Übungstermin kann dabei aus einem Tafelübungsteil (Ü1Ein-/Ausgabe) in dem die nächste Aufgabe vorgestellt wird, einer betreuten Rechnerzeit (), und einem Abgabetermin (A1Abgabe 1) bestehen.

Vorkenntnisse

  • Grundlagen aus dem Betriebssystembereich wie Unterbrechungen, Synchronisation und Ablaufplanung aus früheren Veranstaltungen (wie Betriebssysteme)

  • Wiederholung und Vertiefung in Vorlesung und Übung

  • C / C++ und Assembler (x86)

  • Wichtige Inhalte werden in den Übungen vermittelt
  • Hilfe bei Bedarf

Evaluation

Anmeldung und weitere Infos

Für diese Veranstaltung ist eine Online-Anmeldung über Stud.IP erforderlich. Bitte registrieren Sie sich (falls noch nicht geschehen) für Stud.IP und tragen Sie sich dort in die entsprechende Veranstaltung ein. Die aktuelle Prüfungsankündigung ist in Stud.IP zu finden (Reiter „Prüfungsankündigung“).

Stud.IP Veranstaltungen
Betriebssystembau
Betriebssystembau für Mehrkernsysteme
Gruppenübungen Betriebssystembau
Gruppenübungen Betriebssystembau für Mehrkernsysteme