CPU 调度算法经典

共 20 题
#

1. FCFS、SJF/SRTF、时间片轮转(RR)、优先级调度、多级反馈队列五类调度算法的原理与优缺点对比?

A SJF/SRTF ✓ 正确答案
B FCFS
C 时间片轮转
D 多级反馈队列
#

2. 多级反馈队列(MLFQ)为什么被认为兼顾了响应时间与周转时间?其防饥饿机制(优先级提升)如何设计?

A 周期性把进程提升到最高优先级队列(老化/优先级提升) ✓ 正确答案
B 增加队列数量
C 只调度高优先级进程
D 取消时间片
#

3. CFS 的虚拟运行时间(vruntime)与红黑树调度,新进程/睡眠进程的惩罚与补偿?

A 优先级最高的进程
B vruntime 最小的进程 ✓ 正确答案
C 到达时间最早的进程
D 占用 CPU 最久的进程
#

4. EDF 为何是最优单处理器实时调度,可调度性判定 U ≤ 1 与 RM 的 U ≤ n(2^(1/n)-1) 如何对比?

A EDF 的最优性体现在只要总利用率 U ≤ 1 就能调度 ✓ 正确答案
B RM 的利用率上界为 100%
C EDF 的利用率上界随任务数增多而降低
D RM 可以调度任何利用率不超过 100% 的任务集
#

5. 优先级反转问题,为什么实时任务可能被低优先级任务阻塞,优先级继承与优先级置顶如何解决?

A 让高优先级任务放弃资源
B 让持锁的低优先级任务临时继承高优先级,避免被中间优先级抢占 ✓ 正确答案
C 取消资源共享
D 提高中优先级任务的优先级
#

6. 时间片长度的选取权衡,过长退化为 FCFS、过短切换开销放大,如何折中?

A 退化为 FCFS,响应时间变差
B 进程饥饿
C 上下文切换开销占比增大,吞吐下降 ✓ 正确答案
D 无法实现抢占
#

7. 周转时间、带权周转时间、响应时间、等待时间四个调度指标的计算与适用场景?请用一组进程实例演算。

A 0
B 1 ✓ 正确答案
C 2
D 服务时间
#

8. 抢占式/非抢占式、时间片轮转、多级反馈队列(MLFQ)在真实 OS 中的体现?

A 非抢占式调度
B 仅 FCFS
C 抢占式调度(通过时钟中断强制切换) ✓ 正确答案
D 仅 SJF
#

9. 实时调度(SCHED_FIFO/RR/DEADLINE)与普通调度的优先级映射与风险(饥饿/锁死)?

A 实时任务被饿死
B 没有任何影响
C 实时任务自动降级
D 饿死普通任务,甚至导致系统无响应 ✓ 正确答案
#

10. 调度算法对比,FCFS/SJF/RR/多级反馈队列如何选择?

A FCFS
B SJF
C 多级反馈队列 MLFQ ✓ 正确答案
D 时间片轮转 RR
#

11. 多级反馈队列(MLFQ),优先级老化与时间片如何设计?

A 高队列时间片更短
B 只调度高队列
C 时间片用尽不降级
D 周期性把所有进程提升到最高优先级队列(老化) ✓ 正确答案
#

12. Linux nice 值(-20 到 19)如何映射为 CFS 权重,为什么 nice 差 1 不等于固定百分比?

A 因为 nice 值不影响调度
B 因为 CFS 不使用权重
C 因为 nice 值范围是 0~100
D 因为 nice 映射为相对权重,实际 CPU 比例取决于各进程权重之和 ✓ 正确答案
#

13. CFS 的调度周期与最小粒度,sched_min_granularity 与 sched_latency 如何影响交互性与吞吐?

A 保持 sched_latency 不变
B 缩短到最小粒度
C 被拉长为 nr_running × sched_min_granularity ✓ 正确答案
D 变为 0
#

14. 抢占式与非抢占式调度的差异及各自典型算法?

A 时间片轮转 RR
B FCFS ✓ 正确答案
C SRTF
D 多级反馈队列
#

15. 调度的公平性,CFS 的虚拟运行时间与权重如何计算?

A 越快
B 与权重无关
C 不变
D 越慢 ✓ 正确答案
#

16. Linux EEVDF 调度器,EEVDF 如何取代 CFS,其虚拟时间与延迟目标(sched_latency)的设计动机如何?

A 用虚拟截止时间(最早虚拟截止时间优先)更精确地控制每个进程的调度延迟 ✓ 正确答案
B 引入优先级队列
C 取消权重
D 改回时间片轮转
#

17. 组调度(cgroup CPU),如何用 cpu.shares/cpu.max 对容器进行 CPU 分配与带宽限制,与 CFS 权重的关系如何?

A 设置组间相对权重
B 关闭 CPU 调度
C 提高进程优先级
D 硬性限制该组最多可用的 CPU 带宽 ✓ 正确答案
#

18. 处理器亲和性,sched_setaffinity 如何提升缓存命中与降低迁移开销,何时不该设置亲和性?

A 减少迁移,提升缓存/TLB 命中率 ✓ 正确答案
B 提升负载均衡能力
C 增加可并行任务数
D 降低线程创建成本
#

19. 调度切换开销的构成,上下文切换的寄存器保存/缓存失效/TLB 失效,如何评估与优化切换频率?

A 寄存器保存
B 进程号分配
C 内核栈分配
D 缓存与 TLB 失效 ✓ 正确答案
#

20. 负载均衡与迁移,wakeup 迁移、周期负载均衡与 NUMA 感知如何配合?

A 将任务与内存放在同一节点,减少跨节点访问延迟 ✓ 正确答案
B 减少上下文切换
C 提高优先级的实时性
D 增加可处理任务数