【发布时间】:2011-12-10 17:00:50
【问题描述】:
我听说 Windows/Linux 操作系统机器不是实时的。 我读过this article. 它列出了WindowsCE 是RTOS 之一。这让我有点困惑,因为我一直认为 WindowsCE 是用于移动或嵌入式设备的。
我需要一个 24/7 全天候运行的实时应用程序,并处理从每个快速移动对象到数据库的各种传感器的信号,并通过运行多种机器学习算法进行监控。
什么是适合此类应用程序的实时硬件和操作系统?开发环境是 MFC 或 Qt C++。我真的需要经验丰富的开发人员的意见。谢谢
【问题讨论】:
-
QNX 过去对我很有帮助。由于它仅用于培训目的(实时工业过程控制),因此我不会将其发布为答案。我认为 Qt 可以在 QNX 上编译,但我不确定 Qt 是否提供匹配您的实时约束所需的保证。
-
实时系统绝对不等于“嵌入式系统”,尽管嵌入式系统经常有实时限制。
-
实时系统的第一条规则是指定您的实时约束,例如“系统必须能够每分钟处理多达 600 个信号”或“系统不能花费更多每个信号超过 1/10 秒”(这些是不同的约束)。除非您指定这些约束,否则无法确定任何硬件/操作系统/库组合是否足够好。
-
如果您查看许多 POSIX 系统调用的 QNX 文档,您会注意到它们指定了额外的性能约束,这可能是保证实时约束所必需的。操作系统是专门为匹配这些约束而设计的。你不会在一个不是正式的 RTOS 的系统上得到这个。如果您要编写实时软件,我建议您购买一本关于该主题的好书。鉴于该主题非常敏感,因此有大量文献。
-
给自己买一本关于实时系统设计的好书,以了解要问什么问题,然后阅读您将使用的每个产品的技术文档,看看它是否能满足您的限制条件。在 Qt 等软件库中查看的示例是它们分配内存的时间。如果没有在每个类接口中记录这一点,则无法保证满足您的约束,因为存在隐藏的算法复杂性。