Detailseite
Projekt Druckansicht

Latenzgewahrheit in Betriebssystemen für massiv-parallele Prozessoren

Fachliche Zuordnung Sicherheit und Verlässlichkeit, Betriebs-, Kommunikations- und verteilte Systeme
Förderung Förderung von 2011 bis 2022
Projektkennung Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 188499432
 
Erstellungsjahr 2022

Zusammenfassung der Projektergebnisse

Ziel von LAOS (latency awareness in operating systems) war die Erforschung von Techniken zur Minimierung von Prozesslatenzen, die durch Aktionen innerhalb von Betriebssystemen entstehen und so indirekt Prozessverhalten auf Anwendungsebene beeinflussen. Im Vordergrund standen Verfahren zur Koordinierung der Kooperation und Kommunikation von gleichzeitigen und (direkt/indirekt) gekoppelten Betriebssystemprozessen, also deren Synchronisation. Eine wichtige Nebenbetrachtung dabei war, durch ein Betriebssystem keine zusätzliche Funktion zu leisten, wenn diese durch die gegebene Hardware zeitlich besser (d.h., schneller, aber auch berechen- bzw. vorhersagbar) erfüllbar ist. Thema des Projekts war ein Programmier- und Laufzeitsystem für sogenannte ”abgeschirmte Abschnitte“ (guarded sections), einem Synchronisationsparadigma, das zur Latenzverbergung beitragen kann. Abgeschirmte Abschnitte lassen wettstreitige Prozesse beim Eintrittsversuch nicht blockieren. Stattdessen erstellt jeder Prozess, der auf einen solchen Abschnitt trifft, einen Ausführungsauftrag. Diese Aufträge werden nacheinander ausgeführt, und zwar von dem Prozess, der aktuell die Kontrolle über den abgeschirmten Abschnitt besitzt. Ein Prozess erlangt Kontrolle über den Abschnitt, indem er ihn betritt und dadurch aktiviert. Es ist sichergestellt, dass niemals mehr als ein Prozess zugleich in dem Abschnitt sein kann. Prozesse, denen der Eintritt verwehrt wird, umgehen den Abschnitt und damit die Auftragsausführung als Kontrollprozess. Ist der den Abschnitt umgehende Prozess direkt von Berechnungsergebnissen oder Zustandsänderungen abhängig, die innerhalb eines solchen Abschnitts geschehen, fordert er mit dem Auftrag das Versprechen vom Kontrollprozess ein, ein diesbezügliches Ereignis in der Zukunft angezeigt und gegebenenfalls einen damit verbundenen Wert geliefert zu bekommen. In dem Fall vollzieht der Prozess Bedingungssynchronisation: Er wartet (d.h., blockiert) nur, wenn dieses Ereignis noch nicht angezeigt wurde. Einen großen Stellenwert nahmen Arbeiten zur statischen Programmanalyse ein. Diese dienten nicht nur dazu, in bestehendem Quelltext annotierte und abzuschirmende ”kritische Abschnitte“ in Bezug auf der zu erwartenden ungünstigsten Laufzeit (worst-case execution time, WCET) zu erfassen, sondern darüber hinausgehend insbesondere auch systemweite Aussagen zum voraussichtlichen Zeitverhalten eines Maschinenprogramms im Zusammenspiel mit einem Betriebssystem treffen zu können. Zu diesem Zweck wurde eine ausdrucksstarke Quelltextannotationssprache bereitgestellt, die es ermöglicht, Kontextabhängigkeit auf Bibliotheksebene unter Verwendung benutzerdefinierter Abstraktionen auszudrücken. Diese Abstraktionen ermöglichen es, kontextabhängige Daten-/Kontrollflussfakten bis hin zur Granularität einzelner Schleifenkontexte generisch zu kommentieren und compilergestützt bis auf die Befehlssatzebene hinunter zu übertragen.

Projektbezogene Publikationen (Auswahl)

 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung