# 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 无法实现抢占
# 9. 实时调度(SCHED_FIFO/RR/DEADLINE)与普通调度的优先级映射与风险(饥饿/锁死)? 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
# 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 降低线程创建成本
# 20. 负载均衡与迁移,wakeup 迁移、周期负载均衡与 NUMA 感知如何配合? A 将任务与内存放在同一节点,减少跨节点访问延迟 ✓ 正确答案 B 减少上下文切换 C 提高优先级的实时性 D 增加可处理任务数