处理机调度
多道程序环境下动态的将处理机分配给就绪队列的一个进程使之执行
高级调度(作业调度)
在早期批处理阶段处理外存上的作业
(1)决定外存后备队列的那些作业被调入内存
(2)为他们创建进程,分配必要资源
(3)将新创建进程排入就绪队列,准备执行
低级调度(进程调度,最基本)
决定内存就绪队列中的哪个进程获得处理机,在三种基本OS都有
- 调度方式: (1)非抢占方式(2)抢占方式(短抢长)
- 调度任务职能:调度和分派
(1)记录系统中所有进程的有关情况
(2)分配处理机给进程
(3)从进程收回处理机
中级调度(交换调度)
提高内存利用率和系统吞吐量,根据条件将进程调入调出内存
调度队列模型
- 仅有进程调度的调度队列模型(分时系统)
- 具有高级和低级调度的调度队列模型(批处理系统)
- 同时具有三级调度的调度队列模型(使进程在内外存之间转换)
就绪:内存就绪;外存就绪
阻塞:内存阻塞;外存阻塞
调度算法
-
面向用户准则:
(1)周转时间短:批处理系统
(2)响应时间快:分时系统
(3)均衡性
(4)截止时间保证:实时系统
(5)优先权准则 -
面向系统准则:
(1)系统吞吐量高:批处理系统
(2)处理机利用率好:大中型主机
(3)各类资源平衡利用:大中型主机
先来先服务算法FCFS
最简单,按先后顺序,既可用于作业调度,也可用于进程调度
- 调度方式
(1)按作业提交或进程变为就绪态的先后分配CPU
(2)新作也只有在当前进程执行完或阻塞后才获得CPU
(3)被唤醒的作业不立即回复执行,通常等当前进程让出CPU - 特点:有利于CPU繁忙式作业,不利于I/O繁忙作业和短作业
短作业/进程优先调度算法SJF/SPF
- 调度方式:抢占式;非抢占式
- 优点:有效降低作业的平均等待时间,提高系统吞吐量
- 不足:对长作业不利;不能保证对急迫性作业的及时处理
高优先权优先调度算法HPF
照顾急迫性作业,常用于作业调度(批处理系统)和进程调度
- 调度方式:
(1)非抢占式优先权算法
(2)抢占式优先权算法(新作业产生时) - 高相应比优先调度算法HRRN
为每个作业引入动态优先权,优先级虽等待时间增加
优先权=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间
基于时间片的的轮转调度算法
分时系统需求:及时响应用户请求
- 时间片轮转算法RR
时间片的长度由系统的处理能力和负载状态决定
(1)所有就绪进程按FCFS原则排成队列
(2)调度时将CPU派给队首进程,让其执行一个时间片
(3)时间片结束时发生时钟中断,调度进程暂停当前进程并将其送至就绪队列末尾,执行当前就绪的队首进程
发生阻塞时未用完时间片也需让出CPU - 多级反馈队列算法FB
特点:多个就绪队列循环反馈;动态优先级;时间片轮转
(1)设置有不同优先级的多个就绪队列,且优先级依次降低
(2)赋予各队列大小不同的执行时间片,优先级越高,时间片越短
实时调度
实时系统
☞系统能在限定响应时间内提供所需水平的服务
☞计算的正确性不仅取决于程序的逻辑正确性,也取决于结果的产生时间(若系统的时间约束条件得不到满足将发生系统出错)
实时任务:有明确时间约束的计算任务
-
实时调度基本条件
(1)提供必要信息:就绪时间;开始和完成截止时间;处理时间;资源要求;优先级
(2)系统处理能力足够强
M*(Ci/Pi)<=N,N为处理机数
(3)广泛采用抢占式调度机制(非全部)
(4)具有快速切换机制:外部中断的快速响应;快速的任务分派能力
实时调度算法分类 -
非抢占调度算法(小型/不太严格实时系统)
-
抢占式调度算法
(1)基于时钟:某些高优先级任务到达后等待下一个时钟中断时抢占
(2)立即抢占:出现外部中断时,若当前任务不属于临界区则立即抢占处理机 -
最早截止时间有优先EDF
(1) 根据最早截止时间确定优先级
(2)新任务产生时根据是否能等当前程序执行完决定抢占式或非抢占式 -
最低松弛度优先LLF
根据任务紧急程度确定优先级
松弛度=截止完成时间-还需执行时间-当前时间