博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

OS-处理机调度

Posted on 2023-03-19 21:38  乔55  阅读(18)  评论(0编辑  收藏  举报

处理机调度概念

  • 定义:根据一定的算法和原则将处理机资源进行重新分配的过程
  • 前提:作业或进程数远远大于处理机数量
  • 目的:提高资源利用率,减少处理机的空闲时间

处理机调度的层次

  • 作业调度
    • 把后备作业调入内存
    • 只调入一次,调出一次
  • 内存调度
    • 将进程调度至外存,条件合适再调入内存
    • 在内外存对换区进行进程对换
  • 进程调度
  • 从就绪队列选取进程分配给处理机
  • 最基本的调度,频率非常高(相当于一个时间片完成)

处理机调度的方式

  • 抢占式调度
    • 立即暂停当前进程
    • 分配处理机给另一进程
    • 原则:优先权/短进程优先/时间片原则
  • 非抢占式调度
    • 若有进程请求执行
    • 等待直到当前进程完成或阻塞
    • 缺点:适用于批处理系统,不适用分时/实时系统

处理机调度时间

  • 进程运行完毕
  • 进程时间片用完
  • 进程要求I/O操作
  • 执行某种原语操作
  • 高优先级进程申请运行

处理机调度过程

  • 保存镜像:记录进程现场信息
  • 调度算法:确定分配处理机的原则
  • 切换进程:分配处理机给其他进程
  • 资源回收:从进程收回处理机

调度算法指标

  • CPU利用率:忙碌时间/总时间
  • 系统吞吐量:完成作业数/总时间
  • 周转时间:作业时间-提交时间
  • 等待时间:作业等待处理机调度时间
  • 响应时间:提交请求到首次响应间隔

调度算法:FCFS,先来先服务

  • 算法内容:调度作业/就绪队列中最先进入者,等待操作完成或阻塞
  • 算法原则:按作业/进程到达顺序执行
  • 调度方式:非抢占式调度
  • 适用场景:作业/进程调度
  • 优缺点:
    • 有利于CPU繁忙型作业,充分利用CPU资源
    • 不利于I/O繁忙型作业,操作耗时,其他饥饿

调度算法:SJF,短作业优先

  • 算法内容:所需服务时间最短的作业/进程优先服务
  • 算法原则:追求最少的平均周转时间
  • 调度方式:非抢占式
  • 适用场景:作业/进程调度
  • 优缺点:
    • 平时等待/周转时间最少
    • 长作业周转时间会增加或饥饿
    • 估计时间不准确,不能保证紧迫任务及时处理

调度算法:HRRN,高响应比优先调度

  • 算法内容:结合FCFS,SJF,综合考虑等待时间和服务时间计算响应比,高的优先调度
  • 算法原则:综合考虑作业/进程的等待时间和服务时间
  • 调度方式:非抢占式
  • 适用场景:作业/进程调度
  • 响应比计算
    • 响应比=(等待时间+服务时间)/服务时间,>=1
    • 只有当前进程放弃执行权(完成/阻塞)时,重新计算所有进程响应比
    • 长作业等待越久响应比越高,更容易获得处理机

调度算法:PSA,优先级调度

  • 算法内容:按作业/进程的优先级(紧迫程度)进行调度
  • 算法原则:优先级最高的作业/进程优先调度
  • 调度方式:抢占/非抢占式(并不能获得及时执行)
  • 适用场景:作业/进程调度
  • 优先级设置原则:
    • 静态/动态优先级
    • 系统>用户,交互型>非交互型,I/O型>计算型
    • 优先级低的进程可能会产生饥饿

调度算法:RR,时间片轮转调度

  • 算法内容:按进程到达就绪队列的顺序,轮流分配一个时间片去执行,时间用完则剥夺
  • 算法原则:公平、轮流地为每个进程服务,进程在一定时间内都能响应
  • 调度方式:抢占式,由时间中断确定时间到
  • 适用场景:进程调度,不适用于作业调度
  • 优缺点:
  • 公平、响应快,适用于分时系统
  • 时间片决定因素:系统响应时间、就绪队列进程数量、系统处理能力
  • 时间片太长,相当于FCFS,处理机切换频繁,开销增大

调度算法:MFQ,多级反馈队列调度

  • 算法内容:
    • 设置多个按优先级排序的就绪队列,优先级从高到低,时间片从小到大,新进程采用队列降级法
    • 进入第一队列,按FCFS分时间片
    • 没有执行完,移到第二级,第三级
    • 前面队列不为空,不执行后续队列进程
  • 算法原则:集前几种算法优点,相当于PSA+RR
  • 调度方式:抢占式
  • 适用场景:进程调度
  • 优缺点:
    • 对各类型相对公平;快速响应
    • 终端型作业用户:短作业优先
    • 批处理作用用户:周转时间短
    • 长批处理作业用户:在前几个队列部分执行