即,它是 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 的调度程序