Zum Hauptinhalt Zur Navigation

Kernel: Google will User-Threads für Linux

Typischerweise werden Threads vom Kernel verwaltet. Google will nun aber seine Arbeit an User-Level-Threads für Linux offenlegen.
/ Sebastian Grüner
32 Kommentare News folgen (öffnet im neuen Fenster)
Linux könnte Support für User-Threads von Google bekommen. (Bild: Matt Deegan, flickr.com)
Linux könnte Support für User-Threads von Google bekommen. Bild: Matt Deegan, flickr.com / CC-BY 2.0

Rund sieben Jahre nach der ersten öffentlichen Vorstellung plant Google, seine Implementierung von User-Level-Threads unter Linux als Open-Source-Software zur Verfügung zu stellen. Das geht aus Patches hervor, die der Entwickler Peter Oskolkov auf der Kernel-Mailing-Liste veröffentlicht hat(öffnet im neuen Fenster) . Die nun veröffentlichen Patches zur Änderung der Linux-Kernel-API seien dabei nur der erste Schritt der geplanten Offenlegung, schreibt Oskolkov.

Üblicherweise übernehmen die Betriebssystemkernel die Verwaltung von Threads eines Programms. Mit den User-Level-Threads(öffnet im neuen Fenster) wird dies jedoch an die Anwendung im Userspace selbst übertragen. Die bisher interne Implementierung von Google setzt dabei auf ein hybrides System mit beliebig vielen User-Threads, die in einem einzelnen Kernel-Kontext verarbeitet werden (N:1). Zusätzlich skaliert das System von Google aber auch auf mehrere Kernel-Kontexte (M:N).

Laut der Einführung in den Patches nutzt Google dieses Subsystem für "latenzempfindliche Dienste" im Userspace mit einer sehr fein abgestimmten Kontrolle und Scheduling dafür, "was wann ausgeführt wird" . Der E-Mail zufolge ist das Subsystem bei Google-internen Projekten sehr weit verbreitet. Details dazu nennt Oskolkov jedoch nicht.

User-Level-Threads von Google
User-Level-Threads von Google (33:59)

Die nun veröffentlichten Patches basieren auf der Futex-Architektur (Fast Userspace Mutex) des Linux-Kernels und erweitern dessen Basis-Funktionen Wait und Wake um eine Swap-Funktion. Damit soll vor allem der typische Ablauf von Aufwachen und Warten eines Threads auf das Ergebnis eines zweiten Threads auf eben diesen einen Swap-Aufruf reduziert werden. Der neue Aufruf soll den gesamten Ablauf der Operationen außerdem um das Fünf- bis Zehnfache beschleunigen. Weitere Details zu dem System von Google liefert die Präsentation ( PDF(öffnet im neuen Fenster) ) aus dem Jahr 2013.


Relevante Themen