![在我的 ps 输出中的这两个实时进程中,哪个实时进程会被 linux 抢占?](https://linux22.com/image/11642/%E5%9C%A8%E6%88%91%E7%9A%84%20ps%20%E8%BE%93%E5%87%BA%E4%B8%AD%E7%9A%84%E8%BF%99%E4%B8%A4%E4%B8%AA%E5%AE%9E%E6%97%B6%E8%BF%9B%E7%A8%8B%E4%B8%AD%EF%BC%8C%E5%93%AA%E4%B8%AA%E5%AE%9E%E6%97%B6%E8%BF%9B%E7%A8%8B%E4%BC%9A%E8%A2%AB%20linux%20%E6%8A%A2%E5%8D%A0%EF%BC%9F.png)
我从以下地方得到了一些想法:https://stackoverflow.com/questions/8887531/which-real-time-priority-is-the-highest-priority-in-linux 关于分配给内核中不同标识符的实时优先级值如何意味着不同(相反)的事情。
但我仍然不清楚 ps 输出的 RTPRIO 列中值的解释。数值越高,优先级越高,还是相反。
具体来说,给出下面的 ps 输出:是否立方体/0(RTPRIO=1)优先级高于(即可以抢占)迁移/0(RTPRIO=99) 还是相反。
答案1
根据程序人:
优先级是在内核模式下调度进程等待子进程的时间量,以时钟周期为单位进行测量。范围为 19(低优先级)到 -20(高优先级)的值。进程可以在实时或非实时优先级下运行。
- 对于运行实时调度策略的进程(即调度程序是决定 CPU 接下来将执行哪个可运行进程的内核组件。每个进程都有一个关联的调度策略和一个静态调度优先级 sched_priority;这些是被修改
sched_setscheduler()
。调度程序根据系统上所有进程的调度策略和静态优先级的知识做出决策。),这是否定的调度优先级,减一;即 -2 到 -100 范围内的数字,对应实时优先级 1 到 99。 - 对于在非实时调度策略下运行的进程,这是原始的好值(即进程、进程组或用户的调度优先级,由 getpriority() 调用和设置获得的哪个和谁指示与 setpriority() 调用。)如内核中所示。内核存储nice值(即表
NI
中的列ps
作为0(高)到39(低)范围内的数字,对应于用户可见的nice范围-20到19。