Ist es möglich, Jitter von einem Linux-Rechner zu entfernen, wenn ein einfaches single-threaded C ++ - Programm ausgeführt wird?

8

Ich mache verschiedene Experimente mit einer Ubuntu-Box, auf der Kernel 3.5.7 läuft. I Aufwärmen mein Benchmark-Code auf 10 Millionen Iterationen und dann mit der Zeit 90 Millionen Iterationen fortfahren. Trotzdem sehe ich folgenden Jitter:

%Vor%

Ich sehe schlechte Zeiten bei 0,01% meiner Iterationen. Ist es möglich, einen Linux-Kernel wirklich in Echtzeit zu machen? Gibt es noch etwas anderes im Kernel, das ich nicht kontrollieren kann?

%Vor%     
LatencyGuy 04.07.2015, 13:21
quelle

1 Antwort

6

Die kurze Antwort ist nein. Sie müssten alles andere, was der Kernel bietet, verwerfen, um zu garantieren, dass Ihr Code 100% Einschaltdauer erreicht.

Wenn Sie ein garantiertes Monopol auf der CPU haben wollen, müssen Sie ein Echtzeit-Betriebssystem verwenden, mit dem Sie alle Interrupts deaktivieren können. So etwas wie FreeRTOS oder VXWorks.

Der Tickless-Kernel ist für Energieeinsparungen im Leerlauf ausgelegt. Es ist nicht entworfen, um Interrupts vollständig zu deaktivieren. Alle IO-Devices fordern ständig Interrupts. Wenn Sie alle E / A-Treiber deaktiviert haben und alle Dienste, die in regelmäßigen Abständen aufwachen könnten, deaktiviert und deaktiviert haben, können Sie sich dem Jitter-freien Betrieb nähern. Aber dann hättest du einen Ziegelstein.

    
Mark Lakata 04.07.2015, 15:56
quelle
yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warningyii\base\ErrorException

PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: /usr/lib64/php/modules/mongodb.so (/usr/lib64/php/modules/mongodb.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/mongodb.so.so (/usr/lib64/php/modules/mongodb.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '384364',
    'url' => 'is-it-possible-to-eliminate-jitter-from-a-linux-machine-when-running-a-simple-si',
];

$_COOKIE = [
    'advanced-frontend' => '649907abdb822c792361df6d55e4b1c4',
    '_csrf-frontend' => 'b13d931a9e7bd7733992b7e5fc4c0e986397489ac53a9b03eb496479a5562f81a:2:{i:0;s:14:"_csrf-frontend";i:1;s:32:"qMQZWZNrbAxaBX2i2ONkAj6juFMiPBn1";}',
];

$_SESSION = [
    '__flash' => [],
];