Linux kernel 使用cpuset,在所有进程上使用截止时间调度器是否与使用普通完全公平调度器有效相同?

Linux kernel 使用cpuset,在所有进程上使用截止时间调度器是否与使用普通完全公平调度器有效相同?,linux-kernel,cpu,scheduler,sched-deadline,Linux Kernel,Cpu,Scheduler,Sched Deadline,据我所知,在现代Linux上,截止时间调度器是使用恒定带宽服务器(CBS)和最早截止时间优先(EDF)实现的。假设我使用cpuset为12个CPU中的6个分配了X个进程。假设6个CPU上没有其他重要进程运行。在这种情况下,我觉得在所有X进程上使用SCHED_DEADLINE(带有默认预算和周期)与只使用普通的完全公平调度程序没有区别,因为两者都会导致所有X进程运行相同的CPU时间。我的理解正确吗 至少有两个区别: SCHED_DEADLINE任务优先于任何其他任务,只要它们未被阻止且运行时未耗

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

至少有两个区别:

  • SCHED_DEADLINE任务优先于任何其他任务,只要它们未被阻止且运行时未耗尽
  • SCHED_DEADLINE任务在其运行时耗尽时会被限制,即使它们未被阻止且系统处于空闲状态
进一步说明:从内核4.13开始,CBS算法已经被GRUB所取代,GRUB也支持带宽回收