1.进程三大基本状态
1.1 进程三种基本状态
- 就绪态
当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。 - 运行态
当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为运行状态。 - 阻塞态
正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信号等。
1.2 进程三种状态间的转换
- 就绪 → 运行
处于就绪状态的进程,当进程调度程序为之分配了处理机资源后,该进程便由就绪状态转变成执行状态。 - 运行 → 就绪
处于执行状态的进程在其运行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从运行状态转变成就绪状态。 - 运行 → 阻塞
正在执行的进程因等待某种事件发生(如IO请求)而无法继续执行时,便从运行状态变成阻塞状态。 - 阻塞 → 就绪
处于阻塞状态的进程,若其等待的事件已经完成(如IO结束),于是进程由阻塞状态转变为就绪状态。
2.Linux进程状态(ps aux)
- R:可执行状态。
- S:可中断的睡眠状态。
- D:不可中断的睡眠状态。
- T:暂停状态。
- Z:僵尸状态,进程成为僵尸进程。
- X:退出状态,进程即将被销毁。
补充:
- s:会话组长
- +:前台进程
- l :多线程程序
- <:比默认的优先级高(数字越小优先级越高。 nice/renice 命令可以调整优先级)
- N:比默认优先级更低
- t:正在被(如调试器)跟踪