三 进程控制
进程控制:创建新进程、终止已完成的进程、 置于阻塞状态、状态转换
如何实现?操作系统内核中的原语。
3.1操作系统内核 (放在内核中的 1.安全(用户不能随便修改)2 性能(运行频率高))
在哪里?常驻内存,紧靠硬件的软件层次
包括什么?与硬件紧密相关(中断处理), 设备驱动程序运行频率较高 (时钟管理、进程调度)
作用:提高操作系统运行效率,保护这些软件防止遭到其他应用程序的破坏
对应 处理机的执行状态分为:系统态 、用户态
系统态:管态 、内核态,特权高, 能执行一切指令, 访问所有的寄存器和存储区
用户态:目态, 应用程序只能在此运行
操作系统内核两大功能:
1 支撑功能 (支持其他模块)
1 中断处理
2 时钟管理:时间片轮转调度,时间片用完时产生中断信号
3 原语操作:(Primitive)由若干条指令完成一定功能的一个过程 不可分割,中间不可中断
2 资源管理功能
1 进程管理:进程的调度、 分派、 创建、 撤销、 运行频率高;实现进程同步、 进程通信的原语被多种功能模块需要,
放在内核中,提高操作系统的性能
2 存储器管理:运行频率高,地址转换机构、 内存分配与回 内存保护与对换
3 设备管理: 驱动程序、 缓冲管理、 设备分配和设备独立性
3.2进程的创建
1 进程的层次结构 父进程创建子进程,子进程继承父进程拥有的资源。进程不能拒绝子进程的继承权。
子进程撤销时,归还父进程分配的资源。撤销父进程时,同时撤销所有子进程。 父子等家族关系记录在PCB家族关系表。
Windows系统无进程层次结构,有控制关系(一个进程创建另外一个进程时,
创建进程有意个相当于令牌的句柄,来控制被创建的进程)
2 进程图 : 有向树
3 引起创建进程的事件
1 用户登录: 分时系统 用户登录成功建立进程插入就绪队列
2 作业调度: 多道批处理系统,调度作业时,装入内存 、创建进程、 插入就绪队列
3 提供服务: 满足用户提出的需求,比如创建打印文件进程
4 应用请求: 以上123都是系统内核为用户创建一个新进程,
而4 是用户进程自己创建新进程,新进程与创建进程并发运行一起完成任务
4 进程的创建过程
系统出现创建新进程的请求后,操作系统调用进程创建原语Creat 创建新进程
1 申请空白PCB, 申请唯一的数字标识符
2 为新进程分配资源: (物理和逻辑资源) 内存、 文件 I/O设备、 CPU时间。
操作系统/父进程提供。(提前告知所需资源, 如内存大小)
3 初始化PCB以下内容
1 标识信息:填写系统分配的标识符和父进程标识符
2 处理机状态信息:程序计数器指向程序的入口地址,栈指针指向栈顶
3 处理机控制信息 :进程的状态设置为就绪状态或静止就绪,先置为最低优先级(如用户未说明)
4 如就绪队列可接纳新进程,插入
3.3进程的终止
1 引起进程终止的事件
1 正常结束:运行完产生中断
2 异常:1 越界(存储区);2 保护(权限);3非法指令;4 特权指令(用户进程/内核);
5 运行超时;6等待超时;7算术运算错误 ;8 I/O故障
3 外界干预:1用户/操作系统 如死锁时终止进程;2 父进程请求(子进程已完成任务);3 父进程终止
2 进程终止过程
操作系统调用终止原语
1 根据被终止进程的标识符,查找该进程的PCB 读进程状态
2 如果是执行状态,立即终止,改变调度标志为True (终止后重新调度)
3 终止子孙进程
4 资源还给父进程、系统
5 将被终止进程(PCB)移除所在队列/链表
3.4进程的阻塞与唤醒
1 引起进程阻塞和唤醒的事件
1 向系统请求系统资源 失败-->阻塞,其他进程释放资源-->唤醒
2 等待某操作的完成
3 新数据尚未到达
4 等待新任务到达 (网络的发送进程, 发送数据包)
2 进程阻塞过程
进程调用阻塞原语block将自己阻塞 (自身的主动行为)
1立即停止执行
2 PCB的现行状态改为阻塞,插入阻塞队列(根据不同事件)
3 保留处理机状态,调度程序重新调度,设置新进程的CPU的环境
3 进程唤醒过程
如I/0操作已完成或等待的数据已经到达,则由这些相关进程调用唤醒原语wakeup
1 从阻塞队列移出
2 PCB状态改为就绪,插入就绪队列
block和wakeup是一对原语,必须成对使用,不能阻塞后永远不被唤醒
3.5 进程的挂起与激活
1 进程的挂起过程
操作系统用挂起原语suspend挂起进程
1 检查被挂起时进程的状态
活动就绪-->静止就绪
活动阻塞-->静止阻塞
2 PCB复制到内存中,以便用户/父进程查看状态
3 如果程序正在执行,则调度程序重新调度(执行--挂起-->静止就绪--激活-->活动就绪--调度-->执行)
2 进程的激活过程
操作系统用激活原语active激活进程
1 将进程从外存调入内存,检查状态
静止就绪-->活动就绪
静止阻塞-->活动阻塞
2 如果是抢占调度,当进程由静止就绪被激活插入就绪队列时,与当前进程优先级比较,高则剥夺,低则不重新调度。
总结
本节主要讲操作系统内核和进程控制
操作系统那些功能放在内核中?两个评判标准
1.安全 系统直接对硬件的操作 用户不能直接操作
2 性能 频繁调用,如果不放在内核中而在用户态中,每次调用都要申请权限审批性能极低
而进程控制就是内核中的原语实现的(不可中断执行的一段程序)
进程控制全程围绕: 运行周期始末(创建 终止)资源(阻塞 唤醒)外界介入(挂起 激活) PCB(各状态记录)