Project Details
Projekt Print View

Latency awareness in operating systems for massively parallel processors

Subject Area Security and Dependability, Operating-, Communication- and Distributed Systems
Term from 2011 to 2022
Project identifier Deutsche Forschungsgemeinschaft (DFG) - Project number 188499432
 
Final Report Year 2022

Final Report Abstract

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.

Publications

 
 

Additional Information

Textvergrößerung und Kontrastanpassung