【发布时间】:2012-11-13 21:26:20
【问题描述】:
我的进程中需要一个线程每 5 毫秒(精确)唤醒一次并做一些工作。
我使用过 posix 计时器,它们似乎准确率为 90%,当 cpu 有点负载时,准确度会进一步降低。
我相信这是因为 posix 计时器必须在每次到期时分叉新线程。
是否有其他可靠的方法可以在 linux 中实现高分辨率计时器,并且增加线程的优先级会有所帮助吗?
我在 CentOS 5.6 上。
【问题讨论】:
-
Linux 不是实时内核。不,用户空间不能这样做。
-
您需要一个实时操作系统 (RTOS)。
-
如果您解释为什么需要这个,也许我们可以建议替代方案。
-
@Thomas 我正在开发一个调度程序,它需要每个间隔(5 毫秒)分配带宽
-
不确定您所说的“分配带宽”是什么意思。如果是用于填充令牌桶之类的事情,您只需检查下一次访问该桶时经过了多少时间,然后“及时”重新填充。
标签: linux linux-kernel posix