更新:我的理解是正确的,手册页ps
已更新为 PRI 列的以下内容:“进程的优先级。数字越大,优先级越高。”
我一直在尝试了解 Linux 中的调度优先级是如何工作的。\n这是我得到的:
\nnice
接口,该接口是暴露给用户并且可以由用户修改的优先级。值nice
范围从-20到19,映射到优先级100到139。与优先级值一样,值越低nice
,进程的优先级越高。我现在的问题是:PRI 栏表示什么ps
?
的手册页ps
说:
\n\nRun Code Online (Sandbox Code Playgroud)\npri PRI priority of the process. Higher number means \n lower priority.\n
但该值的范围是 0 到 39,我根据经验确定它等于19 - nice
。
鉴于这种关系,不可能使列nice
中显示的优先级都PRI
满足“数字越大优先级越低”。
我缺少什么?
\n显示此行为的示例:
\nroot@kali:~# ps -ao pid,comm,pri,nice\n PID COMMAND PRI NI\n 6153 cat 19 0\n (\xc2\xb7\xc2\xb7\xc2\xb7)\nroot@kali:~# renice -n -10 -p 6153\n6153 (process ID) old priority 0, new priority -10\nroot@kali:~# ps -ao pid,comm,pri,nice\n PID COMMAND PRI NI\n 6153 cat 29 -10\n (\xc2\xb7\xc2\xb7\xc2\xb7)\n
Run Code Online (Sandbox Code Playgroud)\n
小智 6
from是,第PRI
18场是哪里。ps -o pri
39 - priority
priority
/proc/PID/stat
如果您想要未损坏的字段proc/PID/stat
,您可以使用 获得它ps -o priority
。
如果您想要真正的优先级,您可以通过 获得它ps -o pri_baz
。
该值的其他有趣的修改可以通过ps -o pri_foo
,ps -o pri_bar
和获得ps -o opri
。
我没有骗你。你可以在这里查看源码。
注意/proc/PID/stat
:
中的优先级字段(第 18 位)/proc/PID/stat
由内核设置fs/proc/array.c
为task_struct->prio - 100
(通过task_prio()
;MAX_RT_PRIO
定义为100
)。
归档时间: |
|
查看次数: |
4438 次 |
最近记录: |