
即,它是 O(1) 調度程序、CFS 調度程序還是更舊的調度程序?
答案1
您可以呼叫sched_getscheduler(process_pid)
來決定進程的調度策略。
如果/sys/kernel/uids
存在,則您有 CFS。或者你可以嘗試
[[ -n $(awk '$3 == "load_balance_fair" {print;}' < /proc/kallsyms) ]] &&
echo CFS
我不確定如何區分 O(1) 調度程序和其他過時的調度程序。您可以使用我認為的內核版本,但由於發行版對其發布的內核應用了補丁,因此這將是不可靠的。
答案2
程式設計師可以使用此函數 man sched_setscheduler 來定義進程的調度程序
若要查看進程使用的調度程序,您可以使用 top 指令
用於更改進程 chrt 的調度程序