进程的状态
- 创建(New)
- 就绪(Ready)
- 执行(Running)
- 阻塞(Blocked)
- 终止(Terminated)
原语
操作系统通过原语来对进程进行有效的管理,包括创建进程、撤销已有的进程、挂起、阻塞和唤醒、进程切换等多种操作。
原语的概念
由若干条指令组成,完成特定的功能,是一种原子操作。
原语的特点
- 原子操作,要么全做,要么全不做,执行过程不会被中断;
- 在管态/系统态/内核态下执行,常驻内存;
- 是内核三大支撑功能(中断处理/时钟管理/原语操作)之一;
进程控制相关原语
- 创建原语:create
- 阻塞原语:block
- 唤醒原语:wakeup
- 撤销原语:destory
下图用一个例子对原语进行进程控制进行说明:
挂起与激活
为了方便系统和用户观察和分析进程,在进程控制中提供了挂起原语和激活原语。
- 挂起原语:suspend
- 静止就绪:放外存,不调度
- 静止阻塞:等待事件
- 激活原语:active
- 活动就绪:等待调度
- 活动阻塞:等待唤醒
进程的调度
根据一定的算法和原则将处理机资源进行重新分配的过程。
- 前提:作业/进程数远远大于处理机数;
- 目的:提高资源利用率,减少处理机空闲时间;
- 调度程序:一方面要满足特定系统用户的需求(快速相应),另一方面要考虑系统整体效率(系统平均周转时间)和调度算法本身的开销;
调度的层次
- 高级调度/作业调度
- 把后备作业调入内存
- 只调入一次,调出一次
- 中级调度/内存调度
- 将进程调至外存,条件合适再调入内存
- 在内、外存对换区进行进程对换
- 低级调度/进程调度
- 从就绪队列选取进程分配给处理机
- 最基本的调度,频率非常高(相当于一个时间片完成)
调度方式
-
剥夺式/抢占式调度
- 立即停止当前进程
- 分配处理机给另一个进程
- 原则:优先权/短进程优先/时间片原则
-
非剥夺/非抢占式调度
- 若有进程请求执行
- 等待直到当前进程完成或者阻塞
- 缺点:适用于批处理系统,不适用于分时/实时系统
调度时机
- 进程运行完毕
- 进程时间片用完
- 进程要求I/O操作
- 执行某种原语操作
- 高优先级进程申请运行(抢占式调度)
调度过程
- 保存镜像:记录进程现场信息
- 调度算法:确定分配处理机的原则
- 进程切换:分配处理机给其他进程
- 处理机回收:从进程收回处理机