Betriebssystembau

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 12:15 bis 16:00 Uhr (HÜ: VER/H - 0.02, RÜ: CIP/E 2.024P3c)
Studiengangszuordnung:

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

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:

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

  • OOStuBS ist die klassische Uniprozessorvariante (Pflicht)
  • MPStuBS ist die Variante fĂŒr moderne Mehrkernrechner (+20% Bonus)

Die Teilnahme an den Übungen, sowie die Abgabe der Übungsaufgaben ist verpflichtend. Falls Sie alle Übungsaufgaben fĂŒr die MPStuBS Variante erfolgreich abgeben, erhalten Sie einen Bonus von 20 % 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:

  • Fernzugrgriff auf den Linux-Pool
  • Konsole per SSH
  • Graphische OberflĂ€che per X2Go
  • Installation der Software auf einem eigenen PC

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:

  • QEMU (qemu, qemu-system-x86, qemu-kvm)
  • GCC (build-essentials, binutils, gcc-multilibs, g++)
  • nasm

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 12:15 Mi 13:45 SpÀteste Abgabe
KW14 05. April VL1EinfĂŒhrung VL2BS-Entwicklung
KW15 12. April VL3IRQs (Hardware) Ü1Ein-/Ausgabe RÜ
KW16 19. April Ü0C++ RÜ RÜ
KW17 26. April VL4IRQs (Software) Ü2IRQ-Behandlung RÜ A1Abgabe 1
KW18 03. Mai VL5Intel IA-32 RÜ RÜ
KW19 10. Mai VL6IRQs (Synchronisation) Ü3IRQ-Synchronisation RÜ
KW20 17. Mai -- RÜ RÜ A2Abgabe 2
KW21 24. Mai Ferien RÜ RÜ
KW22 31. Mai VL7Koroutinen und FĂ€den Ü4Fadenumschaltung RÜ A3Abgabe 3
KW23 07. Juni -- RÜ RÜ
KW24 14. Juni VL8Scheduling Ü5Zeitscheiben-Scheduling RÜ A4Abgabe 4
KW25 21. Juni VL9Architekturen RÜ RÜ
KW26 28. Juni VL10Fadensynchronisation Ü6Fadensynchronistion RÜ A5Abgabe 5
KW27 05. Juli VL11GerĂ€tetreiber RÜ RÜ
KW28 12. Juli VL12Ausblick Ü7Anwendung (opt) RÜ 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

  • Grundlagen aus dem Betriebssystembereich wie Unterbrechungen, Synchronisation und Ablaufplanung aus frĂŒheren Veranstaltungen (Betriebssysteme)
    • Wiederholung und Vertiefung in Vorlesung und Übung
  • C / C++ und Assembler (x86)
    • Betriebssystemspezifische 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.

Stud.IP Veranstaltungen
Betriebssystembau