it-swarm.com.de

Warum einen gewöhnlichen Kernel verwenden, wenn es einen in Echtzeit gibt?

Was sind die Vorteile eines normalen Ubuntu-Kernels im Vergleich zu einem Echtzeit-Kernel? Was sind die Kompromisse des Echtzeit-Kernels?

6
Ivan

Echtzeit-Kernel können eine bestimmte Antwortzeit auf einen Prozess garantieren. Beispielsweise muss der Prozess alle 10 ms die Werte von einem Steuerungssystem lesen. In Echtzeit können Sie sicherstellen, dass kein Wert gelöscht wird.

Wenn Sie kein Fertigungssteuerungssystem betreiben, brauchen Sie es einfach nicht.

Die Gesamtsystemleistung kann besser sein, wenn der Kernel nicht jedem Prozess eine Zeitscheibe in einem Zeitraum garantieren muss. (Bessere E/A-Auslastung, geringerer Overhead beim Prozesswechsel usw. usw.)

Fazit: Echtzeit erhöht nicht den Durchsatz eines Systems.

12
aatdark

Erweitern auf diese Antwort , gibt es einen allgemeinen Kompromiss zwischen Durchsatz und Latenz (oder Reaktionsfähigkeit). Der Durchsatz gibt an, wie viel Arbeit Sie pro Zeiteinheit leisten können. Die Latenz gibt an, wie lange Sie warten, bis Sie mit der neuen Arbeit beginnen können.

Da das Wechseln von einer Aufgabe zu einer anderen einen Mehraufwand bedeutet (Sie müssen den Status der alten Aufgabe neu laden, Caches leeren usw.), wird Durchsatz maximiert, indem die Aufgabe so selten wie möglich gewechselt wird. Andererseits wird Latenz durch schnelles Wechseln zwischen Tasks minimiert, sodass keine einzelne Task lange warten muss, bevor sie erneut ausgeführt werden kann. Daher wird die verbesserte Latenz im Echtzeit-Kernel zu Lasten eines verringerten Spitzendurchsatzes gehen.

Außerhalb des Kompromisses zwischen Durchsatz und Latenz sind noch andere zu berücksichtigen. Der Echtzeit-Kernel ist (noch) nicht mainline, hat also nicht so viele Tests, und der Echtzeit-Kernel verbraucht mehr Strom (weil er den Prozessor aggressiver weckt).

12
RAOF