Reaktor-Pattern

Betriebssystemmechanismen

In POSIX-Systemen liegt ein select(2) oder ein poll(2) zugrunde.

Der Witz ist, daß hier auf mehrere IO-Kanäle gewartet wird, und der Prozess/Thread aufgeweckt wird, sobald von mindestens einem gelesen bzw. geschrieben werden kann. Bevor diesen Mechanismus gab, mußte man mit nicht blokierender IO zyclisch alle Kanäle abfragen. Damit nicht die ganze Rechenzeit verbraucht wird, wenn kein Kanal bereit ist, muß dann gewartet werden. Diese Wartezeit wird auch dann verbracht, wenn ein Kanal bereit ist.

Fairness Aspekt

Wenn man naiv die nacheinander die Menge abarbeitet, dann priorisiert man die Kanäle mit den kleinsten Handles.

Bei der Programmierung muß darauf geachtet werden, daß alle bereiten Kanäle abgeartetet werden. Gegebenenfalls muß man die Kanäle zyklisch abarbeiten

Dies wird vor allem eine Rolle spielen, wenn man mehrere Kanäle mit hoher Eingangsrate hat (beispielsweise bei Multimedia mit mehreren Audio oder Video-Kanälen.


Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber