CoLab 2026:构建你自己的多核调度器

操作系统每秒做出数百万次调度决策。在这个实验中,你将实现自己的多核调度策略,并在公开的 benchmark 上与同学们一较高下。

仓库地址https://github.com/RUCICS/CoLab-2026

调度器接口

你需要实现 student/scheduler.hstudent/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 时间

你只需选择一条赛道参加。