出于某种原因,我想让 10 个进程通过亲和力共享同一个 CPU 核心。
如您所知,为了实现进程之间的CPU共享,我们可以利用Linux循环(RR)调度策略。
对于Linux内核3.9及更高版本,可以通过更改文件来设置RR调度间隔/proc/sys/kernle/sched_rr_timeslice_ms
。 RR调度间隔默认为100ms。
我的问题是:
我希望RR调度间隔为100μs,即一个进程执行100μs,然后执行另一个进程。但我未能将 的值设置
/proc/sys/kernle/sched_rr_timeslice_ms
为小于 1ms。我想知道当前Linux内核支持的最小RR调度间隔是否为1ms。有谁知道 Windriver Linux 支持的最小 RR 调度间隔是多少?由于Windriver Linux广泛应用于嵌入式系统,对操作系统的实时性要求较高。
我想知道是否可以使用互斥锁让所有 10 个进程在 1 毫秒内至少执行一次。也就是说,一个进程执行100μs,然后解锁互斥锁,以便另一个进程可以锁定并执行。这个机制有效吗?
如果上面的方法不行的话,把10个进程改成10个线程怎么办?有没有高效的线程切换机制?