什么是无滴答的操作系统?

Nat*_*man 25 operating-system

我听说过"Tickless OS"这个词.

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

And*_*ett 24

操作系统术语中的"勾号"是操作系统将唤醒以处理任何待处理事件的间隔.

所以,如果你有一个100Hz的滴答,那么每秒100次,操作系统会唤醒,检查是否有任何定时器已经过期,如果有,则执行他们的操作,然后再次进入睡眠状态.在无滴答系统上,操作系统将查看下一个计时器何时到期,然后再睡眠直到该时间,而不是每秒唤醒100次以查看是否有任何准备好处理.

请注意,当CPU处于活动状态时,显然不会进入任何类型的睡眠模式,并且内核将设置中断以进行调度.当只有一个进程正在运行时,CPU上或(在非常现代的Linux内核中)没有任何运行时,它只是无所事事(正如评论所指出的那样).

Linux可以使用或不使用ticks运行,使用编译时开关.我不知道任何其他系统.

  • 这实际上是错误的.我认为无滴答意味着起初也是如此.然而,今天不存在无滴答内核.它们是"完全动态的滴答",这意味着当有0或1个任务运行时,它们的周期性计时器会停用,但在其余时间它仍然存在.(在内核2.16.18和3.0.x之间,NO_HZ选项仅在0任务正在运行时取消激活,3.1为完全dyn.) (2认同)
  • @v.oddou:请注意,刻度 *必须* 在其他时间存在,因为 (a) 操作系统不知道程序何时可能需要知道当前时间,以及 (b) 当程序这样做时,它必须能够非常有效地进行粗略估计(例如在内存访问中)。这意味着操作系统本质上*必须*定期更新给定的内存位置,让程序快速读取它;否则查询当前时间将变得非常低效。 (2认同)

Nic*_*kis 11

此链接提供了一些见解:避免处理器唤醒功能节省电力

来自上述链接的片段,

为了充分利用最新处理器提供的低功耗状态,操作系统必须允许处理器尽可能地保持这些状态.Linux*操作系统的一个长期特性是计时器,它支持诸如帮助操作系统保持内部时间和监视各种应用程序和进程的CPU使用率等服务.

虽然该计时器滴答是有用的,但它还具有令人遗憾的副作用,当处理器处于低功率状态时,唤醒处理器每秒多达1,000次.实际上,在某些情况下,滴答可以防止处理器完全进入深度节能状态.显然,这种影响会对系统的电力使用产生巨大的负面影响.