【问题标题】:what is a tickless OS?什么是无滴答操作系统?
【发布时间】:2010-11-18 21:33:30
【问题描述】:

我听说过“Tickless OS”这个词。

  • 这是什么意思?
  • 哪些操作系统是无滴答的?
  • 它与非无滴答(滴答?)操作系统有何不同?

【问题讨论】:

  • tickless -> 自 2006 年以来的 windows 8 和 linux。它通过让 CPU 长时间进入 C7 深度睡眠状态来帮助节省电池电量。
  • 在 Quora quora.com/Operating-Systems/What-is-a-tickless-kernel 上也可以找到惊人的答案
  • 这是一个不会被挠痒痒的操作系统。
  • @nick:那不是一个无痒的操作系统吗?
  • @NathanFellman 也许,但它没有相同的戒指 :)

标签: operating-system


【解决方案1】:

操作系统术语中的“滴答”是指操作系统将唤醒以处理任何未决事件的时间间隔。

因此,如果您有 100Hz 的滴答声,那么每秒 100 次,操作系统将唤醒,检查是否有任何计时器已过期,如果有则执行它们的操作,然后再次进入睡眠状态。在无滴答声的系统上,操作系统不会每秒唤醒 100 次以查看是否有任何东西可以处理,而是会查看下一个计时器何时到期,然后休眠直到那个时间。

请注意,当 CPU 处于活动状态时,它显然不会进入任何类型的睡眠模式,内核会设置一个中断用于调度目的。只有当 CPU 上没有任何东西在运行或(在非常现代的 Linux 内核中)只有一个进程在运行时,它才会滴答作响(正如评论所指出的)。

Linux 可以在有或没有刻度的情况下运行,带有编译时开关。其他系统我不知道。

【讨论】:

  • 这实际上是错误的。我一开始也以为tickless也是这个意思。然而,今天不存在无滴答内核。它们是“完全动态滴答”,这仅意味着它们的周期性计时器在有 0 或 1 个任务运行时停用,但在其余时间它仍然存在。 (在内核 2.16.18 和 3.0.x 之间,NO_HZ 选项仅在 0 任务运行时才停用滴答声,3.1 是满 dyn。)
  • @v.oddou,我添加了一些澄清文字。我试图谈论没有进程执行但不是很清楚的情况。
  • 好的澄清。关于其他系统:我听说 Windows 8 是“tickless”,我没有读过关于内部的书,所以我不确定 MS 实现的“tickless”是否与 linux 相同。
  • @v.oddou:请注意,刻度必须在其他时间存在,因为(a)操作系统不知道程序何时可能要求知道当前时间, (b) 当一个程序这样做时,它必须能够非常有效地得到一个粗略的估计(就像在内存访问中一样)。这意味着操作系统本质上必须定期更新给定的内存位置以让程序快速读取它;否则查询当前时间会变得非常低效。
  • 有点类似于轮询和中断。或者忙于检查和事件驱动。
【解决方案2】:

此链接提供了一些见解:Avoiding Processor Wake-Ups Saves Power

来自上述链接的片段,

为了充分利用 最新提供的低功耗状态 处理器,操作系统有 让处理器留在 这些状态尽可能。一种 Linux* 的长期特性 操作系统一直是计时器滴答 支持服务,如帮助 操作系统保持内部 通过各种时间和监控 CPU 使用情况 应用程序和流程。

虽然计时器滴答很有用,但它 也有不幸的副作用 唤醒处理器时 低功耗状态多达 1,000 每秒次。事实上,在一些 情况下,蜱虫可以防止 处理器从进入深处 完全省电的状态。清楚地, 这种效果会产生戏剧性的 对用电的负面影响 系统。

【讨论】:

  • 链接已过期
【解决方案3】:

RIOT(基于微内核架构)有无滴答调度器。欲了解更多信息,请查看以下链接: https://riot-os.org/api/group__core__sched.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    • 2021-07-06
    • 2011-11-17
    • 1970-01-01
    相关资源
    最近更新 更多