不是忙着等吗

  • 本文关键字: linux timer no-op
  • 更新时间 :
  • 英文 :


我想实现非繁忙等待机制,以便在linux内核模块中创建以纳秒为单位的延迟。

现在我在看的功能

ndelay(ns);

但是https://www.kernel.org/doc/Documentation/timers/timers-howto.txt

这里提到ndelay函数是一种繁忙等待机制。

但我想要非繁忙的等待延迟。因此,我正在考虑linux内核模块中的nop,如下所示:

asm volatile ("nop");

我研究过nop需要一个周期才能执行。因此,我将实现嵌套的nop,以获得所需的延迟。我的问题是

通过使用nop,我会以非繁忙等待的方式实现以纳秒为单位的延迟吗?谁能证实一下吗?此外,参考一些期刊和资源也会有所帮助。

顾名思义,"NOP"是一种不会修改机器状态的操作,但这并不意味着处理器在执行NOP时处于空闲或"非繁忙"状态。与任何其他指令一样,NOP在执行时仍然会占用处理器的一些资源。

显然,现代超级流水线处理器很复杂,通常会同时执行许多操作,因此NOP可能会比分支、字符串比较或浮点运算等更复杂的操作使用更少的资源,但假设NOP像你说的那样不忙是不安全的。

相关内容

  • 没有找到相关文章

最新更新