实时操作系统:PREEMPT_RT Linux 与 QNX 等

问题描述 投票:0回答:1

我对使用 RT 补丁的 Linux 与本机 RT 操作系统和应用程序有很多疑问。请回答他们,因为关于 RT 应用程序的信息很少,不幸的是..

您能否解释一下 PREEMPT_RT 使带有用户应用程序的 Linux 成为硬实时系统还是软/硬实时系统? (硬实时、软实时、硬实时的区别?

  1. 如果是真的(硬实时系统),需要满足什么条件才能符合这些要求?据我所知(如有错误,请指正),使用PREEMPT_RT实时调用linux系统需要满足以下条件:
    • 所有系统驱动程序都应重构以符合实时要求。
    • 用户应用程序必须运行在不同的CPU核心上
    • 必须重构用户应用程序以符合实时要求。

这是真的吗?而如果满足了这些条件,这个系统能称为硬实时吗? PREEMPT_RT是否也提供了符合实时要求的所需驱动程序(以太网等),或者只是用户必须自己重构它们?

2.如果是硬实时系统,与QNX等经典实时系统相比有何优缺点? QNX 的中断反应时间或抖动可能更短吗?为什么没有人(据我所知)在飞机或太空应用等关键应用中使用 PREEMPT_RT?可能是因为某种惰性,或者可能是 RT Linux 不适合这些应用程序?

但是,另一方面,Linux 比传统的实时操作系统支持更多的 CPU 架构。与 QNX 相比,找到熟练的 Linux 开发人员要容易得多。

谢谢你。

linux real-time qnx preempt-rt hard-real-time
1个回答
0
投票

PREEMPT_RT 不会使您的 Linux 成为硬实时,它只是减少其他阻塞操作的延迟。

然而,即使在未打补丁的 Linux 上,如果您隔离 CPU 核心,在内核引导行中设置

isolcpus=... nohz_full=... rcu_nocbs=...
,将实时进程绑定到该核心并设置任何实时进程,您也可以实现硬实时性能。时间调度策略(只是为了提示内核),您将获得一个永远不会被内核或任何硬件中断中断的裸机进程。现在,您需要以硬实时方式编写代码 - 即,确保所有操作都是可预测的,确保不使用任何系统调用,确保预分配和固定所有内存等。

不是操作系统让你的系统变得硬实时,而是你的用户空间代码负责。

Linux(甚至未打补丁)广泛应用于硬实时应用,例如高频交易、机器人、航空航天、汽车。

© www.soinside.com 2019 - 2024. All rights reserved.