Corona [Update: 20.05.2020]: Aufgrund der Corona-Situation finden die Veranstaltungen des SRA im Sommersemester 2020 online statt. Details (wie Termine und Links) entnehmen Sie bitte der jeweiligen Veranstaltungswebseite bzw. dem Stud.IP.

Betriebssystembau und Betriebsystembau für Mehrkernsysteme


Semester:
Sommersemester

Leistungspunkte
5 (Single Core) bzw. 8 (Multi Core)

Dozent:
Daniel Lohmann

Betreuer:
Daniel Lohmann

Zeit/Raum:
Freitag, 10:15 bis 11:45 Uhr, Online-Raum BSB Vorlesung (Stud.IP-Login erforderlich)

Stud.IP-Veranstaltung:

Studiengänge:

  • 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

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. Grundlagen der Betriebssysteme) 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. Zunächst gibt es zwei Varianten der Übungen:

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 unsere Labore nicht zugänglich, daher sind hier die Möglichkeiten an die Infrastruktur und Software zu kommen ausgelistet:

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

SSH / VNC

Für die Rechnerübungen steht die Möglichkeit zur Verfügung auf unsere Labor-Rechner über SSH und VNC zuzugreifen. Weitere Informationen folgen, sobald die Laboraccounts eingerichtet sind.

Eigener PC

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

Für Ubuntu (18.04):

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

VirtualBox Image

Das Image findet sich hier: ubuntu.ova. Es kann einfach in VirtualBox importiert werden und enthält die benötigte Software.

md5sum: 138ece371231dc520dbbb8e034379cb3
sha256sum: 6e162fd3c6526099cb62c15d0ef357db368839479494cd50dc2b8f0745a8199d

Vorläufiger Semesterplan

Woche Di 12:30 Di 14:00 Mi 12:30 Mi 14:00 Fr 10:15
20.04 VL1Einführung Ü0C++ VL2BS-Entwicklung
27.04 Ü1Ein-/Ausgabe Ü1Ein-/Ausgabe 1. Mai
04.05 VL3IRQs (Hardware)
11.05 Ü2IRQ-Behandlung A1Abgabe 1 Ü2IRQ-Behandlung A1Abgabe 1 VL4IRQs (Software)
18.05 VL5IRQs (Synchronisation)
25.05 Ü3IRQ-Synchronisation A2Abgabe 2 Ü3IRQ-Synchronisation A2Abgabe 2 VL6Intel IA-32
01.06 Pfingsten
08.06 VL7Koroutinen und Fäden
15.06 Ü4Fadenumschaltung A3Abgabe 3 Ü4Fadenumschaltung A3Abgabe 3 VL8Scheduling
22.06 VL9Architekturen
29.06 Ü5Zeitscheiben-Scheduling Ü5Zeitscheiben-Scheduling VL10Fadensynchronisation
06.07 A4Abgabe 4 A4Abgabe 4
13.07 Ü6Fadensynchronistion A5Abgabe 5 Ü6Fadensynchronistion A5Abgabe 5 VL11Gerätetreiber
20.07 Ü7Anwendung (opt) Ü7Anwendung (opt) VL12Ausblick
27.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.

Die optionale Übung 0 bietet eine kurze Einführung in betriebssystemspezifisches C++.

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
Gruppenübungen Betriebssystembau

Hinweis: Beide Veranstaltungen werden über die gleiche Stud.IP-Veranstaltung geregelt. Bitte tragen Sie sich also, auch wenn Sie „Betriebssystembau für Mehrkernsysteme“ hören wollen, für „Betriebssystembau“ im Stud.IP ein.