进程的控制【进程的创建、终止、阻塞、唤醒】"/>
操作系统【OS】进程的控制【进程的创建、终止、阻塞、唤醒】
| 定义和过程 | 对应事件 |
创建 | - 允许一个进程创建另一个进程
- 允许子进程继承父进程所拥有的资源
- 创建进程的过程如下:
- 申请一个空白的 PCB,并向 PCB 中填写一些控制和管理进程的信息,比如进程的唯一标识等;
- 为该进程分配运行时所必需的资源,比如内存资源;
- 将 PCB 插入到就绪队列,等待被调度运行;
| Ps:设备分配不需要创建进程【通过在系统中设置相应的数据结构实现】 - 登陆系统【系统为此创建一个用户管理的进程,包括用户桌面、环境等,所有用户进程都会在该进程下创建和管理】
- 作业调度
- 系统提供服务
- 用户程序的应用请求
|
终止 | - 当子进程被终止时,其在父进程处继承的资源应当还给父进程
- 终止进程的过程如下:
- 查找需要终止的进程的 PCB,读取该进程的状态;
- 如果处于执行状态,则立即终止该进程的执行,然后将 CPU 资源分配给其他进程;
- 如果其还有子进程,则应将该进程的子进程终止;
- 将该进程所拥有的全部资源都归还给操作系统;
- 将其从 PCB 所在队列中删除;
| - 正常结束
- 异常结束
- 存储越界
- 保护错
- 非法指令
- 特权指令错
- 运行超时
- 算术运算错
- I/O故障
- 外界干预
|
阻塞 | - 当进程需要等待某一事件完成时,它可以调用阻塞语句把自己阻塞等待(主动)
- 一旦被阻塞等待,只能由另一个进程唤醒(被动)
- 阻塞进程的过程如下:
- 找到将要被阻塞进程标识号对应的 PCB;
- 如果该进程为运行状态,则保护其现场,将其状态转为阻塞状态,停止运行;
- 将该 PCB 插入到阻塞队列中去;
| - 请求系统资源失败
- 等待某种操作的完成
- 新数据尚未到达或无新任务可做
|
唤醒 | - 唤醒进程的过程如下:
- 在该事件的阻塞队列中找到相应进程的 PCB;
- 将其从阻塞队列中移出,并置其状态为就绪状态;
- 把该 PCB 插入到就绪队列中,等待调度程序调度;
| |
进程转换
- 先有资源的调度,再有进程的切换
- 决定资源分配给哪个进程是决策行为
- 实际分配的行为是执行行为
更多推荐
操作系统【OS】进程的控制【进程的创建、终止、阻塞、唤醒】
发布评论