标签: linux real-time round-robin periodic-task
在运行Linux的繁忙单核ARM系统中,我每隔10毫秒便会分配一个定期线程(一个简单的while循环,其中包含usleep)。它通常可以很好地工作,直到有繁重的任务偶尔使频率降低一小段时间。仍然,我希望频率在100%的时间内为〜100 Hz,因此我将相关线程的调度属性更改为SCHED_RR或SCHED_FIFO,因为只有这些是实时的。结果相反:调度粒度以不规则的方式减小,使线程完全不可用。
while
usleep
您能解释一下吗?对于单核系统上的高频周期性任务,RR或FIFO是否过于严格?