需要帮助选择实时操作系统和硬件
Need help to choose real-time OS and Hardware
我听说Windows/Linux操作系统的机器不是实时的。我读过这篇文章。它列出了WindowsCE是RTOS之一。这让我有点困惑,因为我一直认为WindowsCE是为移动或嵌入式设备准备的。
我需要一个全天候运行的实时应用程序,并处理从每个快速移动对象到数据库的各种传感器的信号,并通过运行几个机器学习算法进行监控。
什么是适合这种应用程序的实时硬件和操作系统?开发环境将是MFC或Qt c++。我真的需要有经验的开发者的意见。由于QNX过去对我很有帮助。我应该提醒你,它只是用于培训目的(实时工业过程控制),我已经用这个操作系统实现了实时控制程序,但我从未真正部署过一个。
实时系统的第一条规则是指定实时约束,例如:- 系统必须能够每分钟处理多达600个信号;或
- 系统在每个信号上花费的时间不得超过1/10秒。
区别很微妙,但它们是不同的约束。
请记住,绝对没有办法来决定任何硬件/操作系统/库组合是否对你足够好,除非你指定了这些约束
你认为QNX可能是合适的吗?与具有高优先级设置的Windows/Linux系统相比,它的优势是什么?
如果您查看许多POSIX系统调用的QNX文档,您将注意到它们在性能上指定了额外的约束,这些约束可能是保证实时约束所必需的。操作系统是专门为满足这些限制而设计的。你不会在一个不是官方RTOS的系统上得到这个。如果您打算编写实时软件,我建议您购买一本有关该主题的好书。考虑到这个话题非常敏感,有相当多的文献。
找一本关于实时系统设计的好书,了解该问什么问题,然后阅读你将使用的每个产品的技术文档,看看它是否符合你的约束条件。在像Qt这样的软件库中观察的例子是它们分配内存的时候。如果没有在每个类接口中记录这一点,就没有办法保证满足您的约束,因为存在隐藏的算法复杂性。
开发环境为MFC或Qt c++。
我认为Qt在QNX上编译,但我不确定Qt是否提供了与您的实时约束相匹配所需的保证。抽象太多内容的库是有风险的,因为很难确定它们是否满足您的需求。隐藏内存管理经常是有问题的,但是你也应该问一些其他的问题。
在我看来,人们说实时系统==嵌入式系统。我错了吗?
实时系统肯定不等于"嵌入式系统",尽管许多嵌入式系统都有实时限制。
你需要多实时?
记住实时是关于响应,而不是速度。事实上,大多数RTOS的平均速度比一般操作系统要慢。
您是否需要保证一定的平均事务数/秒,或者您是否需要始终在事件的n秒内响应?
您是否有自定义硬件或您是否依赖于以太网,USB等输入?RTOS上有硬件驱动程序吗?还是你必须自己写?
Windows和linux是可能的RTOS。Windows嵌入式允许您关闭服务,以提供更可靠的响应速度,并且Linux的实时内核和实时附加组件提供几乎相同的实时性能,如VxWorks。
这也取决于你需要处理多少任务。真正的RTOS(如VxWorks)的很多复杂性在于它们可以同时控制许多任务,同时允许每个任务有保证的延迟和CPU共享——这对火星探测器很重要,但对单个数据收集PC来说就不重要了
- 如果编译的源代码是特定于它编译的硬件的,我们如何分发它
- 从数据库实时显示QT c++中的数据
- 在C++中设置基于操作系统的文件路径
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- 有没有办法使用 c++ 实时阅读文本?
- 在本地网络中通过OpenCV(C++)实时流式传输图像
- 将相机数据从服务器实时流式传输到客户端
- FFmpeg——使用硬件加速进行视频解码
- 如何在工厂方法中返回指向基于基础操作系统的派生类的有效指针
- 将实时(非静态)放在qt(c ++)上
- 有关图像处理应用程序的硬件和软件安全性的建议
- 线程之间的实时数据共享
- 如何在实时应用程序中锁定线程
- 完整性实时操作系统多编译器
- 用于核心实时操作系统的 Cppunit
- 使用 QNX 实时操作系统实时接收 UDP 数据包
- 测试操作系统性能时,硬件开销和软件开销有什么区别
- 需要帮助选择实时操作系统和硬件
- 如何找到硬件附加到Ubuntu操作系统使用c++程序