Das Wissensportal für IT-Professionals. Entdecke die Tiefe und Breite unseres IT-Contents in exklusiven Themenchannels und Magazinmarken.

SIGS DATACOM GmbH

Lindlaustraße 2c, 53842 Troisdorf

Tel: +49 (0)2241/2341-100

kundenservice@sigs-datacom.de

IO_Uring im Linux-Kernel und in Java

Wie wir in dieser Kolumne schon oft diskutiert haben, sind blockierende Operationen auf Systemen mit limitierter Anzahl von Ausführungseinheiten (CPUs, Threads) eine Krux. Für Ein-/Ausgabe betrifft das zwar im Endeffekt unsere Programme, hat aber die Ursache in der Kernarchitektur des Betriebssystems. Für Linux wird mit „io_uring” seit einiger Zeit an einer Lösung für asynchrone IO gearbeitet, die es ermöglicht, viele dieser Operationen auszuführen, ohne den Aufrufer zu blockieren.

In diese Kolumne wollen wir uns das ganze Mal etwas im Detail anschauen und herausfinden, ob, wann und wie das für die Java-Entwicklung relevant wird.

Asynchrone IO

Blockierendes Verhalten ist sowohl gewollt, wie zum Beispiel Synchronisierung, als auch der Physik geschuldet, zum Beispiel durch die Latenz von Netzwerk, Speichermedien, Datenbanken. In Systemen mit begrenzter Parallelität wird das zum Problem, weil die endliche Zahl von (wirklich) ausführenden Einheiten irgendwann komplett blockie…