进程的三状态及转换
第一部分:
1.进程的三种基本状态
进程在运行中不断地改变其运行状态。通常,一个运行进程必须具有以下三种基本状态。
(1)就绪(Ready)状态
当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。
(2)执行(Running)状态当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。
(3)阻塞(Blocked)状态正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信件(信号)等。
2.进程三种状态间的转换
进程状态变迁图
一个进程在运行期间,不断地从一种状态转换到另一种状态,它可以多次处于就绪状态和执行状态,也可以多次处于阻塞状态。图3_4描述了进程的三种基本状态及其转换。
(1) 就绪→执行处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。
(2) 执行→就绪处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。
(3) 执行→阻塞正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。
(4) 阻塞→就绪处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。
第二部分:
1.进程的基本状态
(1)执行状态(Running):进程占用处理机,进程的程序正在执行。单处理机系统中只能有一个进程处于执行状态,多处理机系统中可能有多个进程处于执行状态。
(2)阻塞状态(Blocked):也叫等待或睡眠状态,是进程由于等待某种事件的发生而处于暂停执行的状态。如进程因等待I/O的完成、等待缓冲空间等。
(3)就绪状态(Ready):进程已分配到处理机以外的所有必要资源,具备了执行的所有条件。可能会有多个进程处于就绪状态,排成就绪队列。
2.新状态和终止状态
(1) 新状态:进程刚刚建立,还没有送入就绪队列的状态。
(2) 终止状态:一个进程已正常结束或非正常结束,OS已将它从就绪队列中移出,还未将它撤销时的状态。
3. 进程状态的转换
进程在执行期间可以多次处于就绪状态和执行状态,也可多次处于阻塞状态,但处于新状态只有一次。
(1)新状态->就绪状态:当就绪队列允许接纳新进程时,系统便把处于新状态的进程移入就绪队列。
(2)就绪态->执行状态:进程调度程序为处于就绪状态的进程分配处理机后,该进程进入执行状态。
(3)执行态->阻塞状态:正在执行的进程因需要等待某事件而无法执行。
(4)阻塞状态->就绪态:进程所等待的事件发生了,进程就从阻塞状态进入就绪状态。
(5)执行态->就绪状态:正在执行的进程因时间片用完而被暂停执行;或者在可抢占调度方式中,一个优先权高的进程到来后,正在执行的低优先权的进程被强制撤下处理机,转换为就绪状态。
(6)执行态->终止状态:一个进程已完成或发生某种特殊事件,进程将变为终止状态。