文章目录
进程控制的基本概念
进程控制的概念
进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能(简化理解:进程控制就是要实现进程状态转换)
进程控制的实现
进程控制是用原语实现的
原语是一种特殊的程序,它的执行具有原子性,也就是说,这段程序的运行必须一气呵成,不可中断
原语的执行具有原子性,一气呵成,如果不能一气呵成,就有可能导致操作系统中的某些关键数据结构信息不统一的情况,这会影响操作系统进行别的管理工作
【举例】
如果状态转换的过程没有“一气呵成”
PCB2 中 state 变量所表示的状态和 PCB2 所处的队列不统一
原语原子性的实现
原语使用“关中断指令”和“开中断指令”两个特权指令实现原子性
由【1.3 操作系统运行环境】一文中的外中断介绍中提到:每一条指令执行结束时,CPU都会例行检查是否有外中断信号需要处理,如果有,则暂停运行当前这段程序,转而执行相应的中断处理程序,执行完中断处理程序之后再继续运行当前程序
CPU执行了关中断指令之后,就不再例行检查中断信号,直到执行开中断指令之后才会恢复检查
这样,关中断、开中断 之间的这些指令序列的执行就是不可被中断的,这就实现了原子性
进程控制相关的原语
进程的创建(创建原语)
进程的终止(撤销原语)
进程的阻塞和唤醒(阻塞原语 & 唤醒原语)
阻塞和唤醒成对出现
进程的切换(切换原语)
原语小结
无论哪个进程控制原语,要做的无非三类事情:
-
更新PCB中的信息
修改进程状态(state),保存/恢复运行环境
-
将PCB插入合适的队列
-
分配/回收资源
【计算机操作系统】 专栏的文章 均有参考 《王道计算机考研 操作系统》 课程视频