我在 ARMv7 嵌入式 OMAP 系统上有以下配置。sched_rt_period_us = 1000000 = 1 秒 sched_rt_runtime_us = 950000 = 0.95 秒
我有 4 个实时进程运行 SCHED_RR 和 pri = 1 并且 sched_rr_get_interval () 返回 93750000 纳秒,即系统上的 0.093750 秒。
我添加了一个新进程,SCHED_RR 和 pri 为 1,默认 rr_interval 为 0.09375 秒。
根据此配置:每秒 5 个 RT 进程必须每次执行 2 次(0.09375 * 10 = 0.9375 秒),其余 1 秒的时间间隔将由非 RT 任务使用,即 1.0 - 0.9375 = 0.0625 秒.
但正如我从执行中看到的那样,第 5 个新添加的任务错过了时间线,并且仅随机执行并且每 1 秒或不确定地产生输出。请帮助我了解如何使这个新进程具有确定性,以便它按照上述配置每秒执行两次。
我尝试将静态 pri 配置为 2,并使用 SCHED_FIFO 进行了检查,但得到了相同的结果。
或者我在这些计算中遗漏了什么。
我正在使用:Linux xxxx 2.6.33 #2 PREEMPT Tue Aug 14 16:13:05 CEST 2012 armv7l GNU/Linux