1. 基本概念
进程控制就是要实现基层状态的转换
进程控制用原语实现
- 原语用关/开中断来实现
- 原语是一种特殊的程序,它的执行具有原子性
- 原语的执行必须一气呵成,不可中断
2. 相关原语
2.1进程的创建
2.1.1创建原语
- 申请空白PCB
- 为新进程分配所需资源
- 初始化PCB
- 将PCB插入就绪队列
2.1.2引起进程创建的事件
- 用户登录:分时系统中,用户登录成功,系统会为其建立一个新的进程
- 作业调度:多道批处理系统中,有新的作业放入内存时,会为其建立一个新的进程
- 提供服务:用户向操作系统提出某些请求时,会新建一个进程处理该请求
- 应用请求:由用户进程主动请求创建一个子进程
2.2进程的终止
2.2.1撤销原语
- 从PCB集合中找到终止进程的PCB
- 若进程正在运行,立即剥夺CPU,将CPU分配给其他进程
- 终止其所有子进程
- 将该进程拥有的所有资源归还给父进程或操作系统
- 删除PCB
2.2.2引起进程终止的事件
- 正常结束:exit系统调用
- 异常结束
- 外界干预
2.3进程的阻塞
2.3.1阻塞原语
- 找到要阻塞的进程对应的PCB
- 保护进程运行状态,将PCB状态设置为“阻塞态”,暂时停止进程运行
- 将PCB插入相应事件的等待队列
2.3.2引起进程阻塞的事件- 需要等待系统分配某种资源
- 需要等待相互合作的其他进程完成工作
2.4进程的唤醒
2.4.1唤醒原语
- 在事件等待队列中找到PCB
- 将PCB从等待队列中移除,设置进程为就绪态
- 将PCB插入到就绪队列,等待被调度