3.1 处理机调度的层次和调度算法的目标
3.1.1处理机调度的层次
- 高级调度
- 初级调度
- 中级调度
——————————————————————
1.高级调度:
高级调度又称为长程调度或作业调度,它的调度对象是作业。
2.主要功能:
根据某种算法,决定将外存上处于后备队列中的哪几个作业调入内存,
为他们创建进程、分配必要的资源,并将它们放入就绪队列。
3. 主要用于多批道处理系统中。
1.低级调度:
低级调度又称为进程调度或短程调度,其所调度的对象是进程(或内核级进程)。
2.主要功能:
根据某种算法,决定就绪队列中哪个进程应获得处理机,并由分派程序将处理机分配给选中的进程。
3. 在多道批处理、分时和实时三种类型的OS中,都必须配置这级调度。
1.中级调度:
中级调度又称为内存调度。
2.主要目的:
提高内存利用率和系统吞吐量。
3.1.2 处理机调度算法的目标
- 处理机调度算法的共同目标
- 批处理系统的目标
- 分时系统的目标
- 实时系统的目标
———————————————————————— - 处理机调度算法的共同目标
(1)资源利用率:
CPU有效工作时间
CPU的利用率 = ————————————————————————————————————
CPU有效工作时间 + CPU空闲等待时间
(2)公平性
(3)平衡性
(4)策略强制执行
2.批处理系统的目标
(1)平均周转时间短。----所谓周转时间是指从作业被提交给系统开始,到作业完成为止这段时间间隔。
包括四部份时间:
①作业在外存后备队列上等待(作业)调度的时间。
②进程在就绪队列上等待进程调度的时间。
③进程在CPU上执行的时间。
④进程等待I/O操作完成的时间。
(2)系统吞吐量高
(3)处理机利用率高
3.分时系统的目标
(1)响应时间快
(2)均衡性
4.实时系统的目标
(1)截止时间的保证
(2)可预测性
3.2 作业与作业调度
3.2.1 批处理系统中的作
- 作业和作业步
- 作业控制块(JCB)
- 作业运行的三个阶段和三种状态
———————————————————————————— - 作业和作业步
(1)作业
(2)作业步 - 作业运行的三个阶段和三种状态
(1)收容阶段 — “后备状态”
(2)运行阶段 — “运行状态”
(3) 完成阶段 — “完成状态”
3.2.2 作业调度的主要任务
- 接纳多少个作业
- 接纳哪些作业
————————————————————————
3.3.3 先来先服务和短作业优先调度算法
- 先来先服务(FCFS)调度算法
- 短作业优先(SJF)的调度算法
——————————————————————————————
SJF:
(1)短作业优先算法
(2)短作业优先算法的缺点
①必须预知作业的运行时间
②对长作业非常不利,长作业的周转时间会明显增加。
③在采用FCFS算法时,人——机无法实现交互。
④该调度算法完全未考虑作业的紧迫程度,故不能保证作业能得到及时处理。
3.2.4 优先级调度算法和高响应比优先调度算法
- 优先级调度算法
- 高响应比优先调度算法
——————————————————————————
3.3 进程调度
3.3.1进程调度的任务、机制和方式
- 进程调度的任务
- 进程调度机制
- 进程调度方式
————————————————————————
任务有三:
(1)保存处理机的现场信息。
(2)按某种算法选取进程。
(3)把处理机分配给进程。
进程调度机制;
(1)排队器
(2)分派器
(3)上下文切换器
进程调度方式:
(1)非抢占方式
在采用非抢占调度方式时,可能引起进程调度的因素可归结为:①②③
(2)抢占方式
主要原则:①②③
3.3.2 轮转调度算法
- 论转法的基本原理
- 进程切换时机
- 时间片大小的确定
——————————————————————————
3.3.3 优先级调度算法
- 优先级调度算法的类型
- 优先级的类型
—————————————————————————— - 优先级调度算法的类型
(1)非抢占式优先级调度算法
(2)抢占式优先级调度算法 - 优先级的类型
(1)静态优先级
✦进程类型
✦进程对资源的需求
✦用户要求
(2)动态优先级
3.3.4多队列调度算法
3.3.5 多级反馈队列调度算法
- 调度机制
- 调度算法的性能
———————————————————————————— - 调度机制
(1)设置多个就绪队列
(2)每个队列都采用FCFS算法
(3)按队列优先级调度 - 调度算法的性能
(1)终端行用户
(2)短批处理作业用户
(3)长批处理作业用户
3.3.6 基于公平原则的调度算法
- 保证调度算法
- 公平分享调度算法
————————————————————————————
3.4 实时调度
3.4.1 实现实时调度的基本条件
- 提供必要的信息
- 系统处理能力强
- 采用抢占式调度机制
- 具有快速切换机制
—————————————————————————— - 提供必要的信息:
(1)就绪时间
(2)开始截止时间和完成截止时间。
(3)处理时间
(4)资源要求
(5)优先级
———————————————————————————
3.4.2 实时调度算法分类
- 非抢占式调度算法分类
- 抢占式调度算法———————————————————————————
- 非抢占式调度算法
(1)非抢占式轮转调度算法
(2)非抢占式优先调度算法 - 抢占式调度算法
(1)基于时钟中断的抢占式优先级调度算法
(2)立即抢占的优先级调度算法
3.4.3 最早截止时间优先算法
- 非抢占式调度方式用于非周期实时任务
- 抢占式调度方式y用于周期实时任务
——————————————————————————
3.4.4 最低松弛度优先LLF算法
3.4.5 优先级倒置
- 优先级倒置的形成
- 优先级倒置的解决办法
3.5 死锁概述
3.5.1 资源问题
- 可重用性资源和消耗性资源
- 可抢占性资源和不可抢占性资源
———————————————————————————
可重用性资源和消耗性资源:
(1)可重用性资源:
性质:
1>每一个可重用性资源中的单元只能分配给一个进程使用,不允许多个进程共享。
2>进程在使用可重用性资源时,须遵循如下顺序:
①请求资源。 --- 如果请求资源失败,请求进程将会被阻塞或循环等待。
②使用资源。 --- 进程对资源进行操作,如用打印机进行打印。
③释放资源。 --- 当进程使用完后自己释放资源。
3>系统中每一类可重用性资源中的单元数目是相对固定的,进程在进行期间不能创建也不能删除它。
(2)可消耗性资源:
可消耗性资源又称为临界性资源。
可抢占性资源和不可抢占性资源:
(1)可抢占性资源:
是指某进程在获得这类资源后,该资源可以被其他进程或系统抢占。
(2)不可抢占性资源:
是指一旦系统把某资源分配给该进程后,将不能将他强行收回,只能在进程用完后自行释放。
3.5.2 计算机系统中的死锁
- 竞争不可抢占性资源引起死锁
- 竞争可消耗性资源引起死锁
- 进程推进顺序不当引起死锁
————————————————————————————
进程推进顺序不当引起死锁:
(1)进程推进顺序合法
(2)进程推进顺序非法
3.5.3死锁的定义、必要条件和处理方法
- 死锁定义
- 产生死锁的必要条件
- 处理死锁的方法
——————————————————————————
1.定义:
如果一组进程中的没一个进程都在等待仅由改组进程中的其他进程才能引发的事件,那么该组进程是死锁的。
2.必要条件:
(1)互斥条件
(2)请求和保持条件
(3)不可抢占条件
(4)循环等待条件
3.处理死锁的方法:
(1)预防死锁
(2)避免死锁
(3)检测死锁
(4)解除死锁
3.6 预防死锁
3.6.1 破坏“请求和保持”条件
- 第一种协议
- 第二种协议
————————————————————————————
3.6.2 破坏不可抢占条件
3.6.3 破坏“循环等待”条件
3.7 避免死锁
3.7.1 系统的安全状态
- 安全状态
- 安全状态之例
- 由安全状态向不安全状态的转换
3.7.2 利用银行家算法避免死锁
- 银行家算法中的数据结构
- 银行家算法
- 安全性算法
- 银行家算法之例
3.8 死锁的检测与解除
3.8.1 死锁的检测
- 资源分配图
- 死锁定理
- 死锁检测中的数据结构
3.8.2 死锁的解除
- 终止进程的方法
- 付出代价最小的死锁解除算法