0

来自:https ://mail.rtai.org/pipermail/rtai/2012-April/024968.html

将会发生的情况是,当 Linux 发出真正的实时 RTAI 任务信号时,您将在未定义的时间段内失去实时。

RTAI 通常不支持 POSIX API。
那么,当 POSIX 实时信号发送到 RTAI 的实时任务时,控制权会转移到用户空间吗?但我认为,由于 POSIX 信号也是实时信号,它们可以写入内核模块(?).. 那么怎么能说它会导致软实时呢?

我不太确定引用的原因,请解释我遗漏的一点。

4

1 回答 1

0

首先,控件转移到用户空间是什么意思?如果你的任务在内核空间,它永远不会转移到用户空间。如果它在用户空间中,那么它已经存在了!

在 RTAI 中,您有硬实时任务、软实时任务和 Linux 内核。任务由 RTAI 或 Linux 内核调度。RTAI 确保实时行为,因此诸如截止日期和期限等内容与 RTAI 一起使用。然而,Linux 不理解这些,也不在乎。

现在,只要您的代码与 RTAI 一起工作,一切都很好。如果你调用任何需要由 Linux 内核完成的事情,你就会失去实时性,因为 Linux 内核被 RTAI 调度为一个非实时进程。所以经验法则是,任何通过 Linux 的东西都是不好的。

如果您收到来自 Linux 的信号,则该过程的一部分由 Linux 内核处理,更不用说信号处理程序在 Linux 上下文中运行并且中断被禁用。这意味着您完全脱离了实时环境,而 RTAI 无法控制情况。因此存在实时性的危险。

于 2012-05-03T11:02:57.740 回答