在GNU/Linux机器上,如果想要做"实时"(亚毫秒时间关键)任务,你几乎总是必须经历修补内核的冗长,复杂且容易出错的过程以获得足够的支持[ 1] [2].
最大的问题是,许多实时任务最有用的系统没有基本的硬件要求甚至不允许这些补丁工作,即高分辨率定时器外设.或者如果他们这样做,则它是特定于硬件的,因此需要根据具体情况在补丁中具体实现.即使CPU /指令时钟速率足够快以提供所需的时间粒度然后一些,这也是如此.
所以,我的问题是,什么是最好的第二位方式/技巧,以尽可能接近上述实时目标?人们可以简单地在应用程序源代码中执行的操作,而无需深入了解底层硬件或太多"内核黑客".
提升流程优先级,为"关键"任务启动额外的线程,以及(在C中)使用nanosleep()的变体是迄今为止我提出的最佳答案/技巧.我希望能找到更多.