
Handelt es sich also um den O(1)-Scheduler, den CFS-Scheduler oder einen älteren?
Antwort1
Sie können anrufen, sched_getscheduler(process_pid)
um die Planungsrichtlinie für einen Prozess festzulegen.
Wenn /sys/kernel/uids
ja, haben Sie CFS. Oder Sie könnten versuchen
[[ -n $(awk '$3 == "load_balance_fair" {print;}' < /proc/kallsyms) ]] &&
echo CFS
Ich bin mir nicht sicher, wie Sie den O(1)-Scheduler von anderen veralteten Schedulern unterscheiden können. Sie könnten vermutlich die Kernel-Version verwenden, aber da Distributionen Patches auf ihre ausgelieferten Kernel anwenden, ist dies unzuverlässig.
Antwort2
Der Scheduler eines Prozesses kann vom Programmierer mit der Funktion man sched_setscheduler definiert werden.
Um den von einem Prozess verwendeten Scheduler anzuzeigen, können Sie den Befehl top verwenden.
zum Ändern des Schedulers eines Prozessdiagramms