Linux进程在运行中不断改变其运行状态,而运行的进程有三个基本状态。
1、就绪状态:当进程已分配到除CPU以外所有必要的资源,只要获得处理器便可立即执行。
2、执行状态:当进程已获得处理器,其程序正在处理器上执行。
3、阻塞状态:正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态,而引起进程阻塞的事件可能有很多种,如等待I/O完成,申请缓冲区不能满足、等待信号等。
而一个进程在运行期间,会不断地从一个状态转换到另一个状态。于是便有了进程的三种基本状态间的相互转换,如下示意图:
1)就绪->执行:处于就绪状态的进程,当进程调度程序为之分配了处理器后,该进程便由就绪状态转变为执行状态。
2)执行->就绪:处于执行状态的进程在其执行进程中,因分配给它的一个时间片已用完而不得不让处理器,于是进程从执行状态转换成就绪状态。
3)执行->阻塞:正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。
4)阻塞->就绪:处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。