需要解释ps的pri标准格式说明符 - 文档中可能存在的错误

Ank*_*wal 0 linux bash shell ps

关于pri的注释来自ps手册页:

"pri PRI优先处理流程.数字越大意味着优先级越低"

在这里考虑PID 26073

$ renice +15 26073 


26073: old priority 5, new priority 15 # I am making this process more nice 

$ ps -t 1 -o pid,ppid,%cpu,stat,cmd,bsdstart,time,pri

  PID  PPID %CPU  STAT CMD      START     TIME PRI
 9115 18136  0.0   Ss   bash     17:10 00:00:01  19
26073  9115 12.0   RN+  p4 sync  19:06 00:02:56   4
Run Code Online (Sandbox Code Playgroud)

STAT = RN +表示:正在运行,低prio(对其他人好),前景.PRI = 4(1)

$ sudo renice -10 26073 

26073: old priority 15, new priority -10 # I am making this process less nice

 $ ps -t 1 -o pid,ppid,%cpu,stat,cmd,bsdstart,time,pri

  PID  PPID %CPU STAT CMD       START     TIME PRI
 9115 18136  0.0  Ss   bash     17:10 00:00:01  19
26073  9115 12.0  S<+  p4 sync  19:06 00:03:15  29
Run Code Online (Sandbox Code Playgroud)

STAT = S <+表示:可中断睡眠,高prio(对其他人不好),前景.PRI = 29(2)

在案例2中,流程优先级增加或以另一种方式说明流程变得更高优先级.

但这与pri在man page中的定义相矛盾(更高的数字意味着更低的优先级)

gee*_*aur 6

你被PRI(直接优先)与NICE(指定的优先级)混淆了. PRI在I/O阻塞后重新启动进程时,通常会获得提升(即较低的值);如果它在没有阻塞的情况下耗尽其调度程序分配的时隙,则相反地降低(更高的值),至少使用标准调度程序.许多系统具有不同行为的备用调度程序,但在所有情况下PRI都是调度程序分配的实际当前优先级; 该值受指定的"niceness"影响,但不是由其指定.

有关Linux优先级管理的参考,请访问:http: //oreilly.com/catalog/linuxkernel/chapter/ch10.html