|
Posted on
2023-03-19 21:38
乔55
阅读( 13)
评论()
编辑
收藏
举报
处理机调度概念
- 定义:根据一定的算法和原则将处理机资源进行重新分配的过程
- 前提:作业或进程数远远大于处理机数量
- 目的:提高资源利用率,减少处理机的空闲时间
处理机调度的层次
- 作业调度
- 内存调度
- 将进程调度至外存,条件合适再调入内存
- 在内外存对换区进行进程对换
- 进程调度
- 从就绪队列选取进程分配给处理机
- 最基本的调度,频率非常高(相当于一个时间片完成)
处理机调度的方式
- 抢占式调度
- 立即暂停当前进程
- 分配处理机给另一进程
- 原则:优先权/短进程优先/时间片原则
- 非抢占式调度
- 若有进程请求执行
- 等待直到当前进程完成或阻塞
- 缺点:适用于批处理系统,不适用分时/实时系统
处理机调度时间
- 进程运行完毕
- 进程时间片用完
- 进程要求I/O操作
- 执行某种原语操作
- 高优先级进程申请运行
处理机调度过程
- 保存镜像:记录进程现场信息
- 调度算法:确定分配处理机的原则
- 切换进程:分配处理机给其他进程
- 资源回收:从进程收回处理机
调度算法指标
- CPU利用率:忙碌时间/总时间
- 系统吞吐量:完成作业数/总时间
- 周转时间:作业时间-提交时间
- 等待时间:作业等待处理机调度时间
- 响应时间:提交请求到首次响应间隔
调度算法:FCFS,先来先服务
- 算法内容:调度作业/就绪队列中最先进入者,等待操作完成或阻塞
- 算法原则:按作业/进程到达顺序执行
- 调度方式:非抢占式调度
- 适用场景:作业/进程调度
- 优缺点:
- 有利于CPU繁忙型作业,充分利用CPU资源
- 不利于I/O繁忙型作业,操作耗时,其他饥饿
调度算法:SJF,短作业优先
- 算法内容:所需服务时间最短的作业/进程优先服务
- 算法原则:追求最少的平均周转时间
- 调度方式:非抢占式
- 适用场景:作业/进程调度
- 优缺点:
- 平时等待/周转时间最少
- 长作业周转时间会增加或饥饿
- 估计时间不准确,不能保证紧迫任务及时处理
调度算法:HRRN,高响应比优先调度
- 算法内容:结合FCFS,SJF,综合考虑等待时间和服务时间计算响应比,高的优先调度
- 算法原则:综合考虑作业/进程的等待时间和服务时间
- 调度方式:非抢占式
- 适用场景:作业/进程调度
- 响应比计算
响应比=(等待时间+服务时间)/服务时间,>=1
- 只有当前进程放弃执行权(完成/阻塞)时,重新计算所有进程响应比
- 长作业等待越久响应比越高,更容易获得处理机
调度算法:PSA,优先级调度
- 算法内容:按作业/进程的优先级(紧迫程度)进行调度
- 算法原则:优先级最高的作业/进程优先调度
- 调度方式:抢占/非抢占式(并不能获得及时执行)
- 适用场景:作业/进程调度
- 优先级设置原则:
- 静态/动态优先级
- 系统>用户,交互型>非交互型,I/O型>计算型
- 优先级低的进程可能会产生饥饿
调度算法:RR,时间片轮转调度
- 算法内容:按进程到达就绪队列的顺序,轮流分配一个时间片去执行,时间用完则剥夺
- 算法原则:公平、轮流地为每个进程服务,进程在一定时间内都能响应
- 调度方式:抢占式,由时间中断确定时间到
- 适用场景:进程调度,不适用于作业调度
- 优缺点:
- 公平、响应快,适用于分时系统
- 时间片决定因素:系统响应时间、就绪队列进程数量、系统处理能力
- 时间片太长,相当于FCFS,处理机切换频繁,开销增大
调度算法:MFQ,多级反馈队列调度
- 算法内容:
- 设置多个按优先级排序的就绪队列,优先级从高到低,时间片从小到大,新进程采用队列降级法
- 进入第一队列,按FCFS分时间片
- 没有执行完,移到第二级,第三级
- 前面队列不为空,不执行后续队列进程
- 算法原则:集前几种算法优点,相当于PSA+RR
- 调度方式:抢占式
- 适用场景:进程调度
- 优缺点:
- 对各类型相对公平;快速响应
- 终端型作业用户:短作业优先
- 批处理作用用户:周转时间短
- 长批处理作业用户:在前几个队列部分执行
|