进程控制
进程控制:是对系统中的所有进程实施有效管理,它具有创建新进程,撤销已有进程,实现进程转换等功能。
简单的说就是实现进程之间的状态转换。
进程控制是用原语来实现的,原语用开/关中断来实现,原语是一种特殊的程序,原语的执行必须一气呵成,具有原子性,中间执行的过程不能被中断。
在关中断指令和开中断指令之间的原语代码不受到外部中断信号的影响,也就是在此期间会忽略中断信号。
开中断、关中断指令的权限非常大,必然是只允许在核心态下执行的特权指令。
原语所做的事情
- 更新PCB中的信息(如修改进程状态标志、将运行环境保存在PCB,从PCB恢复运行环境)
- 所有的进程控制原语一定都会修改进程状态
- 剥夺当前运行进程的CPU使用权限,必然需要保存他的运行环境
- 某进程开始运行前必然要恢复运行环境
- 将PCB插入正确的队列中
- 分配或回收资源
进程创建时发生了哪些事?
创建原语,申请空白PCB,为新进程分配所需资源,将PCB插入就绪队列中
用户登录成功时,系统会为用户新建一个进程
作业调度:多道批处理系统中,有新作业放入内存中,也会为其创建一个新进程
提供服务:用户向操作系统发出某个请求时,会新建一个进程处理请求
应用请求:由用户进程主动请求创建一个子进程。
进程终止时发生了哪些事?
撤销原语:从PCB集合中找出终止进程的PCB,如果进程正在运行,那就剥夺他的CPU执行权,将CPU分配给其它进程。终止所有子进程,将该进程拥有的所有资源换归还给父进程或操作系统。
可能引起进程终止的事件:进程正常结束,异常结束,外界干扰。
进程的阻塞和唤醒状态时执行的原语
阻塞原语:找到要阻塞的进程对应的PCB,保护进程