Proc 文件系统

Linux 通过 /proc 虚拟文件系统,向用户空间提供了系统内部状态的信息 /proc/stat: 提供系统的 CPU 和任务统计信息


S — Process Status

The status of the task which can be one of:

D = uninterruptible sleep :不可中断状态睡眠,也称为 Disk Sleep,一般表示进程正在跟硬件交互(如硬件设备的I/O 响应),并且交互过程不允许被其他进程或中断打断。*不可中断状态是对进程和系统硬件的一种保护机制,比如保证磁盘和进程数据的一致性。

R = running or runnable :正在运行或正在等待运行。

S = sleeping:interruptible sleep,可中断睡眠态,表示进程正在等待事件而被系统挂起,当等待事件发生,进程会被唤醒进入R状态。

T = stopped by job control signal / t = stopped by debugger during trace :暂停*向一个进程发送 SIGSTOP 信号,它就会因响应这个信号变成暂停状态(Stopped);再向它发送 SIGCONT 信号,进程又会恢复运行(如果进程是终端里直接启动的,则需要你用 fg 命令,恢复到前台运行)

Z = zombie:僵尸进程,即进程已经运行结束,但是父进程还没有回收进程的资源(比如进程的描述符、PID等)

I = idle:空闲状态,用在D状态的内核线程。*对某些内核线程来说,它们有可能实际上并没有任何负载,用 Idle 正是为了区分这种情况。要注意,D 状态的进程会导致平均负载升高, I 状态的进程却不会。