Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
FreeBSD调度程序和Linux调度程序的区别_Linux_Linux Kernel - Fatal编程技术网

FreeBSD调度程序和Linux调度程序的区别

FreeBSD调度程序和Linux调度程序的区别,linux,linux-kernel,Linux,Linux Kernel,FreeBSD调度程序和Linux调度程序之间有什么区别 有几个可用的调度程序。这个答案假设默认的调度器:CFS(Linux)和ULE(FreeBSD) 是完全公平调度程序的缩写。最显著的区别是CFS不是基于进程选择的运行队列。相反,它使用了一个具有O(logn)复杂度的红黑树,该复杂度由所花费的CPU时间索引 另一个值得注意的细节是CFS使用纳秒来计算时间。发件人: CFS使用纳秒级粒度计算,不依赖任何 jiffies或其他详细信息。因此,CFS调度程序没有 “时间片”,没有任何启发法。只有一

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无关。也许把这个问题贴在上面更合适。