学习笔记------进程状态及转换

进程状态模型

1.1 两状态进程模型

最简单的模型就是基于一个事实,进程要么正在执行,要么没有执行。这样进程就有两种状态:运行(Running)非运行(Not-running)。如下图,每隔一段时间,正在运行的进程就会中断运行,此时分派程序将选择一个新的进程投入运行。

 

1.2 进程的三态模型

因为非运行状态有多种情况,所以引进两种状态:就绪(Ready)阻塞(Blocked)。三状态模型如下。

  1. 运行状态。进程获得了CPU和其他所需要的资源,目前在CPU上运行(单CPU系统而言,只有一个进程处于运行状态)。
  2. 阻塞状态。进程运行中发生了某种等待事件(如等待I/O操作)而暂时不能运行的状态(并不是缺少CPU资源)。
  3. 就绪状态。进程已经获得了除CPU以外的资源,当前只需等待CPU分配资源即可运行。

进程各个状态变迁需要注意以下5点。

(1)就绪状态→运行状态,是由进程调度程序(分派程序)完成的。也就是说,一旦CPU空闲下来,调度程序就立刻执行根据某种算法在就绪队列中选一个进程运行。

(2)运行状态→阻塞状态,通常是由运行进程自身提出的。当运行进程申请某种资源得不到满足时(发生等待事件),就主动放弃CPU而进入阻塞状态并插入到阻塞队列中。

(3)阻塞状态→就绪状态,总是由外界事件引起的。通常当阻塞状态被阻塞的原因得到解除时(等待事件已完成),由当前正在运行的进程来响应这个外界事件的请求,唤醒相应的阻塞状态进程。

(4)运行状态→就绪状态,通常出现在分时操作系统,即该进程的时间片用完,只能等待下一个时间片,故该进程直接插入就绪队列中。

(5)阻塞状态不能直接变迁到运行状态。由于阻塞进程阻塞原因被解除后,就满足就绪状态的条件,故只能先变迁到就绪状态中。

 

1.3进程的五态模型

1.进程的产生

当需要创建一个新进程时,系统为该进程分配一个进程控制块(PCB),并为该进程分配内存空间,且装入该进程对应的程序和有关数据。

当一个进程生成另一个进程时,生成进程称为父进程,而被生成的进程陈各位子进程。

2.进程的终止

当一个进程执行到自然结束点,或出现不可克服的错误而不得不取消时,或被拥有特权的进程取消时,该进程转换为终止状态。

五态模型如下。

1.4进程的挂起

1.挂起状态的引入

进程挂起(也称换出)是指在内存中的进程被暂时移出保存到外存中(如磁盘)的过程。当某个进程被挂起时,若被挂起的进程处于运行状态则停止执行;若被挂起的处于就绪状态则暂时不参加进程调度。引起进程挂起原因大致有以下三种。

(1)用户的请求。

(2)父进程的请求。

(3)操作系统的原因。

 

2.具有挂起状态的进程状态转换

由于被挂起的进程不能被调度运行,因此通常将挂起状态称为静止状态,而将非挂起状态称为活动状态。根据挂起前进程所处的状态,可以将挂起状态分为:静止就绪状态和静止阻塞状态。下图描述引入挂起状态进程转换关系。

6种关系转换说明。

(1)活动阻塞态挂起→静止阻塞态。主要有两种情况会发生这种挂起状态的变化:①若当前不存在活动就绪进程,则至少有一个活动阻塞进程使其变为静止阻塞进程,以腾出内存空间,从外存调入一个静止就绪进程使其变为活动就绪进程(保证内存中至少有一个活动就绪进程,避免CPU空闲);②操作系统根据当前资源状况和性能要求所导致挂起的变化。

(2)静止阻塞态激活→活动阻塞态。出现情况:①操作系统已经得知导致该进程阻塞的事件即将结束;②内存中已经有了一大块空闲的空间。

(3)静止阻塞态→静止就绪态。当在外存上的静止阻塞进程所需资源得到满足,或者等待事件已经完成时,会引起该状态变化(但进程仍然在外存)。

(4)静止就绪态激活→活动就绪态。出现情况:①外存上的静止就绪进程具有更高的优先级;②内存中已经有了一大块空闲的空间;③当前内存中没有活动就绪进程。

(5)活动就绪态挂起→静止就绪态。由于系统调节负荷(即内存紧张)的需要,或者是系统优化性能的需要,才将某些暂时不需要的运行的进程换出外存。

(6)运行态挂起→静止就绪态。主要是运行进程出现了错误或者异常,或者是对运行进程进行分析的需要。

 

猜你喜欢

转载自www.cnblogs.com/Diligent-Memory/p/10805280.html
今日推荐