当前位置:   article > 正文

进程的状态,二状态、五状态、七状态进程模型以及Linux中的各种进程状态_7号进程刚开始恢复运行时处于哪个阶段

7号进程刚开始恢复运行时处于哪个阶段

进程状态模型

二状态模式

该模型将进程所处的状态划分成:运行态、未运行态。
在这里插入图片描述

五状态模型

如果系统中所有的状态都做好了执行准备,那么上面的模型是有效的。但是这样的模型过于简单。设想,如果队列中有一个进程因为等待某个事件就绪,而处于阻塞态……那就巴比Q了

所以为了更加合理、且高效地利用CPU资源,我们应该将进程所处的状态细化。就好比,学校跑步测试,运动员的状态被划分为就绪状态、未就绪状态,跑步状态、考完状态……,如果运动员处于考完状态、那么就不用管他了,如果运动员处于就绪状态,就准备让他先跑……这样就能根据运动员的状态来最高效地利用测试资源。

在这里插入图片描述

接下来我将继续使用跑步测试的例子讲解。

五状态模型把进程所处状态划分为:

  • 运行态
  • 就绪态
  • 阻塞态
  • 新建态
  • 退出态

运行态:
该进程正在执行。好比跑步测试时,运动员正在跑步。

就绪态:
该进程的条件已经准备好,做好了被执行的准备。好比跑步测试,测试时的各种条件都准备好了,运动员也准备好了测试,只等待跑步开始。

阻塞态:
进程在某些事件发生前不能执行。好比跑步测试,你需要带上测试的衣服才能去准备区等待,但是体育老师还没有给你发放,而你没有穿测试的衣服,所以还不能准备跑步。

新建态:
也称初始态,指的是进程才被创建好,但是还没有加载到主存储器里。好比跑步测试,你刚刚才报名的跑步测试,学校还没有为你准备,也没有把你的资料传给负责这跑步测试的人/组织。

退出态:

在这里插入图片描述
【进程模型中的队列】
处于就绪态的进程被放入:运行队列、又可以称为就绪队列。
处于阻塞态的进程被放入:阻塞队列,又可以称为等待队列。

七状态进制模型

利用五状态模型已经能很好地利用CPU的资源了,但是还可以更进一步地优化。

模型中的处于其中四个状态的进程都被加载到内存里面了,设想:系统中此时如果同时存在大量的进程,然而内存(主存)存储空间是有限的,远远没有外存的存储空间大。就极大可能存在,一些在等待某些事件发生的进程一直占据着内存空间,导致很多处在外存的进程不能加载到内存里,因为已经没有容纳这些进程的存储空间。

以上的解决办法有两种:

推荐阅读
相关标签