父进程请求:请求终止子进程。
终止原语的主要功能
进程终止原语的主要功能是撤消一个进程。其算法思想如下:
从PCB总链中查找到被终止进程的PCB,若无则出错返回;
若被终止进程正处于运行状态,则立即停止该进程的执行,设置重新调度标志;
若被终止进程有子孙进程,还应将该进程的子孙进程予以撤消;
对于被终止进程所占有的资源,或者归还给父进程,或者归还给系统;
最后撤消它的进程控制块。若需要转调度程序。
4. 进程阻塞
引起进程阻塞的原因有:
请求系统服务:如请求分配资源但尚无资源分配。
新数据尚未到达:如合作进程之间。
无新工作可做:进程已完成了给定任务,新任务未到。
阻塞原语的主要功能
阻塞原语的主要功能是将进程由执行状态转为阻塞状态。其算法思想如下:
停止当前执行进程,将进程状态改为阻塞;
保存该进程的现场信息;
将该进程PCB插入到等待队列;
转进程调度程序。
5. 进程唤醒
当进程等待的事件发生时,由发现者进程将其唤醒。
唤醒原语的主要功能是将进程唤醒,其算法思想如下:
从等待队列中移出相应进程;
将该进程状态改为就绪,并将进程插入就绪队列;
转进程调度或返回。
阻塞与唤醒的关系
一个进程由执行状态转变为阻塞状态,是这个进程自己调用阻塞原语去完成的。
进程由阻塞状态转变为就绪状态,是另一个发现者进程调用唤醒原语实现的。
一般发现者进程与被唤醒进程是合作的并发进程。
6. 进程的挂起
在某些系统中,希望人为将进程挂起使之处于静止状态。
进程挂起的原因有:
内存不足:在外存挂起。
用户要求:可以挂起进程以腾出资源。
进程特性:周期性执行,等待下一次执行时可能挂起。
父进程请求:父进程希望挂起子进程检查。
操作系统要求:挂起一个问题进程。
挂起状态
基于上述原因,需引入一个新的状态:挂起状态。
挂起原语的主要功能
挂起原语的主要功能是将指定进程挂起。其算法思想如下:
若进程执行则停止其执行;