【问题标题】:How to make CPU busy in 1 millisecond exactly?如何让 CPU 精确到 1 毫秒?
【发布时间】:2012-08-06 05:52:40
【问题描述】:

我想让 CPU 的核心在 1 毫秒内保持忙碌状态。它在做什么并不重要,例如,只做循环加操作。
在 Windows 中,在 C++ 中。
给我Linux的相关信息也很棒。

【问题讨论】:

  • 您确实意识到这并不总是可能的,对吧?尤其是当进程切换上下文时。
  • 如果你真的需要 1 毫秒那么你使用了错误的操作系统,使用 QNX(或其他一些实时操作系统)。
  • 可接受的错误级别是多少? 1ms +/- 20% 可以吗? “确切地”等待 1 毫秒在物理上毫无意义,因为一秒的实际长度仅在统计上定义。你愿意接受的错误越小,安排起来就越困难。

标签: c++ operating-system window


【解决方案1】:

您始终可以估计 CPU 上的繁忙工作(无用的循环会一遍又一遍地旋转并检查经过的时间,直到经过 1 毫秒)。问题在于,由于操作系统中实施的进程管理,您无法保证 1 毫秒的完整时间片。 CPU 计时器可以随时中断您的进程并执行另一个进程(在您的 1ms 窗口完成之前)。对于 Linux 和 Windows,同样适用。

【讨论】:

    猜你喜欢
    • 2020-03-01
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    相关资源
    最近更新 更多