【问题标题】:What scheduling algorithms does Linux kernel use?Linux 内核使用哪些调度算法?
【发布时间】:2010-12-08 20:50:47
【问题描述】:

Linux 内核使用什么调度算法?

我在哪里可以获得有关 linux 内核的更多信息? (操作系统第一门课程...学生级别)

【问题讨论】:

  • 你的意思是“Linux内核使用的调度算法”吗?
  • mm 也许,我的英语不好。我的意思是,FCFS、循环或使用 linux 内核来处理进程。
  • 有点老了,但请尝试阅读this page。 (这以前是作为一个单独的答案发布的,得到了​​ 4 个赞。不幸的是,似乎该网站对这些有用答案的政策,即使是那些已经帮助了人们 7 年的答案,也应该删除它们...)

标签: linux scheduling operating-system


【解决方案1】:

注意:正如 Abdullah Shahin 所说,这个答案是关于 IO 队列调度程序,而不是进程。

如果您只想检查您的 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

【讨论】:

  • 为了记录,这是一个完全误导性的答案,应该在答案中包含这是一个 io 排队调度程序,而不是用于进程,在使用 SSD 的系统中,这根本不会启用, 会在指定文件中显示 [none]。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    1. 最短作业优先
    2. 循环调度
    3. 基于优先级的抢占式调度算法。

    与Linux 2.4等低版本不同的第三种调度方式

    【讨论】:

    • 在事先不知道工作时间的情况下如何进行 SJF?
    • @pinkpanther 它观察他们过去的行为并相应地在优先级队列中上下移动。
    • 答案很基础。您需要更好地了解最新内核版本并详细研究
    【解决方案4】:

    Linux 内核的新增功能是 EDF(最早截止日期优先),以保证实时支持 http://lkml.org/lkml/2009/9/22/186 http://www.evidence.eu.com/content/view/313/390/

    【讨论】:

      【解决方案5】:

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

      如果您想了解有关 Linux 调度的更多信息,请查看this article

      【讨论】:

        【解决方案6】:

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

        【讨论】:

        • IO调度器有不同的算法。进程调度程序没有。
        【解决方案7】:

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

        make menuconfig
        

        您将获得包含内置帮助的所有可用选项的完整列表。 曾经想出他的 O(1) 调度程序的人是Con Kolivas。肯定得看看他做了什么。我曾经是一个伟大的突破者。

        【讨论】:

        • 如果您能在menuconfig中提及可以找到调度程序的类别,那就太好了。
        【解决方案8】:

        我相信“完全公平的调度程序”正在与最新的内核一起使用。我认为如果您只是在 google 中搜索,您可以获得大量信息。

        链接:http://en.wikipedia.org/wiki/Completely_Fair_Scheduler

        【讨论】:

          猜你喜欢
          • 2012-05-22
          • 2014-01-04
          • 2011-01-14
          • 1970-01-01
          • 1970-01-01
          • 2011-09-11
          • 2012-11-13
          • 2018-03-19
          • 2013-07-14
          相关资源
          最近更新 更多