Linux内核使用哪些调度算法?

时间:2009-10-21 20:18:17

标签: linux scheduling operating-system

Linux内核使用哪些调度算法?

在哪里可以获得有关linux内核的更多信息? (OS第一门课程......学生水平)

8 个答案:

答案 0 :(得分:7)

Linux内核为进程调度和I / O调度提供了几种不同的可用调度算法。从www.kernel.org下载并致电

make menuconfig

您将获得内置帮助的所有可用选项的完整列表。 曾经提出过他的O(1)调度程序的人是Con Kolivas。最后必须看看他做了什么。我曾经是一次伟大的突破。

答案 1 :(得分:5)

如果您只想检查您的Linux系统正在使用哪些调度程序以及哪些可用,您可以运行以下命令:

cat /sys/block/sda/queue/scheduler

[]之间的那个是它目前正在使用的那个。其他的可用。 改变它:

sudo bash -c 'echo deadline > /sys/block/sda/queue/scheduler'

小心将其设置回默认值,除非你知道自己在做什么和想做什么。

默认(至少在较新的Ubuntu发行版中)是CFQ(完全公平调度):

http://en.wikipedia.org/wiki/CFQ

采访创作者(Jens Axboe):

http://kerneltrap.org/node/7637

答案 2 :(得分:2)

正如其他人已经提到的,根据预期用途,有几种可用的调度算法。

如果您想了解有关在Linux中安排的更多信息,请查看this article

答案 3 :(得分:1)

我相信“完全公平的调度程序”正在使用最新的内核。如果您只是在谷歌搜索它,我认为您可以提供大量信息。

link:http://en.wikipedia.org/wiki/Completely_Fair_Scheduler

答案 4 :(得分:1)

Linux Kernel的新增功能是EDF(Earliest Deadline First),可以保证实时支持 http://lkml.org/lkml/2009/9/22/186 http://www.evidence.eu.com/content/view/313/390/

答案 5 :(得分:0)

我认为Linux内核实际上有一些不同的调度程序,你可以在编译时选择它们。要了解有关Linux内核的更多信息,可以下载内核源代码(或在线浏览)并查看Documentation目录。例如,scheduler子目录可能会有所帮助。你也可以看一下代码本身。

答案 6 :(得分:0)

Linux内核主要允许三种不同的调度算法

  1. 最短的工作
  2. 循环调度
  3. 基于优先级的抢占式调度算法。
  4. 第三种调度方法,它与较低版本的Linux版本(如2.4

    )不同

答案 7 :(得分:0)

现代GNU / Linux发行版使用CFS(完全公平的调度程序)。您可以在本书的第4章中阅读更多相关内容: Linux Kernel Development 3rd Edition by Robert Love

在那里您会发现许多有趣且易于理解的解释。我很享受。