操作系统之进程控制 (七) --- 进程控制、状态转换、原语、开关中断...

进程控制


什么叫进程控制

进程控制的主要功能是对系统中所有的进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。
简化理解:进程控制就是实现进程状态的转换,比如"创建态 --> 就绪态"、“就绪态 --> 运行态”。
在这里插入图片描述

进程控制总览

在这里插入图片描述上图中,队列中的PCB个数为蓝色块的个数,例如:上图表示就绪队列有两个PCB。

如何实现进程控制

什么是原语

原语也是一种程序,但是原语有个特点:执行期间不允许中断,只能一气呵成。(这种不可被中断的操作即是原子操作)
原语采用"关中断"指令和"开中断"指令实现,下面来看看他们是如何结合起来的。
在这里插入图片描述显然,"关/开中断"指令的权限非常大,必然是CPU在核心态下才能执行的特权指令。 (假如应用程序能使用"关/开中断"指令,那意味着它可以一直占用CPU,显然这是不被允许的)

进程控制为什么要用到原语

为了说明进程控制为什么要用到原语,我们先说说不用原语的后果。
举个例子:
你去银行取100万,钱从ATM机吐出来了,这时别人叫你去吃饭,你是钱拿后再去吃饭,还是马上去吃饭,钱都不拿么?显然你是钱拿后再去吃饭。在这里,别人叫你去吃饭就是一个外中断信号,但是此时你不能去吃饭 (处理),因为你钱还没拿 (事情还没做好)。
所以,假如在进行进程控制的时候,CPU收到了外中断信号而导致其退出进程控制程序(进入中断处理程序),这会导致进程控制程序执行的不完整,这个后果很严重,极易引起系统奔溃。(想一想100万没了,你是不是也极其奔溃)

所以,CPU必须使用原语进行进程控制。

进程控制相关的原语

学习技巧:进程控制会导致进程状态的转换。无论哪个原语,要做的无非三类事情。

  1. 更新PCB中的信息 (如 修改进程状态标识、将运行环境保存到PCB、从PCB恢复运行环境)
    • 所有的进程控制原语一定会修改进程状态标志
    • 剥夺当前运行进程的CPU使用权必然需要保存其运行环境 (玩游戏的存档)
    • 某进程开始运行钱必然要恢复运行环境 (玩游戏的读档)
  2. 将PCB插入合适的队列
  3. 分配/回收资源

下面开始介绍。

进程的创建 ( 无 --> 创建态 --> 就绪态 )

在这里插入图片描述

进程的终止 ( 就绪态/阻塞态/运行态 --> 终止态 --> 无 )

在这里插入图片描述

进程的阻塞和唤醒 ( 运行态 <–> 阻塞态 )

在这里插入图片描述

进程的切换

在这里插入图片描述进程的切换实现了被切换进程状态从"运行态 --> 阻塞态/就绪态"的转换,以及被调度进程状态从"就绪态 --> 运行态"的转换。

总结

在这里插入图片描述

感谢

以上内容大部分来自于王道操作系统系列视频教学。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值