操作系统概念——第5章 CPU调度

本文深入探讨了操作系统中的CPU调度,包括基本概念、调度准则和多种调度算法,如FCFS、SJF、轮转法等,并讨论了多处理器调度中的亲和性和负载平衡策略。
摘要由CSDN通过智能技术生成

1. 基本概念

1.1 什么是CPU调度

调度程序在就绪队列中选择一个进程,让它在CPU上执行
(调度程序 + 分派程序)

1.2 抢占调度

CPU调度会在四种环境下发生
(1)进程从运行状态切换到阻塞状态(例如:IO请求)
(2)进程从运行状态切换到就绪状态(例如:发生中断)
(3)进程从阻塞状态切换到就绪状态(例如:IO完成)
(4)进程终止

问题:选择与调度
在(1)(4)情况下,没有选择只有调度
在(2)(3)情况下,即就绪队列有进程存在时,可以进行选择

1. 非抢占调度
定义
进程在CPU上执行时,会一直使用CPU资源直到进程结束或切换到阻塞状态(情况(1)(4))

2. 抢占调度
定义
会剥夺原在CPU上执行的进程对CPU资源的使用权(情况(2)(3))

3. 分派程序
定义
用来将CPU的控制交给调度程序选择的进程
功能
① 切换上下文
② 切换到用户模式
③ 跳转到用户程序的合适位置,以重新启动程序

2. 调度准则

提出的一些准则用于衡量调度算法的好坏
最大化
(1)CPU利用率:
(2)吞吐量:单位时间完成进程的数量
最小化
(1)等待时间:进程在就绪队列中等待的时间
(2)响应时间:从提交请求到开始响应的时间(包括:等待进入内存+在就绪队列中等待)
(3)周转时间:从提交请求到进程完成的时间(包括:等待进入内存+在就绪队列等待+在CPU上执行和IO执行)

计算方法
(1)等待时间:
① 一段:开始时间 - 到达时间
② 多段:结束时间 - 执行时间 - 到达时间
理解:从进程到达就绪队列后到进程执行结束前,进程不是在运行,就是在等待。因此

问题:CPU调度算法会改变进程运行和执行I/O的时间吗?
解答:不会。调度算法只影响进程在就绪队列等待的时间

3. 调度算法

3.1 先到先服务调度(FCFS)

定义
先请求CPU的进程先分配CPU(非抢占型)
优点
可以通过FIFO队列很容易地实现
缺点
(1)如果进程CPU区间时间变化很大时,平均等待时间变化也很大
(不同CPU区间时间的进程的执行顺序变化)
(2)护航效应:当大进程最先执行时,所有其他进程等待大进程释放CPU、I/O设备空闲,CPU和设备的利用率较低
Gantte图
在这里插入图片描述
1.平均等待时间: ( 0 + 24 + 27 ) 3 = 17 \frac{(0+24+27)}{3}=17 3(0+24+27)=17
2.周转时间: ( 24 + 27 + 30 ) 3 = 27 \frac{(24+27+30)}{3}=27 3(24+27+30)=27
3.吞吐量: 3 30 = 0.1 \frac{3}{30}=0.1 303=0.1

3.2 最短作业优先(SJF)

定义
当CPU空闲时,它会赋给具有最短CPU区间的进程。当两个进程具有相同长度时,采用FCFS调度(非抢占)
优点
最优调度算法,SJF的平均等待时间最少
困难
下一CPU区间长度的计算
① 长期调度:可以将用户提交作业时所指定的进程时间极限作为长度
② 短期调度:指数平均
下一个CPU区间通常可以预测为以前CPU区间的测量长度的指数平均
τ n + 1 = α t n + ( 1 − α ) τ n τ n + 1 = α t n + α ( 1 − α ) t n − 1 + ⋯ + ( 1 − α ) n + 1 τ 0 \tau_{n+1}=\alpha t_n+(1-\alpha)\tau_n \\ \tau_{n+1}=\alpha t_n+\alpha(1-\alpha)t_{n-1}+\dots+(1-\alpha)^{n+1}\tau_0

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冠long馨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值