Die Arten von Planungsrichtlinien und ihre Beschreibungen gehen über den Rahmen dieses Artikels hinaus. (Es kann später hinzugefügt werden)
Verwenden Sie den Befehl chrt. Geben Sie FIFO mit -f an.
$ sudo chrt -f 38 yes > /dev/null &
Richtlinienbestätigung.
$ sudo chrt -p 32407
pid 32407's current scheduling policy: SCHED_OTHER
pid 32407's current scheduling priority: 0
Dann ist es SCHED_OTHER. Warum···
$ sudo chrt -f 1 yes > /dev/null &
Die von chrt -p angezeigte Planungsrichtlinie und die von cls des Befehls ps angezeigte Planungsrichtlinie unterscheiden sich. (FF sollte SCHED_FIFO sein)
$ ps -C yes -o comm,pid,ppid,cls,rtprio,%cpu
COMMAND PID PPID CLS RTPRIO %CPU
yes 27629 27628 FF 1 94.2
$
$ chrt -p 27629
pid 27629's current scheduling policy: SCHED_OTHER
pid 27629's current scheduling priority: 0
Warum···
Die folgenden zwei Prozesse führen dasselbe Programm aus (1) Ein Prozess, bei dem der SCHED_FIFO-Prozess von chrt in SCHED_OTHER geändert wird. (2) SCHED_OTHER-Prozess
Betrachtet man die Ausgabe von top, haben beide ungefähr die gleiche CPU-Auslastung.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
626 ec2-user 20 0 132m 7088 4304 R 49.8 0.7 7:53.42 cpu_bound.py
722 ec2-user 20 0 132m 6980 4196 R 49.8 0.7 3:45.94 cpu_bound.py
Wenn Sie mit dem Befehl ps prüfen, wird die CPU-Auslastung wie unten gezeigt verzerrt.
[ec2-user@ip-172-21-0-185 experiment]$ ps -C cpu_bound.py -o comm,pid,ppid,cls,rtprio,pri,ni,%cpu
COMMAND PID PPID CLS RTPRIO PRI NI %CPU
cpu_bound.py 626 26292 TS - 19 0 69.1
cpu_bound.py 722 26292 TS - 19 0 35.4
Warum··· Darüber hinaus ist es ein Rätsel, dass die Gesamtzahl der% CPU 100 überschreitet.