Oberseminar System- und Rechnerarchitektur (OSRA)

Art der Veranstaltung: Oberseminar (Seminar für BA/MA-Arbeiter und Doktoranden am SRA)
Semester: fortlaufend
Dozent: Daniel Lohmann
Creditpoints: keine (Teil des Moduls BA oder MA)
Zeit: Mittwochs, 10:00–11:30

Inhalt

Im Rahmen des Oberseminars werden im Wechsel wissenschaftliche Grundlangen erarbeitet sowie die eigenen Projekte im Rahmen der Bachelorarbeit, Masterarbeit oder Dissertation präsentiert und diskutiert.

Das Oberseminar richtet sich vorrangig an studentische Arbeiter und Doktoranden am SRA. Eine Teilnahme für andere Mitglieder der Universität ist auf Nachfrage möglich.

Semesterplan

KW Datum Format Thema Durchführender Anmerkungen
11 14.03.2018 Lesegruppe Grundlangen – Mikrokerne Daniel Lohmann siehe Leseliste, mindestens [1, 4, 3]
12 21.03.2018 Lesegruppe Grundlangen – exokern
Neuere Ansätze – Corey, TxOS
Daniel Lohmann siehe Leseliste [11, 21, 23]
13 28.03.2018 Lesegruppe Neuere Ansätze – Multicore Challenge Daniel Lohmann siehe Leseliste [22, 24, 25]
Termin unter Vorbehalt
15 11.04.2018 Doktorandenseminar Andreas Ziegler
17 25.04.2018 Doktorandenseminar Florian Rommel
18 03.05.2018 Doktorandenseminar Gerion Entrup
Björn Fiedler
Achtung: Donnerstag, 9:30
19 09.05.2018 BA/MA Konzeptvortrag Analyzing and Optimizing TLB-Induced Thread Migration Costs on Linux/ARM Tobias Landsberg
19 09.05.2018 BA/MA Konzeptvortrag InterSloth: Globales Hardware-gesteuertes Scheduling in einem Multikern-Echtzeitbetriebssystem auf RISC-V Malte Bargholz
19 09.05.2018 BA/MA Konzeptvortrag Integration of a Priority-Obedient Interrupt Controller into the Rocket Softcore Matthias Wolf
23 06.06.2018 Lesegruppe John Hennessy and David Patterson Turing Lecture Christian Dietrich
24 13.06.2018 BA/MA Konzeptvortrag Bintail: Binary Level Tailoring of ELF Executables via Feature Selection and Variant Elimination Felix Herrmann
24 13.06.2018 Gastvortrag PylotOS - ein interpretiertes Betriebssystem Stefan Naumann Sondertermin 13:00–14:00
26 29.06.2018 Gastvortrag Predictability Issues in Operating Systems Wolfgang Schröder-Preikschat, FAU Erlangen-Nürnberg Vortrag im Informatik-Kolloquium, 15:00-16:30, Appelstr. 9, 15. Stock
32 06.08.2018 BA/MA Konzeptvortrag Fault-Space Approximation using Basic-Block Fault Injection Daniel Kiechle
36 05.09.2018 BA/MA Abschlussvortrag
BA/MA Konzeptvortrag
InterSloth: Globales Hardware-gesteuertes Scheduling in einem Multikern-Echtzeitbetriebssystem auf RISC-V, ROS Timestamps for libusb in the Linux Kernel Malte Bargholz, Johann Freymuth
38 19.09.2018 Gastvortrag Implementierung und Evaluation von Sensorfusionsalgorithmen auf echtzeitfähigen Wireless-MCUs Tim Oberschulte

Leseliste zum Thema Betriebssystemkern-Paradigmen

Grundlagen – Mikrokerne

Mit MACH [1] begann das Mikrokernfieber, auch wenn die Idee des message-passing kernels schon auf Brinch Hansen's RC 4000 Betriebssystem [2] zurück geht. Problem war immer die IPC-Performance. Damit räumte erst L4 auf [3, 4], das durch ein hohes Maß an (hardwarezentrierter) Spezialisierung konkurrenzfähige Performancewerte erreichte [5].

Für den Beginn sei zunächst die Lekture von [1, 4, 3] (in dieser Reihenfolge) empfohlen:

  1. {MACH: A New Kernel Foundation for UNIX Development}
    Mike Accetta, Robert Baron, David Golub, Richard Rashid, Avadis Tevanian, Michael YoungProceedings of the USENIX Summer ConferenceUSENIX Association1986.
    PDF [BibTex]
  2. The Nucleus of a Multiprogramming System
    Peer Brinch HansenCommunications of the ACM13.4ACM Press1970.
    PDF [BibTex]
  3. On µ-Kernel Construction
    Jochen LiedtkeProceedings of the 15th ACM Symposium on Operating Systems Principles (SOSP '95)ACM Press1995.
    10.1145/224057.224075 [BibTex]
  4. Toward Real Microkernels
    Jochen LiedtkeCommunications of the ACM39.9ACM Press1996.
    10.1145/234215.234473 [BibTex]
  5. The Performance of µ-Kernel-Based Systems
    Hermann Härtig, Michael Hohmuth, Jochen Liedtke, Sebastian Schönberg, Jean WolterProceedings of the 16th ACM Symposium on Operating Systems Principles (SOSP '97)ACM Press1997.
    10.1145/269005.266660 [BibTex]

Grundlagen – exokern

Der exokern [11] begründet die Philosophie des Verlagerns von Betriebssystemfunktionalität in die Anwendung (bzw. Bibliotheken, die mit der Anwendung gelinkt werden) – und damit der anwendungsgewahren Spezialiserung.

Die Lekture von [11] ist schlicht ein "Muss":

  1. Exokernel: An Operating System Architecture for Application-Level Resource Management
    Dawson R. Engler, M. Frans Kaashoek, James O'TooleProceedings of the 15th ACM Symposium on Operating Systems Principles (SOSP '95)ACM Press1995.
    10.1145/224057.224076 [BibTex]

Neuere Ansätze – Die Multicore Challenge

Neue Ideen scheinen in der Betriebssystemwelt in Wellen zu kommen. Nachdem lange kaum noch neue Ansätze zum Kerneldesign vorgestellt wurden, kamen 15 Jahre später mehrere Ideen zum Umgang mit massiver Parallelität im Betriebssystemkern und der Verfügbarkeit einer großen Anzahl von CPUs "auf den Markt". Corey [21] stellt dabei in bester exokern-Tradition das Sharing von (Betriebssystem-)datenstrukturen unter die Kontrolle der Anwendung, so dass diese (in der Regel) nur von einem CPU-Kern bearbeitet werden. Barrelfish [22] verhindert hingegen implizites Sharing vollständig, indem BS-Dienste exklusiv auf einzelne CPU-Kerne verteilt werden und – in bester Mikrokern-Tradition – nur über Nachrichten kommuniziert wird. Einen ähnlichen Weg beschreitet auch fos [24], wobei hier der Paradigmenwechsel von time sharing zu space sharing am deutlichsten wird. Arrakis ist ein fork [25] von Barrelfish, der Anwendungen den direkteren Zugang auf die Hardware gewährleistet – wodurch die Grenze zwischen Mikrokern und exokern weiter verschwimmt. TxOS [23] ist hingegen ein Ansatz für den klassischen Monolithen (Linux), indem syscalls als Transaktionen ausgelegt werden.

Empfohlene Lesereihenfolge [21, 22, 25, 24, 23]:

  1. Corey: An Operating System for Many Cores
    Silas Boyd-Wickizer, Haibo Chen, Rong Chen, Yandong Mao, Frans Kaashoek, Robert Morris, Aleksey Pesterev, Lex Stein, Ming Wu, Yuehua Dai, Yang Zhang, Zheng Zhang8th Symposium on Operating System Design and Implementation (OSDI '08)USENIX Association2008.
    PDF [BibTex]
  2. The multikernel: a new OS architecture for scalable multicore systems
    Andrew Baumann, Paul Barham, Pierre-Evariste Dagand, Tim Harris, Rebecca Isaacs, Simon Peter, Timothy Roscoe, Adrian Schüpbach, Akhilesh SinghaniaProceedings of the 22nd ACM Symposium on Operating Systems Principles (SOSP '09)ACM Press2009.
    10.1145/1629575.1629579 [BibTex]
  3. Operating System Transactions
    Donald E. Porter, Owen S. Hofmann, Christopher J. Rossbach, Alexander Benn, Emmett WitchelProceedings of the 22nd ACM Symposium on Operating Systems Principles (SOSP '09)ACM Press2009.
    10.1145/1629575.1629591 [BibTex]
  4. Factored operating systems (fos): the case for a scalable operating system for multicores
    David Wentzlaff, Anant AgarwalACM SIGOPS Operating Systems Review43.2ACM Press2009.
    10.1145/1531793.1531805 [BibTex]
  5. Arrakis: The Operating System is the Control Plane
    Simon Peter, Jialin Li, Irene Zhang, Dan R. K. Ports, Doug Woos, Arvind Krishnamurthy, Thomas Anderson, Timothy RoscoeProceedings of the 11th USENIX Conference on Operating Systems Design and ImplementationUSENIX Association2014.
    PDF [BibTex]