进程管理(八)-进程控制
原语
什么是原语
在操作系统中,通常把进程控制用程序段做成原语。
为什么引入原语
为了在并发执行过程中执行进程控制任务时候,减少系统的开销和复杂度
控制原语分类
- 创建原语
- 撤消原语
- 阻塞原语
- 唤醒原语
进程的创建与撤销
进程的创建方式
创建方式 | 特点 |
---|---|
由系统程序模块统一创建 | 关系是平等、它们之间一般不存在资源继承关系 |
由父进程创建 | 进程之间则存在隶属关系、子进程可继承父进程资源 |
创建方式总结
1.无论是哪一种方式创建进程,在系统生成时,都必须由操作系统创建一部分承担系统资源分配和管理工作的系统进程。
2.无论是系统创建方式还是父进程创建方式,都必须调用创建原语实现。
进程撤销方式
1.该进程已完成所要求的功能而正常终止。
2.由于某种错误导致非正常终止。
3.祖先进程要求撤消某个子进程。
撤销方式总结
1.无论哪一种情况导致进程被撤消,进程都必须释放它所占用的各种资源和PCB 结构本身,以利于资源的有效利用。
2.当一个祖先进程撤消某个子进程时,还需审查该子进程是否还有自己的子孙进程,若有的话,还需撤消其子孙进程的 PCB结构和释放它们所占有的资源。
3.撤消原语释放进程占有的资源之后,把对应的 PCB结构从进程链或进程家族中摘下并返回给 PCB空队列。
4.有子进程的情况,先撤消子进程 PCB结构并释放子进程所占用的资源之后,再撤消当前进程的 PCB结构和释放其资源
进程阻塞
1.一个进程期待某一事件发生,但发生条件尚不具备时,被该进程自己调用阻塞原语来阻塞自己,进程从执行状态变为等待状态。
2.转进程调度程序是很重要的,否则处理机将会出现空转而浪费资源。
进程唤醒
什么是进程唤醒
等待队列中的进程所等待的事件发生时,等待该事件的所有进程都将被唤醒,进程从等待状态变为就绪状态。
唤醒的两种方法
系统进程唤醒
1.系统进程唤醒等待进程时,系统进程统一控制事件的发生并将“事件发生”这一消息通知等待进程
2.而使得该进程因等待事件已发生而进入就绪队列
事件发生进程唤醒
1.事件发生进程唤醒时,事件发生进程和被唤醒进程之间是合作关系
2.因此,唤醒原语既可被系统进程调用,也可被事件发生进程调用
3.称调用唤醒原语的进程为唤醒进程
4.在把被唤醒进程送入就绪队列之后,唤醒原语既可以返回原调用程序,也可以转向进程调度,以便让调度程序有机会选择一个合适的进程执行