【问题标题】:Thread scheduling priority and niceness线程调度优先级和niceness
【发布时间】:2013-11-05 09:59:29
【问题描述】:

在 GNU/Linux 下,niceness 表示线程调度的优先级。最低的友好度对应最高的优先级。

仅考虑基于优先级的调度程序(无时间片),是否有人知道广泛的操作系统实现,其中行为会有所不同,即最高优先级对应于最高优先级?

【问题讨论】:

  • nice 的理念是对其他进程友好,因此较高的值意味着该进程对其他人更好(让他们更多地使用 CPU)。因此,如果“最高的niceness对应于最高的优先级”,它可能不会被称为niceness ;-)
  • 我用“niceness”这个词来表示操作系统用来管理调度优先级的数值,然后不要把它与优先级的意图混为一谈。但我同意,这不会很好:)

标签: multithreading real-time scheduling


【解决方案1】:

“优先级”的一个问题是它的语义在实践中是超载的。形式上,它是一种具有最小语义的机制,它会引发未解释的偏序。因此,调度资格可以用从大到小的优先级整数表示,被解释为从多到少的合格,或以相反的顺序。但是不同的系统和用户使用具有几种不同附加更丰富语义的优先级机制。在某些情况下,优先级被解释为紧迫性。在其他一些情况下,它被解释为相对重要性。它甚至偶尔用于建立优先级。您的问题意味着将优先级与 GNU/Linux “niceness”的语义相关联。您问是否有人知道具有反向语义的广泛使用的操作系统。正如其他回复所指出的,这将使优先级具有“不友好”的语义。严格来说,这与让基于友好的优先级“倒退”工作不同。所以你的问题是不正确的。我不知道有任何操作系统具有良好的语义并以不好的顺序分配优先级。您可能一直在考虑是否存在调度资格与优先级整数成反比的广泛的操作系统——答案是“是的”。但请注意,这也不是一个格式正确的问题:根据定义(诚然没有被广泛理解)调度资格与未解释的优先级本身相同,除非在“优先级”中添加了额外的语义。例如,如果将优先级指定为 8 位整数,则调度资格的语义可以是更大的优先级对应于更大的资格,或者较小的优先级对应于更大的资格——每个选项都已被不同的操作系统选择。

【讨论】:

  • 你的回答的神奇之处在于,你准确地确定了我真正的问题到底是什么。而且,确实,你回答得很好;)
猜你喜欢
  • 1970-01-01
  • 2012-07-10
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
  • 2011-08-08
  • 1970-01-01
  • 2012-12-13
  • 2011-06-25
相关资源
最近更新 更多