进程的状态及转换

##进程的基本状态

  1. 执行状态(Running):进程占用处理机,进程的程序正在执行。单处理机系统中只能有一个进程处于执行状态,多处理机系统中可能有多个进程处于执行状态。
  2. 阻塞状态(Blocked):也叫等待或睡眠状态,是进程由于等待某种事件的发生而处于暂停执行的状态。如进程因等待I/O的完成、等待缓冲空间等。
  3. 就绪状态(Ready):进程已分配到处理机以外的所有必要资源,具备了执行的所有条件。可能会有多个进程处于就绪状态,排成就绪队列。

##新状态和终止状态

  1. 新状态:进程刚刚建立,还没有送入就绪队列的状态。

  2. 终止状态:一个进程已正常结束或非正常结束,OS已将它从就绪队列中移出,还未将它撤销时的状态。

##进程状态的转换

进程在执行期间可以多次处于就绪状态和执行状态,也可多次处于阻塞状态,但处于新状态只有一次。

  1. 新状态->就绪状态:当就绪队列允许接纳新进程时,系统便把处于新状态的进程移入就绪队列。

  2. 就绪态->执行状态:进程调度程序为处于就绪状态的进程分配处理机后,该进程进入执行状态。

  3. 执行态->阻塞状态:正在执行的进程因需要等待某事件而无法执行。

  4. 阻塞状态->就绪态:进程所等待的事件发生了,进程就从阻塞状态进入就绪状态。

  5. 执行态->就绪状态:正在执行的进程因时间片用完而被暂停执行;或者在可抢占调度方式中,一个优先权高的进程到来后,正在执行的低优先权的进程被强制撤下处理机,转换为就绪状态。

  6. 执行态->终止状态:一个进程已完成或发生某种特殊事件,进程将变为终止状态。