在 HPUX 上
ps -efl
我在输出中看到字母 S,这意味着“进程状态” 我看到像 S(睡眠)和 W(等待)这样的声音 我知道(希望是正确的)睡眠意味着“等待事件”,但是等待是什么意思?我的疑问是:
S=Sleeping OK
W=?
答案1
从书中HP-UX:惠普认证系统管理员 11i v3作者:阿斯加尔·古里(Asghar Ghori)(转述):
- 这跑步状态表示处理器当前正在由系统CPU执行
- 这睡眠状态表明进程正在等待输入
- 这等待状态该进程已准备好在轮到它时运行
...
换句话说,在只有一个 CPU 核心的系统中,一次只能有一个进程处于运行状态,而所有其他可能处于运行状态的进程都处于等待状态。
由于您需要运行一个进程来获取进程信息,因此在单核系统上您可能只能看到正在ps
R 状态运行命令或类似进程信息工具的进程。只有在具有 2 个或更多 CPU 核心的系统上,您才能看到处于 R 状态的其他进程,同时您的进程正在运行以获取进程信息。
因此,在人类时间尺度上,R 和 W 状态实际上本质上是等效的:从内核接收到进程信息的时间到人类读取屏幕上的显示并理解它的时间之间,W 中的几个进程状态可能已轮到处理器(=处于 R 状态)并返回到 W 状态以等待另一轮。
在某些情况下,所有进程状态都是“正常”。例如,即使是 Z 状态(终止或“僵尸”)也可以,除非进程长时间处于该状态;如果是这样,那么这是一个症状家长进程有一些问题,因此它无法/不会读取其自己的子进程的退出代码。