这篇文章,我们主要来讲一下操作系统中的进程控制功能
目录
1.概述
2.进程控制的定义
3.进程控制的实现
4.进程控制相关的原语
编辑编辑编辑编辑5. 小结
1.概述
首先,我们一起来看一下这篇文章内容的大体框架:
2.进程控制的定义
定义:进程控制的主要功能是对操作系统中的所有进程实施有效的管理,它具备创建新进程、撤销已有的进程、实现进程状态转换等功能。
简化理解:反正进程控制就是要实现进程状态转换
3.进程控制的实现
回忆之前提到的进程组织的问题:
下面,我们将这个模型细化一下:
创建进程:需要初始化PCB、分配系统资源
创建态→就绪态:需要修改PCB内容和相应队列
就绪态→运行态:需要恢复进程运行环境、修改PCB内容和相应队列
运行态→阻塞态:需要保存进程运行环境、修改PCB内容和相应队列
阻塞态→就绪态:需要修改PCB内容和相应队列。如果等待的是资源,则还需为进程分配系统资源
运行态→就绪态(进程切换):需要保存进程运行环境、修改PCB内容和相应队列
运行态→终止态:需要回收进程拥有的资源,撤销PCB
问题:当你进程的状态转换时,PCB中的状态标志位未完成转换,也就是说,进程的实际状态与PCB中的记录不一致,这是很危险的事情,那怎么防止这件事情呢?
答:用原语实现进程控制。
原语的特点是执行期间不允许中断,只能一气呵成。这种不可被中断的操作即原子操作。原语采用“关中断指令”和“开中断指令”实现的。
显然,关/开中断指令的权限非常大,必然是只允许在核心态下执行的特权指令
4.进程控制相关的原语
无论哪个原语,要做的无非就是三件事情:
- 更新PCB中的信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)
- 所有的进程控制原语一定都会修改进程状态标志
- 剥夺当前运行进程的CPU使用权必然需要保存其运行环境
- 某进程开始运行前必然要恢复期运行环境
- 将PCB插入合适的队列
- 分配/回收资源
5. 小结
最后用一张图来小结一下本节的内容: