进程控制是进程管理中的最基本功能,主要包括创建新进程、终止已完成内存、将因发生异常情况而无法继续运行的进程置于阻塞状态、负责进程运行中的状态转换等功能。
①进程的创建
步骤:(1)申请空白PCB
(2)为新进程分配其运行所需的资源
(3)初始化PCB(标识符(包括父进程的)、程序计数器指向程序入口地址,就绪态、优先级等信息的填写)
(4)将新进程插入就绪队列
②进程的终止
引起进程终止的事件:(1)正常结束
(2)异常结束(越界、保护错、非法指令、运行超时、等待超时、I/O故障等)
(3)外界干预
步骤:(1)根据终止进程标识符读出进程状态
1)进程处于执行状态,立即终止进程,置调度标志为真,用于指示进程被终止后应重新进行调度
2)若进程有子孙进程,应将子孙进程终止,以防其成为不可控进程
(2)将被终止的所有进程的资源或归还给其父进程,或归还给系统
(3)将被终止的进程(pcb)从所在队列或链表中移出,等待其他程序来搜索信息
③进程的阻塞与唤醒
引起阻塞和唤醒的事件:(1)系统服务的满足情况(向系统请求共享资源失败)
(2)启动某种需等待(I/O)操作
(3)合作需要的新数据尚未到达
(4)执行某功能的进程暂时无新工作可做(如发送数据进程)
阻塞过程:(阻塞是进程自身的主动行为,进程通过调用阻塞原语block将自己阻塞)
(1)将PCB中的状态改为阻塞
(2)该PCB加入到阻塞队列中
(3)转进程调度,将处理机分配给另一进程
(4)进行进程切换,即根据两切换进程的PCB,保护与重新设置处理机状态。
进程唤醒:(唤醒与阻塞原语相反,阻塞进程等待的事件发生时,有关进程(如放弃该资源的进程)调用唤醒原语把等待该事件的进程唤醒)
唤醒过程:(1)把阻塞进程从等待该事件的阻塞队列中移出
(2)将其PCB中的现行状态改为就绪
(3)将PCB插入到就绪队列中
④进程的挂起与激活
进程挂起:挂起原语将指定进程或阻塞进程挂起,进程只能挂起自己或其子孙进程
(1)检查被挂起进程的状态,活动就绪则改为静止就绪,活动阻塞则改为静止阻塞
(2)将该PCB复制到内存(方便检查)/外存(对换)指定区域
(3)若挂起的进程是执行态,则需重新进行进程调度
进程激活:(1)若挂起进程在外存上,将其调入内存
(2)检查进程状态,若处于静止就绪,则改为活动就绪,若处于静止阻塞,则改为活动阻塞
进程控制中,状态转换和调度密切相关。
运行态进程的改变必然产生调度行为
只要产生新就绪态进程,就需考虑调度策略
只要是采用抢占式调度,要检查新就绪进程是否可抢占CPU,引起新的调度
控制并发:
|| 基本控制
|| 进程、PCB、状态、基本控制过程
|| 合理控制
\/
* 控制进程的相互影响,得到可再现的正确结果 *同步
操作系统笔记第二章(2)进程控制(交的纸质)
最新推荐文章于 2023-03-03 09:00:00 发布