我听说并且读到Windows / Linux操作系统机器不是实时的。 我看过this article.它列出了WindowsCE是RTOS之一。这让我感到困惑,因为我一直认为WindowsCE适用于移动设备或嵌入式设备。
我需要一个24/7运行的实时应用程序,并通过运行多个机器学习算法处理从每个快速移动对象到数据库和监视器的各种传感器的信号。
这种应用程序的实时硬件和操作系统是什么?开发环境将是MFC或Qt C ++。我真的需要有经验的开发者的意见。感谢
答案 0 :(得分:2)
您需要的实时时间是什么? 记住,实时是关于响应,而不是速度。事实上,大多数RTOS平均比一般操作系统慢。
您是否需要保证一定的平均交易次数/秒,或者您是否需要在事件发生后的n秒内做出回应?
您是否拥有自定义硬件,或者您是否依赖以太网,USB等输入? 是否可以在RTOS上使用硬件驱动程序,还是必须自己编写?
Windows和Linux都是可能的RTOS。 Windows嵌入式允许您关闭服务以提供更可靠的响应速率,Linux中有realtime kernels和realtime add-ons,它们提供与VxWorks相同的实时性能。
这还取决于您需要处理多少任务。真正的RTOS(如VxWorks)的许多复杂性在于它们可以同时控制许多任务,同时允许每个任务保证延迟和CPU份额 - 对于火星车而言非常重要,但对于单个数据采集PC则不重要
答案 1 :(得分:2)
实时系统的第一条规则是指定实时约束,例如:
差异很微妙,但这些是不同的约束。
请记住,绝对没有办法来决定是否有任何硬件/操作系统/库组合对你来说足够好除非你指定这些约束
为此,您认为QNX可能是正确的吗?与优先级设置较高的Windows / Linux系统相比,它有什么优势?
如果您查看许多POSIX系统调用的QNX文档,您会注意到它们指定了额外的性能约束,这可能是保证实时约束所必需的。操作系统专门用于匹配这些约束。你不会在非正式的RTOS系统上得到这个。如果您要编写实时软件,我建议您购买一本关于该主题的好书。有大量文献认为该主题非常敏感。
为自己制作一本关于实时系统设计的好书,以便了解要问的问题,然后阅读每个产品的技术文档,以了解它是否符合您的约束条件。像Qt这样的软件库中的事物示例是它们分配内存的时候。如果没有在每个类接口中记录这一点,则无法保证满足您的约束,因为存在隐藏的算法复杂性。
开发环境将是MFC或Qt C ++。
我认为Qt会在QNX上编译,但我不确定Qt是否提供了匹配实时约束所需的保证。抽象掉太多东西的图书馆是风险,因为很难确定它们是否满足您的要求。隐藏的内存管理通常存在问题,但您还应该询问其他问题。
在我看来,人们说实时系统==嵌入式系统。我错了吗?
实时系统肯定不等于“嵌入式系统”,尽管许多嵌入式系统都有实时约束。