操作系统期末复习——第五章 CPU调度

第五章 CPU调度

1.基本概念

  • I/O为主的程序里短CPU区间较多
  • CPU为主的程序里长CPU区间较少

非抢占调度/抢占调度

CPU调度程序

调度可能发生的时间:

  • 进程终止
  • 进程进入就绪队列
  • 进程从运行态到就绪态,从运行态到阻塞态,从阻塞态到就绪态

2.调度准则

  1. CPU使用率
  2. 吞吐量:单位时间完成的进程量
  3. 周转时间:进程从就绪到结束的时间
  4. 等待时间:周转时间 - 运行时间
  5. 响应时间:从提交到响应的时间

3.调度算法

3.1先到先服务调度(FCFS)

先进就绪队列的进程先占用处理器

非抢占式算法,不会导致饥饿

优点:

  1. 公平
  2. 算法简单

缺点:

  1. 护航效应,对短作业/进程不利

护航效果:所有小进程等待一个大进程释放CPU

  • 大进程:CPU区间长,I/O区间短
  • 小进程:CPU区间短,I/O区间短

3.2最短作业优先调度(SJF)

选择CPU区间长度最短的进程,这里的CPU区间是进程的剩余CPU区间

可分为非抢占调度和抢占调度,可能导致饥饿

优点:

  1. 对于给定的一组进程,SJF在平均等待时间上最优

缺点:

  1. 不公平,对短进程有利,可能导致长进程饥饿。
  2. 进程的运行时间由用户提供,不一定能真正做到短作业优先

3.3优先级调度

每个进程都有优先级,数字越小优先级越高,优先级高者先执行

最短作业优先调度是优先级调度算法,进程优先级与CPU剩余区间长度成反比

分为抢占式优先级调度和非抢占式优先级调度

优点:

  1. 区分优先级,适用于实时调度系统

缺点:

  1. 可能导致饥饿

解决方案:

  • 老化(aging)随等待时间增长,进程优先级增加
  • 注意:低优先级进程释放后再次进入队列,其优先级为初始优先级而非老化后的优先级

3.4(时间片)轮转法调度

赋予进程时间片,每个进程只能在给定时间片长度内占用处理器,时间结束重新进入就绪队列尾部

时间片结束时仍未执行完的进程会被强制中断,故为抢占式调度方法

优点:

  1. 公平,响应快,适用于分时操作系统

缺点:

  1. 平凡切换有一定系统开销
  2. 不会区分任务紧急度

时间片大小的确定的问题:

  • 时间片太大与相同先到先服务相同
  • 时间片太小切换频繁负载重(如果切换时间约为时间片的10%,那么10%的CPU时间会浪费在切换上)

时间片的确定:

  • 通常,如果绝大多数进程能在一个时间片内执行完毕,则平均周转时间会改善
  • 根据经验,时间片应大于80%进程的CPU区间

3.5多级队列调度

有多个就绪队列,每个队列右自己的调度算法,并提供队列间调度机制

  • 队列内采用的调度机制
  • 队列间调度机制:
    • 固定优先级抢占调度(例:前后台,开销低,缺乏灵活性)
    • 队列间划分时间片

这里我们主要考虑以下调度机制:

  • 每个队列间划分优先级,队内采用时间片轮换调度
  • 优先级高的队列,其队内时间片短
  • 进程先进入优先级最高的队列内,如果在该队列内一个时间片没有执行完毕,则退出该队列,进入优先级次之的队列内
  • 如果在优先级最低的队列内一个时间片还未执行完毕,该进程继续进入优先级最低的队列
  • 若进程在时间片内执行时被中断,则重新进入刚才的队列

以上调度算法为抢占式调度,会导致饥饿

优点:

  1. 相对公平,中庸之道
  2. 响应时间快
  3. 短进程很快就能执行完毕
  4. 不用估计进程运行时间
  5. 可以灵活调整队列调度算法

缺点:

  1. 可能导致饥饿

4.多处理器调度

  • 对称多处理:每个处理器有自己的调度算法,不允许处理期间移动
  • 非对称多处理:只有一个处理器进行调度任务,允许处理器之间移动

处理器亲和性:

  1. 软亲和性:允许处理器间移动
  2. 硬亲和性:不允许处理器间移动

负载平衡:保持所有处理器工作负载平衡,推/拉

5.线程调度

区分用户线程和内核线程,多线程系统的调度对象是线程

PCS:进程范围竞争,竞争发生在相同进程的线程之间,根据优先级完成(优先级由程序员给定)

SCS:系统竞争范围,竞争发生在系统所有线程之间

6.实时调度

实时系统中的进程有截止时间要求,进程要在截止时间前被执行完成,有截止时间的进程称为实时任务

  1. 硬实时系统:必须按时结束任务
  2. 软实时系统:可以适当超过时间
posted @   朝寝暮眠  阅读(368)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示