Echtzeitoption in ulimit

2259
Arapajoe

Beim Aufruf wird ulimit -aFolgendes zurückgegeben:

core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 1895 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 1895 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited 

Was macht die -r(Echtzeit-) Option?

2

1 Antwort auf die Frage

0
MariusMatutiae

TL-DR : Dies ist die höchste (= dringendste) Priorität, die von der Shell erstellte Prozesse vom Scheduler zugewiesen werden können.

Wordy Erklärung

ulimit gibt die Kontrolle über die Ressourcen, die der Shell zur Verfügung stehen : Sie meldet und / oder setzt solche Grenzwerte.

Der -r - Flag meldet die höchste Priorität zugewiesen wird Scheduling auf ein Verfahren von der Schale hervorgebracht. Da Prioritäten von 0 (am dringlichsten) bis 99 (am wenigsten dringlich) laufen, bedeutet dies, dass von der Shell erzeugte Prozesse (die zu den Echtzeitanwendungsklassen gehörenden) die höchsten Planungsprioritäten erreichen können .

Prozesse werden entweder nach ihrem Ressourceneinsatz ( E / A-gebunden oder CPU-gebunden, je nachdem, ob sie meistens E / A- oder CPU-Ressourcen verwenden) oder, was hier relevant ist, nach ihrem Dringlichkeitsgrad klassifiziert (ein nichttechnischer Ausdruck). Es gibt interaktive Prozesse wie die Shell : Da wir Menschen langsam und dumm sind, braucht der PC viel Zeit, um darauf zu warten, dass wir sogar einen Finger rühren. Sobald eine Taste gedrückt wurde, muss diesen Prozessen jedoch hohe Priorität eingeräumt werden, es sei denn, wir glauben, dass das System nicht mehr reagiert hat . Die durchschnittlichen Verzögerungen müssen in der Größenordnung von etwa 50 ms liegen und kleine Abweichungen aufweisen.

Es gibt auch Batch-Prozesse, für die keine Benutzerinteraktion erforderlich ist, die meistens im Hintergrund ablaufen und daher vom Scheduler eine niedrige Priorität erhalten. Ein typisches Beispiel sind wissenschaftliche Berechnungen.

Schließlich gibt es Echtzeitprozesse, die dem Scheduler die strengsten Beschränkungen auferlegen. In diese Kategorie fallen Video- und Audioaufnahmen und -wiedergabe, Datenerfassung von physikalischen Sensoren, Robotersteuerungen. Diesen Prozessen muss höchste Priorität eingeräumt werden, damit sie ihre Aufgaben ausführen können.

Die Tatsache, dass eine solche Priorität, wie von ulimit angegeben, 0 ist, bedeutet nicht, dass dies notwendigerweise 0 : 0 ist, Sie können eine weiche Grenze für kleinere Werte festlegen und die Priorität auf den Wert von erhöhen harte Grenze, die jedoch auch in diesem Fall mit dem im System verfügbaren Maximum zusammenfällt.