我已经编写了测试程序来测试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%.