2.3进程控制
一,基本概念:
1,什么是进程控制?
答:对操作系统中的进程进行管理,实现进程状态的转换
2,如何实现进程控制?
答:用"源语”实现
3,什么是源语?
源语是一种特殊的程序,它的执行必须一气呵成,不可中断,
源语由关/开中断实现。这就保证了切换进程中,对进程环境数据写入pcb过程中不会吧打断
4,源语要做什么?
1)更新PCB中的信息(如修改进程转态标志,将运行环境保存到PCB,从PCB恢复运行环
境)
a,所有的进程控制源语一定会修改进程的状态标志
b,剥夺当前进程CPU使用权必然需要保存它的运行环境
c,某进程开始运行前必然要恢复它的运行环境
2)将PCB插入合适的队列
3)分配/回收资源
二进程控制相关的源语:
1,进程的创建
1)创建源语的步骤:
a,申请空白pcb
b,为新进程分配资源
c,初始化pcb
d,将pcb插入就绪队列
2)引起进程创建的事件:
a,用户登入:分时系统中,用户登入成功,系统会为其创建新进程
b,作业调度:多道批处理系统中,有新的作业放入内存,会为其建立一个新进程
c,提供服务:用户向操作系统提出一些请求时,会新建一个进程处理该请求
d,应用请求:用户进程请求创建一个子进程
2,进程的终止
1)撤销源语的步骤:
a,从pcb集合中找出要终止进程的pcb
b,如果进程正在运行,立即剥夺CPU,将CPU分配给其他进程
c,终止它的所有子进程
d,将该进程拥有的所有资源归还给父进程,或者操作系统
e,删除pcb
2)引起进程终止的事件:
a,正常结束
b,异常结束
c,外界干预
3,进程的堵塞
1)堵塞源语的步骤:
a,从pcb集合中找出要堵塞进程的pcb
b,保护其运行环境,将pcb状态消息设为堵塞态,暂时停止进程运行
c,将pcb插入相应事件的等待队列中
2)引起进程堵塞的事件:
a,需要等待系统分配某种资源
b,需要等待相互配合的其他进程完成工作
4,进程的唤醒
1)唤醒源语的步骤:
a,在事件的等待队列中找出进程的pcb
b,将pcb从等待队列中移除,设置为就绪态
c,将pcb插入相就绪队列中,等待被调度
2)引起进程唤醒的事件:
a,等待的事件发生了
5,进程的切换
1)切换源语的步骤:
a,将运行环境信息pcb
b,pcb移入相应的队列
c,选择另外一个进程执行,并更新其pcb
d,根据pcb恢复新进程所需要的运行环境
2)引起进程切换的事件:
a,当前进程时间片到了
b,有更高优先级的进程到达
c,当前进程主动堵塞
d,当前进程终止