进程的控制
进程控制的主要功能是对系统中所有进程实施有效地管理,创建新的进程,撤销已有进程,实现进程状态的转换等功能。
简化理解:反正进程就是要实现进程之间的转换
如何实现进程控制
用原语
实现进程控制,原语是一种特殊的程序,它的执行具有原子性
,即执行过程中不允许中断
,只能一气呵成。
思考:
为什么在进程控制(状态转换)的过程中要一气呵成呢?
如果不能“一气呵成”,就有可能导致操作系统中某些关键数据结构不统一的情况,这会影响操作系统进行别的管理。(如:PCB的状态标志和PCB的状态未统一)。
原语
可以用“关中断
指令”和“开中断
指令”这两种特权指令
实现原子性
在正常情况下,CPU每执行完一条指令都会例行检查是否有中断信号需要处理,如果有,则暂停运行当前这段程序,转而执行相应的中断处理程序。但在CPU执行了关中断指令
之后,就不再例行检查中断信号,直到执行开中断指令
之后才会恢复检查。这样开中断指令和关中断指令之间就不可以被中断了,这就体现了原语
的原子性
进程控制相关的原语
进程控制会导致进程状态的转换,无论是哪些原语,要做的无非是三件事情:
1、更新PCB中信息(如修改进程状态标志、将运行环境保存在PCB,从PCB恢复运行状态)
a.所有进程控制原语一定会修改进程控制标志
b.剥夺当前运行进程的CPU使用权,必然需要保存其运行环境
c.某进程开始运行前,必然需要恢复其运行状态
2、将PCB插入合适的队列
3、分配/回收 资源
进程的创建
创建态->就绪态
进程的终止
就绪态/阻塞态/运行态->终止态->无
进程的阻塞和唤醒
运行态->阻塞态
阻塞态->就绪态
进程的切换
运行态->就绪态
就绪态->运行态
总结