SCHED_FIFO线程被Linux中的SCHED_OTHER线程抢占

前端之家收集整理的这篇文章主要介绍了SCHED_FIFO线程被Linux中的SCHED_OTHER线程抢占前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我已经编写了测试程序来测试SCHED_FIFO.我了解到SCHED_FIFO线程无法抢占SCHED_FIFO.但我无法解释同一个程序多次运行时获得的结果.

/* Includes */
#include dio.h>      /* Input/Output */
#include 

我在多次运行中得到了意想不到的结果,我看到SCHED_FIFO被SCHED_OTHER线程抢占,即按程序,线程2处于FIFO模式,而线程1处于SCHED_OTHER模式.我已经多次看到thread2被thread1抢占了.

有人可以帮助我找到问题吗?

最佳答案
您可能有效的这些sysctl设置,它们是默认值:

kernel.sched_rt_period_us = 1000000
kernel.sched_rt_runtime_us = 950000

这意味着允许实时线程每1秒钟仅占95%.

另见:Can’t provoke Priority Inversion in C++

猜你在找的Linux相关文章