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,当前进程终止

2.3进程控制