下图为linux进程的状态和转移:
我们分别描述常见的进程的状态的含义:
可运行状态 (TASK RUNNING)
- 进程要么在 CPU 上执行,要么处于就绪(准备执行).
可中断的等待状态 (TASK INTERRUPTIBLE)
- 进程被挂起(睡眠),直到某个条件变为真。产生一个硬件中断,释放进程正等待的系统资源,或传递一个信号都是可以唤醒进程的条件
(把进程的状态放回到TASK RUNNING)
不可中断的等待状态(TASK UNINTERRUPTIBLE)
- 与可中断的等待状态类似,但有一个例外,把信号传递到睡眠进程不能改变它的状态。这种状态很少用到,但在一些特定的情况下(进程必须等待,直到一个不能被中断的事件发生),这种状态是很有用的。例如,当进程打开一个设备文件,其相应的设备驱动程序开始探测相应的硬件设备时会用到这种状态。探测完成以前,设备驱动程序不能被中断,否则,硬件设备会处于不可预知的状态
暂停状态 (TASK STO