Institut für informationstechnische Systeme
Prof. Dr. Rzehak
Aufgabenstellung und Betreuung: Prof. Dr. Helmut Rzehak
Durchführung: Arnd C. Heursch und Studenten der Informatik der Universität der Bundeswehr München
In zunehmenden Maße müssen Standardbetriebsysteme neben anderen Programmen auch zeitkritische Aufgaben bewältigen, z.B. im Home-Bereich Soft-Realtime Aufgaben wie die Wiedergabe von Audio- oder Videodaten auf PC's. Aber auch im Embedded Bereich fassen Standardbetriebssysteme wie Linux oder Java Fuß aufgrund ihrer umfassenden Funktionalität, der grossen Menge verfügbarer Software, der fehlenden Runtime-Lizenzen sowie der grossen Entwicklergemeinde, die auch Portierungen auf andere Plattformen vornimmt. Teilweise werden dadurch proprietäre Betriebssysteme verdrängt. In Embedded Systems fallen oft ebenfalls zeitkritische Aufgaben an.
Dieses Projekt untersucht am Beispiel von Linux wie der Kernel eines Standardbetriebssystems dahingehend verändert werden kann, dass er zeitkritische Aufgaben zeitgenauer, d.h. möglichst pünktlich, erfüllen kann, ohne dass Standardapplikationen umprogrammiert werden müssen oder in ihrer Performance leiden. Linux ist als Open Source Betriebssystem für die Untersuchungen besonders geeignet, da der Quellcode des Betriebssystemkerns einsehbar ist und - da er der GPL Lizenz unterliegt- auch verändert werden darf.
Als wesentliche Ursache für Latenzzeiten in der Größenordnung von bis zu Hunderten von Millisekunden auf aktueller Intel-kompatibler PC-Hardware ist der nicht preemptive Kernel Code aller Linux Kernel bis einschliesslich des aktuellen Standardkernels 2.4 zu nennen [4]. Die Linux Kernel Entwickler verfolgen 2 Richtungen, um die Preemptivität des Linux Kernels zu erhöhen: Das Einführen von zusätzlichen Preemption Points und die Nutzung kritischer Abschnitte anstatt einer globalen Unterbrechungssperre für den gesamten Kernel Code. In unserem Projekt werden beide Strategien hinsichtlich ihrer Konzeption, ihrer Grenzen und ihrer Auswirkungen auf die Performance anhand von theoretischen Überlegungen und Messungen verglichen. Dazu notwendig ist die Weiterentwicklung am Institut vorhandener Mess- und Diagnosetools. Aktuell werden im Projekt Ideen zu einer weiteren Verbesserung der Preemptivität implementiert und getestet.
In dem Maße, in dem es gelingt, den Linux Kernel preemptiver zu machen, erscheint es auch sinnvoll, die Granularität der Linux-Zeitbasis über die 10 Millisekunden des periodischen Timerinterrupts des Standard Kernels hinaus zu erhöhen. Dies wird ermöglicht durch die ab der Pentium-Architektur eingeführte, hochauflösende Uhr des Prozessors, den Time Stamp Counter (TSC). Hier liegt ein weiterer Schwerpunkt unseres Projektes; ein Projektergebnis ist der auch im Internet downloadbare Kernel Patch 'Rapid Reaction Linux' [3], der die Vorteile beider Projektschwerpunkte kombiniert und sowohl die Preemptivität als auch der Zeitgranularität des Linux Kernels erhöht.
Aktuell wird untersucht, inwieweit neuere, prozessornahe Hardware-Komponenten wie neuere Interrupt Controler (Local APIC) Messmethoden vereinfachen und die Bewältigung zeitkritischer Aufgaben des Betriebssystems unterstützen können. Auch werden aktuell Untersuchungen durchgeführt, um Auswirkungen der Cache-Architekturen moderner Prozessoren auf das Worst-Case Laufzeitverhalten von Programmen zu quantifizieren und mit der Dauer vom Betriebssystem verursachter Latenzen zu vergleichen.