首页 > 代码库 > 进程的状态和切换(学习笔记)

进程的状态和切换(学习笔记)

时间:2014.05.28

地点:基地

-------------------------------------------------------------------------------

一、进程的三种基本状态

进程的三种基本状态包括:就绪状态,执行状态,阻塞状态

1.就绪状态

  当进程分配得到除CPU之外的所有必要资源后,只要再获得CPU就可以立即执行了,万事俱备只欠东风而已。该状态即就绪状态,一个系统中处于就绪状态的进程可能有很多,将他们排成一个队列,形成一个就绪队列。

2.执行状态

  正如上面所说,进程一旦获得CPU就可以执行,正在执行的进程处于就绪状态。单处理机只有一个进程处于执行状态,多处理机则可以有多个。

3.阻塞状态

  某个正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机处于暂停状态,即进程的执行受阻塞,该状态为阻塞状态,等待状态或封锁状态都可以。导致这样的迫使进程由执行状态转为阻塞状态的事件通常有:I/O请求、申请缓冲空间等。处于阻塞状态的进程可能也有好多,将它们也排成一个队列,或者根据阻塞原因的不同还可排成多个队列。

-------------------------------------------------------------------------------

二、进程三种基本状态的之间的切换

 2.1就绪-执行

处于就绪状态的进程,当进程调度程序按一种选定的策略选中一个就绪状态的进程,为它分配处理机后进程便可执行,状态转为执行状态。    【就绪状态——(进程调度)——执行状态】。

2.2执行-就绪

正在执行的当前进程,如果因为分配给它的时间片已用完而被暂停执行,则该进程由执行状态又切换回就绪状态。  【执行状态——(时间片用完)——就绪状态】

 2.3执行-阻塞

正杂执行的当前进程,如果因为某等待事件(I/O请求等待外部设备的信息传输,申请缓冲,访问临界资源等从而进行资源等待)发生而迫使进程执行受阻而无法继续执行,则转为阻塞状态。  【执行状态——(等待事件发生)——阻塞状态】

2.4阻塞-就绪

  处于阻塞状态的进程,再等待的事件已完成,比如输入输出完成、资源得到满足,处于阻塞状态的进程并不马上转入执行状态,而是切换到就绪状态,等待系统调度程序在合适的时候对进程进行调度再转换为执行状态。     【阻塞状态——(等待事件完成)——就绪状态】

-------------------------------------------------------------------------------

三、挂起状态

 挂起状态相当是一个修饰符,可将就绪状态分为活动就绪状态和静止就绪状态,还可将阻塞状态分为活动阻塞和静止阻塞。

3.1引入挂起状态的原因

1.终端用户的请求。

当终端用户在程序运行期间发现可疑问题时,希望暂时使自己的程序静下来,使正在执行的进程暂停执行。此时若进程处于就绪状态而未执行则程序暂时不接受调度,以便用户考查执行情况对程序进行修改。

2.父进程的请求  

有时父进程也希望挂起某个子进程,希望子进程静下来,以便考查和修改子进程或者协调各子进程的活动

3.负荷调节的需要

当实时系统中的工作负荷较重,可能影响到实时任务的控制时,也可

4.操作系统的需要

-------------------------------------------------------------------------------

四、创建状态和终止状态

4.1创建状态

创建进程的两个步骤:

1.为一个新进程创建PCB,并填写必要的管理信息(比如进程标识等)

2.把进程转入就绪状态并插入就绪队列之中

  处于创建状态的进程由于所必须的资源或其他信息比如主存资源还未被分配等,此时进程只是有了自己的PCB,但进程本身还没有进入主存,所以进程还不能被调用运行,这个阶段进程所处的状态即创建状态。创建状态的进程,获得了其所必须的资源以及PCB初始化工作完成后,便可转入就绪状态。其中当当前系统的性能和内存的容量均允许的情况下,创建状态的进程将转换为活动就绪状态,若是当前系统资源紧张性能不足,无法给创建状态的进程分配所需的资源,此时进程转为静止就绪状态。

4.2终止状态

进程终止的两个步骤:

1.等待操作系统进行善后处理

2.将PCB清零,并将PCB返回给操作系统

进程终止的条件:a.进程达到了自然结束点 b.进程运行出现了无法克制的错误 c.进程被操作系统终结 d.进程被其他有终止权的进程终结

进程进入终止状态后停止执行,这样我们知道只有正在执行的进程才会转为终止状态,【执行——(释放)——终止】,转入终止状态的进程,操作系统依然保留了一个记录,其中保存有状态码和一些计时统计数据,供其它进程收集,当其它进程完成了对终止状态进程的这些信息提取之后,操作系统便删除该进程。