操作系统—进程控制
正进程控制就是要实现进程状态转换
创建态 ---> 就绪态<--->运行态--->阻塞态
运行态转为终止态
阻塞态可以转为就绪态
程序原语:一种特殊的程序,执行具有原子性,也就是说,这段程序必须一气呵成,不可中断。
如何实现进行控制呢?
原语实现。
如果中间可打断,会发生什么?
如果不能“一气呵成”,就有可能导致操作系 统中的某些关键数据结构信息不统一的情况, 这会影响操作系统进行别的管理工作
两步要保证原子性,类似于cas,比较与交换是原子性操作。
pcb进程控制bai块(duPCB,Process Control Block)
撤销原语:
从pcb集合中找到终止进程的pcb,若进程正在运行,立即剥夺cpu,将cpu的执行权分配给其他进程,终止其他子进程。进程间是树形结构,将该进程拥有的所有资源归还给父进程或者操作系统,删除pcb。
引起程序终止的事件
正常结束:进程自己请求终止
异常结束:整数除以0,被操作系统强行杀掉
外界干扰:ctrl+alt+delete用户选择杀掉进程。
阻塞原语:
找到要阻塞的进程对应的pcb,保护进程运行现场,讲pcb状态信息设置为阻塞态,将pcb插入到
相应事件的等待队列。
引起进程阻塞的事件:
需要等待系统分配某种资源
需要等待相互合作的其他进程完成工作
唤醒原语:
在事件等待队列里找打pcb,将pcb从等到队列移除,设置进程为就绪态,将pcb插入到就绪队列,等待被调度
这里唤醒并不一定就执行了,只是可以被调度了。
引起唤醒的事件:因何事等待,就由什么唤醒,如wait notify
进程切换:将运行环境信息存入pcb,pcb移入相应队列,选择另一个进程执行,并更新起pcb,根据pcb恢复成所需要的运行环境
引起进程切换的事件:
当前进程事件片到了
有更高优先级的进程到达
当前进行主动阻塞
当前进程终止
以上是 操作系统—进程控制 的全部内容, 来源链接: utcz.com/z/518520.html