Betriebssystembau und Betriebssystembau für Einkernsysteme

Art der Veranstaltung: Vorlesung/Übung
Semester: Sommersemester, 2V+4Ü
Dozent/Dozent: Christian Dietrich
Prüfungsform: Mündliche Prüfung
Leistungspunkte: 6 LP
E-Mail: christian.dietrich@tuhh.de
Vorlesung: Dienstag 16:15 - 17:45 Uhr (VER/N - 0009)
Übung: Mittwoch 8:00 bis 11:30 Uhr (HÜ: VER/N - 0005, RÜ: CIP/E 2.024P3c)
StudIP-Veranstaltung: BSB
Modul "Betriebssystembau" (Master):

  • Master "Computer Science": Vertiefung I. Computer- und Software-Engineering
  • Master "Informatik-Ingenieurwesen": Technischer Ergänzungskurs (TEK)

Modul "Betriebssystembau für Einkernsysteme" (Bachelor):

  • Bachelor "Computer Science": Vertiefung I. Computer- und Software-Engineering
  • Bachelor "Informatik-Ingenieurwesen": Vertiefung I. Informatik

Die Veranstaltung kann entweder im Bachelor oder im Master belegt werden.

Bei Fragen können Sie uns jederzeit eine E-Mail schreiben. Betreut wird Betriebssystembau von Christian Dietrich und Yannick Loeck.

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 anderen Veranstaltungen weitgehend bekannt sein sollten, wiederholt und vertieft.

Die Vorlesung umfasst folgende Themen:

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 Studierenden gebildet. Dabei gibt es zwei Varianten der Übung:

Die Teilnahme an den Übungen, sowie die Abgabe der Übungsaufgaben ist verpflichtend. Falls Sie alle Übungsaufgaben für erfolgreich abgeben, erhalten Sie einen Bonus von 10 % auf Ihre Modulnote.

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), Knackpunkte im Design und der Implementierung zusammen besprochen und Lösungen entwickelt. Da die Bearbeitung einer Aufgabe in der Regel zwei Wochen beansprucht, finden Tafelübungen nicht wöchentlich statt (siehe Semesterplan).

Technische Infrastruktur

Aufgrund der aktuellen Lage sind die Computerpools nicht zugänglich, daher sind hier die Möglichkeiten an die Infrastruktur und Software zu kommen ausgelistet:

Auch wenn die Computerpools gerade nicht zugänglich sind, sind wir für auftauchende Fragen und Probleme da. Weiteres wird in der Übung und Vorlesung bekannt gegeben.

Eigener PC

Für die Installation auf dem eigenen PC wird folgende Software benötigt:

Für Ubuntu (20.04):

apt install nasm qemu qemu-system-x86 qemu-kvm build-essential binutils gcc-multilib g++

Vorläufiger Semesterplan

KW Dienstag Di 16:15 Mi 8:00 Mi 9:30 Späteste Abgabe
KW14 4. April entfällt entfällt entfällt
KW15 11. April VL1Einführung VL2BS-Entwicklung Ü0C++
KW16 18. April VL3IRQs (Hardware) Ü1Ein-/Ausgabe
KW17 25. April VL4IRQs (Software)
KW18 02. Mai VL5Intel IA-32 Ü2IRQ-Behandlung A1Abgabe 1
KW19 09. Mai VL6IRQs (Synchronisation) Ü3IRQ-Synchronisation
KW20 16. Mai Ferien
KW21 23. Mai VL7Koroutinen und Fäden A2Abgabe 2
KW22 30. Mai VL8Scheduling Ü4Fadenumschaltung A3Abgabe 3
KW23 06. Juni VL9Architekturen
KW24 13. Juni VL10Fadensynchronisation Ü5Zeitscheiben-Scheduling A4Abgabe 4
KW25 20. Juni VL11Gerätetreiber Ü6Fadensynchronistion
KW26 27. Juni VL12Ausblick Ü7Anwendung (opt) A5Abgabe 5
KW27 04. Juli (Ersatz) (Ersatz) (Ersatz)
KW28 11. Juli (Ersatz) (Ersatz) (Ersatz) A6Abgabe 6

Die optionale Übung 0 bietet eine kurze Einführung in betriebssystemspezifisches C++. Die Abgabe findet in den Rechnerübungen durch gemeinsame Diskutieren der Lösung statt.

Vorkenntnisse

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.

Stud.IP Veranstaltungen
Betriebssystembau