FreeBSD调度程序和Linux调度程序的区别
FreeBSD调度程序和Linux调度程序之间有什么区别 有几个可用的调度程序。这个答案假设默认的调度器:CFS(Linux)和ULE(FreeBSD) 是完全公平调度程序的缩写。最显著的区别是CFS不是基于进程选择的运行队列。相反,它使用了一个具有O(logn)复杂度的红黑树,该复杂度由所花费的CPU时间索引 另一个值得注意的细节是CFS使用纳秒来计算时间。发件人: CFS使用纳秒级粒度计算,不依赖任何 jiffies或其他详细信息。因此,CFS调度程序没有 “时间片”,没有任何启发法。只有一个 中央可调:FreeBSD调度程序和Linux调度程序的区别,linux,linux-kernel,Linux,Linux Kernel,FreeBSD调度程序和Linux调度程序之间有什么区别 有几个可用的调度程序。这个答案假设默认的调度器:CFS(Linux)和ULE(FreeBSD) 是完全公平调度程序的缩写。最显著的区别是CFS不是基于进程选择的运行队列。相反,它使用了一个具有O(logn)复杂度的红黑树,该复杂度由所花费的CPU时间索引 另一个值得注意的细节是CFS使用纳秒来计算时间。发件人: CFS使用纳秒级粒度计算,不依赖任何 jiffies或其他详细信息。因此,CFS调度程序没有 “时间片”,没有任何启发法。只有一
/proc/sys/kernel/sched_granularity_ns
可用于从“桌面”(低)调整调度程序
延迟)到“服务器”(良好的批处理)工作负载。它默认为
适用于桌面工作负载的设置。SCHED_批次由
CFS调度程序模块也是
是传统BSD调度程序的继承者。它在SMP系统和单处理器系统上提供了更高的性能。它遵循更传统的设计,使用运行队列和时间片。它努力做到公平,但可以指导它支持交互过程
以下是作者在研究CFS来源时的一些发现。在评论中,他们还讨论了CFS调度程序中算法的复杂性(这一点一直备受争议)
这两个调度器都适合桌面使用。通过kern.sched.interact
set,ULE支持交互过程。没有它,CFS和ULE应该同样公平
ULE的代码行数约为3000行,而CFS的代码行数接近这一行的两倍。这与StackOverflow无关。也许把这个问题贴在上面更合适。