System Design and Implementation

Inhalt

In der Vorlesung Systementwurf und Implementierung sollen Studierende konkrete und aktuelle Herangehensweisen zum Entwurf und zur Implementierung von Betriebssystemen kennenlernen. Ein Schwerpunkt wird die Strukturierung und Modularisierung von Betriebssystemen bilden. Studierende sollen zudem detaillierte Kenntnisse über den Aufbau einzelner Betriebssystemdienste erwerben und die Auswirkungen der verstärkten Modularisierung von Betriebssystemen verstehen.

Im Gegensatz zur Grundlagenvorlesung Betriebssysteme werden wir aktuelle Rahmenbedingungen, wie Multicore-Systeme und allgegenwärtige Vernetzung, betrachten und besprechen, welche Antworten die Betriebssysteme-Forschung auf diese Anforderungen gibt.

Als Fallstudie wird sich die Konstruktion modularer Betriebssysteme auf Basis von Mikrokernen durch die gesamte Vorlesung ziehen. Anhand dieses Beispiels werden wir sowohl Vorteile (größerer Schutz, erhöhte Stabilität, verbesserte Anpassungsfähigkeit, etc.) als auch Nachteile der Modularisierung (erhöhter Kommunikationsaufwand, unflexiblere Schnittstellen, Leistungseinbußen, etc.) besprechen.

Das eng mit der Vorlesung verbundene Praktikum Systementwurf und Implementierung bietet den Studierenden schließlich die Möglichkeit, die in der Vorlesung erworbenen theoretischen Kenntnisse "am eigenen Leibe" zu erfahren, indem sie im Team an einem kleinen modularen Betriebssystem arbeiten. Die Teams werden spezifische Komponenten von Grund auf neu entwickeln oder verbessern, und diese implementieren und experimentell evaluieren. Zur Teilnahme am SDI-Praktikum ist eine Anmeldung erforderlich.

Voraussetzungen

Vorheriges Hören der Vorlesung "Betriebssysteme" wird erwartet. Ein gutes Verständnis von Betriebssystemkonzepten wird vorausgesetzt.

Vorheriges Hören der Vorlesung "Microkernel Construction" ist gewiss hilfreich, aber nicht notwendig. Die anfängliche Einführung in L4 sollte ausreichen. Das Hören der Vorlesung "Microkernel Construction" wird jedoch empfohlen, wenn man das Warum und Wie der Kern-Interna verstehen möchte. Während der Veranstaltung wird in C bzw. C++ programmiert. Grundlegende Kenntnisse in C, C++ oder Java sind ausreichend als Vorwissen.