进程调度与 EEVDF

共 18 题
#

1. CFS 的"调度延迟"(sched_latency)与"最小粒度"(sched_min_granularity)的工程取舍

A sched_latency 是单个任务的最小运行时间片,固定不变
B sched_min_granularity 必须大于 sched_latency
C 增大 sched_latency 一定提高交互式任务的响应速度
D 当可运行任务很多时,每个任务实际分到的时间片可能被限制为 sched_min_granularity ✓ 正确答案
#

2. EEVDF 的 eligible time、virtual deadline、lag、virtual time 概念

A lag > 0 表示任务相对公平份额超前,其超额服务会被回收用于公平调度 ✓ 正确答案
B lag 表示任务占据的物理内存大小
C lag 与任务权重无关
D lag 是衡量系统负载的指标
#

3. SCHED_DEADLINE 的 CBS(Constant Bandwidth Server)与任务截止时间保证

A 任务运行超过 runtime 后仍可无限占用 CPU 而不影响其他任务
B CBS 通过预算充值机制隔离任务,保证任务超时后不影响其他实时任务的截止时间 ✓ 正确答案
C SCHED_DEADLINE 任务的优先级固定不变
D CBS 只适用于普通非实时任务
#

4. cgroup v2 的 CPU bandwidth control(cpu.max、cpu.weight)与公平调度

A cpu.max 决定相对权重,cpu.weight 决定绝对上限
B cpu.weight 决定相对分配比例,cpu.max 决定绝对带宽上限,两者可同时生效 ✓ 正确答案
C 两者作用完全相同
D 设置 cpu.max 后 cpu.weight 自动失效
#

5. nice 值(-20 到 19)与 O(1) 调度器时代的优先级权重映射

A nice 值越大优先级越高
B nice 从 -20 到 19,数值越大优先级越低,每级权重约相差 1.25 倍 ✓ 正确答案
C nice 值只影响内存分配不影响调度
D nice 值范围是 0 到 100
#

6. 实时调度 SCHED_FIFO 与 SCHED_RR 的优先级抢占与时间片

A SCHED_FIFO 会为同优先级任务分配时间片轮转
B 两者完全相同
C SCHED_FIFO 优先级低于所有普通任务
D SCHED_RR 在 FIFO 基础上为同优先级任务增加时间片轮转 ✓ 正确答案
#

7. sched_setaffinity 的 CPU 亲和性与 NUMA 节点绑定

A sched_setaffinity 限制任务可运行的 CPU 集合,能提高缓存局部性,但内存分配需配合 NUMA 内存策略 ✓ 正确答案
B 设置 CPU 亲和性即可保证内存分配在本地 NUMA 节点
C 亲和性与 NUMA 无任何关系
D sched_setaffinity 只影响内存分配不影响 CPU 选择
#

8. 调度域(sched_domain)与多级缓存感知的负载均衡

A 负载均衡只在系统全局进行
B 调度域与 NUMA 无关
C 调度域只包含一个 CPU
D 调度域按 CPU 拓扑分层,均衡优先在就近层级进行以避免跨节点迁移代价 ✓ 正确答案
#

9. 调度统计(schedstats)与 perf sched 的延迟可视化

A 调度延迟只能通过内核源码分析
B schedstats 默认永久开启且无法关闭
C perf sched 只能记录无法分析
D perf sched latency 可以汇总每个任务的调度等待延迟分布 ✓ 正确答案
#

10. EEVDF(Earliest Eligible Virtual Deadline First)的引入动机,解决 CFS 在延迟敏感任务的不足

A 仅仅为了降低系统切换开销
B EEVDF 旨在解决 CFS 的 sleep 补偿取巧问题并改善延迟敏感任务响应 ✓ 正确答案
C EEVDF 完全放弃了公平调度
D EEVDF 与 CFS 没有任何关系
#

11. Linux 6.6 内核 EEVDF 的默认启用与 CFS 的对比

A EEVDF 与 CFS 在算法上完全相同
B EEVDF 在 6.6 成为默认公平调度器,并可通过 sched_eevdf=off 回退到旧 CFS ✓ 正确答案
C EEVDF 只影响实时任务
D EEVDF 无法关闭
#

12. sched_yield 的语义弱化,Linux 中 sched_yield 不让出给其他任务

A sched_yield 语义被弱化,主要让出给优先级更高的任务,不保证其他任务一定运行 ✓ 正确答案
B sched_yield 保证让出给系统中任意其他任务
C sched_yield 会阻塞当前进程
D sched_yield 只用于实时任务
#

13. EEVDF 在延迟敏感负载(音频、数据库)的实测收益

A EEVDF 能彻底消除所有调度延迟
B EEVDF 可降低音频、数据库等负载的调度等待与尾部延迟 ✓ 正确答案
C EEVDF 对延迟敏感负载毫无作用
D EEVDF 只提高吞吐降低延迟
#

14. Linux CFS(Completely Fair Scheduler)的红黑树与虚拟运行时间 vruntime

A CFS 选择红黑树中 vruntime 最大者运行
B CFS 使用数组而非红黑树
C 权重越大的任务 vruntime 增长越快
D CFS 用红黑树按 vruntime 排序,选择 vruntime 最小者运行实现公平 ✓ 正确答案
#

15. sched_setattr 的调度策略(policy)与属性(attribute)

A sched_setattr 只能设置普通任务的优先级
B sched_setattr 不支持实时策略
C sched_setattr 与 sched_setscheduler 完全等价
D sched_setattr 通过 sched_attr 结构体一次性设置策略与属性,并支持 SCHED_DEADLINE ✓ 正确答案
#

16. EEVDF 与 BORE(Burst-Oriented Response Enhancer)增强

A BORE 是独立于 EEVDF 的全新调度器
B BORE 是 Windows 的调度器
C BORE 只优化吞吐不优化延迟
D BORE 在 EEVDF 基础上通过 burst 感知动态调整任务优先级来改善交互响应 ✓ 正确答案
#

17. Idle task 与 NO_HZ 空闲负载均衡

A Idle task 的优先级最高
B Idle task 会运行用户程序
C NO_HZ 模式下 CPU 永远不进入空闲
D NO_HZ 模式下空闲 CPU 停止 tick,负载均衡由非空闲 CPU 通过 idle balancing 协助完成 ✓ 正确答案
#

18. 实时调度(RT)的优先级反转与 priority inheritance

A 优先级反转时高优先级任务会立即获得 CPU
B 优先级继承与锁无关
C 优先级反转只影响普通任务
D Linux 通过 rt_mutex 实现优先级继承,阻塞高优先级任务的持锁者临时提升优先级 ✓ 正确答案