0

据我了解,在现代 Linux 上,期限调度程序是使用恒定带宽服务器 (CBS) 和最早期限优先 (EDF) 实现的。假设我使用 cpuset 为 12 个 CPU 中的 6 个分配了 X 个进程。假设 6 个 CPU 上没有运行其他重要进程。在这种情况下,我觉得在所有 X 进程(具有默认预算和周期)上使用 SCHED_DEADLINE 与仅使用正常的完全公平调度程序没有区别,因为两者都会导致所有 X 进程运行相同的 CPU 时间。我的理解正确吗?

4

1 回答 1

1

至少有2个区别:

  • SCHED_DEADLINE 任务抢占任何其他任务,只要它们没有被阻塞并且运行时没有耗尽。
  • SCHED_DEADLINE 任务在运行时耗尽时会受到限制,即使它们没有被阻塞并且系统处于空闲状态。

进一步说明:从内核 4.13 开始,CBS 算法已被 GRUB 取代,GRUB 也支持带宽回收。

于 2018-03-29T12:59:48.907 回答