任务频率的不同调度抖动

时间:2017-09-11 23:19:43

标签: c embedded posix qnx jitter

最近,我在Zynq-7000平台(ARM A9)上实施了QNX Neutrino RTOS,并测量了不带任何CPU负载的不同任务频率的调度抖动。 在我的测试中,我在MsgReceive函数中等待由计时器生成的脉冲。然后我从FPGA(100MHz)读取高频时钟。 我测量了10Hz,100Hz,1kHz,10kHz和100kHz任务的调度抖动,并得到了奇怪的结果。对于短期任务,我得到(-300,+ 300)纳秒的抖动,但是在更长的时间内我得到了以下内容:

  • 1kHz任务有(+ 600,+ 1300)纳秒抖动
  • 100Hz任务有(+ 8,+ 12)微秒(!)抖动
  • 10Hz任务有(+ 69,+ 71)微秒抖动

抖动不仅会对更长时间的任务变大,而且总是大于零。我没想到会有这样的差异。有人能提供一些这种行为的解释吗?可能由POSIX标准解释,它允许定时器过早过期但有开销?为什么它在长期任务中变得更加明显?

0 个答案:

没有答案