为什么最高优先级的线程在 top 和 htop 中显示为 RT?

Man*_*lva 5 linux scheduling top priority htop

tophtop工具中,具有最高实时优先级(从用户态 API 的角度来看为 99)以及调度策略SCHED_RRSCHED_FIFO优先级的进程(或/和线程,取决于显示设置)显示为RT

对于所有其他实时进程,优先级显示为由以下定义的数字 p:

p = -userprio -1 
Run Code Online (Sandbox Code Playgroud)

我很奇怪,为什么tophtop不显示-100的higest优先级实时进程?

Jan*_*Jan 7

我想知道为什么 top 和 htop 不为最高优先级的实时进程显示 -100 ?

那是因为SCHED_RR并且SCHED_FIFO在 1-99 范围内具有固定的静态优先级: RedHat MRG docs on rt

对于实时优先级,顺序是相反的:99 确实是最高的,这与通常的“越低越好”相反。

根据您的评论,我误解了您的问题,抱歉。

顶部只有一列,因此无法将 RT 优先级与其他列区分开来。为了解决这个问题,“rt”用于指示这些进程使用实时调度程序类。

您可以使用 看到不同之处ps ax --format uname,pid,ppid,tty,cmd,cls,pri,rtprio,它将为您提供 2 列,一列用于 prio,另一列用于 rtprio。

旁注:上述命令还将向您显示进程使用的调度程序类(cls字段)。