- 不同操作系统的相同术语有时候并不是一样的,而不同术语有时候又指代的是同一东西。
比如很多操作系统教科书将正在 CPU 上执行的进程定义为 RUNNING 状态、而将可执行但是尚未被调度执行的进程定义为 READY 状态,这两种状态在 linux 下统一被称为 TASK_RUNNING 状态。
比如 CSAPP 一书中将进程的状态划分为三态:
- 运行(Running)——要么处于CPU执行中,要么处于等待被执行且最终会被内核调度。
- 停止(Stopped)——进程被挂起(suspend),且不会被调度。当收到SIGSTOP、SIGTSTP、SIGTTIN或者SIGTTOU信号时,进程停止,直到收到SIGCONT信号,进程再次开始运行。
- 终止(Terminated)——进程永远停止了。
而其它操作系统教科书一般将进程的状态划分为五态:运行状态、就绪状态、阻塞状态、创建状态和结束状态。