Design and Implementation of a Microkernel-Based Operating System for NUMA Machines
- Forschungsthema:L4Ka
- Typ:Diplomarbeit
- Datum:20.03.2008
- Betreuung:
Prof. Dr. Frank Bellosa, Jan Stoess
- Bearbeitung:Philipp Kupferschmied
- Links:PDF
-
Abstract:
Systeme mit uneinheitlichen Speicherzugriffszeiten sind die konsequente Weiterentwicklung klassischer Mehrprozessorarchitekturen. Anstelle alle Prozessoren mittels eines gemeinsamen Speicherbusses an einen gemeinsamen Hauptspeicher anzubinden, ist jede CPU über einen eigenen Speichercontroller und -bus an eigenen, lokalen Speicher angebunden. Auf diesen lokalen Speicher kann die CPU schnell zugreifen, wohingegen Zugriffe auf entfernten Speicher, also Speicher anderer CPUs, länger dauern. Dieser Ansatz hilft, die begrenzte Skalierbarkeit klassischer SMP-Architekturen zu überwinden, bei denen Speichercontroller und -bus mit steigender CPU-Zahl zum Flaschenhals werden. Die unterschiedlichen Speicherzugriffszeiten stellen eine zusätzliche Herausforderung sowohl für Betriebssystementwickler als auch für Anwendungsentwickler dar. Um bestmögliche Leistung zu erreichen, sollten Daten immer möglichst nah an der auf sie zugreifen CPU gehalten werden. Migration und Replikation sind wichtige Mechanismen zur Verbesserung der Lokalität, aber es hängt von vielen Faktoren ab, welcher der beiden Mechanismen vorzuziehen ist oder ob sie überhaupt anwendbar sind. Diese Faktoren sind unter anderem die Zugriffshäufigkeit, das Verhältnis zwischen Leseund Schreibzugriffen und der Grad, zu dem das betroffene Objekt gemeinsam (also von mehreren CPUs gleichzeitig) genutzt wird. In dieser Arbeit stellen wir ein auf NUMA-Hardware optimiertes Betriebssystem vor, das auf dem L4 Mikrokern basiert. Es werden sowohl notwendige Modifikationen am Kern selbst als auch der Aufbau der im Userlevel realisierten Systemdienste vorgestellt. Insbesondere stellen wir ein Konzept vor, das die Replikation von Seitentabellen erlaubt und die notwendige Synchronisation vollständig im Userlevel durchführt.
BibTex:
@diplomathesis{kupferschmied08MBOS,
author = {Philipp Kupferschmied},
title = {Design and Implementation of a Microkernel-Based Operating System for NUMA Machines},
type = {Diploma Thesis},
address = {System Architecture Group, University of Karlsruhe, Germany},
month = mar # "~20",
year = 2008
}