【发布时间】:2016-01-17 14:31:43
【问题描述】:
有两个进程(P-A 和 P-B)在同一个 CPU 内核上运行。进程 B 是多线程的。我希望进程 A 在每 2 微秒后被进程 B 的线程抢占一次。
是否可以在固定的时间间隔(以微秒为单位)后编写定时器中断(或其他任何东西)来抢占进程 A?
【问题讨论】:
-
在用户空间程序中?
-
是的,丹尼尔。正如@Chris 所建议的那样,我本可以使用警报(),但我想避免使用信号机制,因为它本身至少需要 1-2 微秒。没有信号也可以吗?
-
Linux 本身并未针对此用例进行优化。但是有些项目在内核中实现了这种技术(实时又名 RT)。如果没有修改过的内核,我不相信你有比警报更好的东西。在谷歌上搜索“linux real-time”发现以下内容:RTLinux、RTAI、LibeRTOS、Xenomai
-
@Scissor,您可以在现在支持高分辨率计时器的内核空间中执行此操作。
标签: linux-kernel scheduling preemption