操作系统-进程控制
进程控制
什么是进程控制?
进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。
简化理解:进程控制就是要实现进程状态的转换。
如何实现进程控制?
图片来自王道考研B站视频截图
用原语实现进程控制。原语的特点是执行期间不允许中断,只能一气呵成。这种不可中断的操作即原子操作。
原语采用“关中断”指令和“开中断指令”实现。
关中断指令执行后,外部中断信号将被忽略,直到开中断执行。
显然,开/关中断指令的权限非常大,必然是只允许在核心态下执行的特权指令
进程控制相关的原语
进程控制会导致进程状态的转换。无论哪个原语,要做的无非三类事情:
-
更新PCB中的信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)
a. 所有的进程原语一定都会修改进程状态标志
b. 剥夺当前运行进程的CPU使用权必然需要保存其运行环境
c. 某进程开始运行前必然要恢复其运行环境。
-
将PCB插入合适的队列
-
分配/回收资源
-
创建原语
无=>创建态=>就绪态
-
撤销原语
就绪态/阻塞态/运行态=>终止态=>无
-
阻塞原语
运行态=>阻塞态
-
唤醒原语
阻塞态=>就绪态
注意:
- 阻塞原语和唤醒原语必须成对使用
- 因何事阻塞就应有何事唤醒
-
切换原语
运行态=>阻塞态/就绪态
就绪态=>运行态