# 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 实现优先级继承,阻塞高优先级任务的持锁者临时提升优先级 ✓ 正确答案