系统架构设计师学习历程--进程的状态(三)

操作系统–1.2 处理器管理–1.2.1 进程的状态(二)

这个系列的内容主要是参考《系统架构设计师考试全程指导(第2版)》,若有侵权,请联系删除!

正文来了,上干货!

首先,我们来看看这个思维导图,图文结合一起学习,效率会更高。
操作系统-1.2 处理器管理

思维导图会在我的学习过程中不断的完善,附上永久链接,点这里

1.2 处理器管理

在单用户多任务的操作系统中,或者多用户多任务的操作系统中,系统同时运行多个程序,这些程序的并行运行势必形成对系统资源的竞争使用。因此,操作系统必须能够处理和管理这种并行运行的程序,使之对资源的使用按照良性的顺序进行。

1.2.1 进程的状态

进程是一个程序关于某个数据集的一次运行。进程是程序的一次运行活动,是一个动态的概念,而程序是静态的概念,是指令的集合。

进程具有动态性并发性,程序是进程运行所应对的运行代码,一个进程对应于一个程序,一个程序可以同时对应于多个进程。在操作系统中进程是进行系统资源分配、调度和管理的最小单位线程是处理器分配资源的最小单位,别混淆了)。

从静态的观点看,进程由程序、数据和进程控制块(Process Control Block,PCB)组成。
从动态的观点看,进程是计算机状态的一个有序集合。

PCB是进程存在的唯一标志,PCB描述了进程的基本情况。其中的内容可分为调度信息执行信息两大部分。

调度信息供进程调度使用,包括进程当前的一些基本属性;
执行信息即现场,刻画了进程的执行情况;

PCB随着进程的建立而产生,随着进程的完成而撤销。

一个进程从创建而产生至撤销而消亡的整个生命周期,可以用一组状态加以刻画,为了便于管理进程,把进程划分为几种状态,分别有三态模型五态模型

①、三态模型

按照进程在执行过程中的不同状况,至少可以定义三种不同的进程状态:

  1. 运行态:占有处理器正在运行;
  2. 就绪态:具备运行条件,等待系统分配处理器以便运行;
  3. 等待态:不具备运行条件,正在等待某个事件的完成;

一个进程在创建后将处于就绪状态。每个进程在执行过程中,任一时刻当且仅当处于上述三种状态之一。同时,在一个进程执行过程中,它的状态将会发生改变。

如图所示为进程的状态转换。

图:进程三态模型及其状态转换
运行状态的进程将由于出现等待事件而进入等待状态,当等待时间结束之后等待状态的进程将进入就绪状态,而处理器的调度策略又会引起运行状态和就绪状态之间的切换。引起进程状态转换的具体原因如下:

  1. 运行态–>等待态:等待使用资源,如:等待外设传输、等待人工干预;
  2. 等待态–>就绪态:资源得到满足,如:外设传输结束、人工干预完成;
  3. 运行态–>就绪态:运行时间片到,出现有更高优先权进程;
  4. 就绪态–>运行态:CPU空闲时选择一个就绪进程;
②、五态模型

在三态模型中,总是假设所有的进程都在内存中。事实上,可能出现这样一些情况,例如由于进程的不断创建,系统的资源已经不能满足进程运行的要求,这个时候就必须把某些进程挂起,对换到磁盘镜像区中,使之暂时不参与进程调度,起到平滑系统操作负荷的目的。引起进程挂起的原因主要有:

  1. 系统中的进程均处于等待状态,处理器空闲,此时需要把一些阻塞进程对换出去,以腾出足够的内存装入就绪进程运行;
  2. 进程竞争资源,导致系统资源不足,负荷过重,此时需要挂起部分进程以调整系统负荷,保证系统的实时性或让系统正常运行;
  3. 把一些定期执行的进程(如:审计程序、监控程序、记账程序)对换出去,以减轻系统负荷;
  4. 用户要求挂起自己的进程,以便根据中间执行情况和中间结果进行某些调试、检查和改正;
  5. 父进程要求挂起自己的后代子进程,以进行某些检查和改正;
  6. 操作系统需要挂起某些进程,检查运行中资源使用情况,以改善系统性能;或当系统出现故障或某些功能受到破坏时,需要挂起某些进程以排除故障;

如图,给出来具有挂起进程功能的系统中的进程状态。
在此类系统中,进程增加了两个新状态:静止就绪态静止阻塞态
为了区别,而把三态模型中的等待态改名为活跃阻塞态就绪态改名为活跃就绪态

静止就绪态表明进程具备运行条件但目前在二级存储器(外存储器、外存、辅存)中,只有当它被对换到内存才能被调度执行。

静止阻塞态则表明进程正在等待某一个事件且在二级存储器中。

图:具有挂起功能系统的进程状态及其转换
引起进程状态转换的具体原因如下:

  1. 活跃阻塞态–>静止阻塞态:如果当前不存在活跃就绪进程,那么至少有一个等待态进程将被对换出去成为静止阻塞态;操作系统根据当前资源状况和性能要求,可以决定把活跃阻塞态进程对换出去成为静止阻塞态;
  2. 静止阻塞态–>静止就绪态:引起进程等待的时间发生之后,相应的静止阻塞态进程将转换为静止就绪态;
  3. 静止就绪态–>活跃就绪态:当内存中没有活跃的就绪进程,或者静止就绪态进程具有比活跃就绪态进程更高的优先级,系统将吧静止就绪态进程转换成活跃就绪态;
  4. 活跃就绪态–>静止就绪态:操作系统根据当前资源状况和性能要求也可以决定把活跃就绪态进程对换出去成为静止就绪态;
  5. 静止阻塞态–>活跃阻塞态:当一个进程等待一个事件时,原则上不需要把它调入内存。但是,当一个进程退出后,内存已经有了一大块自由空间,而某个静止阻塞态进程具有较高的优先级并且操作系统已经得知导致它阻塞的事件即将结束,此时便发生了这一状态变化。

不难看出:一个挂起进程等同于不在内存的进程,因此挂起的进程将不参与进程调度,直到它们被对换进内存

一个挂起的进程具有如下特征:

  1. 该进程不能立即被执行;
  2. 挂起进程可能会等待一个事件,但所有等待的事件都独立于挂起条件的,事件结束并不能导致进程具备执行条件;
  3. 进程进入挂起状态是由于操作系统、父进程或进程本身阻止它的运行;
  4. 结束进程挂起状态的命令只能通过操作系统或父进程发出;
  5. 阻塞态:进入阻塞态通常是因为在等待I/O完成或等待分配到所需资源;

总结:需要了解三态模型和五态模型的进程状态及其转换。

以上,就是进程的状态相关内容,欢迎留言、指正。

码农8年了,混了个不高不低的职位,最近两年接触的项目,对资质这块要求还是比较高的,所以自己也是下个决心,想把这个证考下来,有时候想得太多还不如动起来。如果说觉得这个证没什么用,何不把它考下来再去思考这个问题呢?

分享使人进步!共勉!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值