CoLab 2026:构建你自己的多核调度器
操作系统每秒做出数百万次调度决策。在这个实验中,你将实现自己的多核调度策略,并在公开的 benchmark 上与同学们一较高下。
仓库地址:https://github.com/RUCICS/CoLab-2026
调度器接口
你需要实现 student/scheduler.h 和 student/scheduler.cc 中的调度策略。
| 接口 | 决策 |
|---|---|
select_worker | 一个新就绪的 task 应该放到哪个 worker 的队列上? |
pick_next | 当前 worker 接下来应该运行队列中的哪个 task? |
on_tick | 时钟中断到来时,是否应该抢占当前正在运行的 task? |
should_preempt | 一个 task 刚被唤醒,是否应该立刻抢占当前 worker? |
steal | 当前 worker 空闲了,能否从别的 worker 偷一个 task? |
三条赛道
- Throughput(吞吐量) — 尽快完成所有任务
- Latency(延迟) — 降低交互型任务的响应延迟
- Fairness(公平性) — 让不同权重的任务按比例获得 CPU 时间
你只需选择一条赛道参加。