首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择实时操作系统和硬件时需要帮助

选择实时操作系统和硬件时需要帮助
EN

Stack Overflow用户
提问于 2011-12-11 01:00:51
回答 2查看 603关注 0票数 1

我听说和读到Windows/Linux OS机器不是实时的。我读过this article.,它列出了WindowsCE是实时操作系统之一。这让我有点困惑,因为我一直以为WindowsCE是针对移动设备或嵌入式设备的。

我需要一个实时的应用程序运行24/7和处理信号,从每个快速移动的对象到数据库和监测各种传感器运行几个机器学习算法。

什么样的实时硬件和操作系统适合这类应用程序?开发环境可以是MFC或Qt C++。我真的需要有经验的开发人员的意见。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-11 01:44:52

QNX在过去为我提供了很好的服务。我应该警告你,它只是为了培训目的(实时工业过程控制),而且我用这个操作系统实现了实时控制程序,我从来没有真正部署过一个。

实时系统的第一条规则是指定实时约束,例如:

  1. 系统必须能够每分钟处理多达600个信号;或者
  2. 系统在每个信号上花费的时间不得超过1/10秒。

差异是微妙的,但这些是不同的约束。

请记住,除非您指定这些约束条件,否则绝对没有办法确定任何硬性/OS/库组合是否对您的足够好

,你认为QNX可能合适吗?与具有高优先级设置的Windows/Linux系统相比,它有什么优势?

如果您查看许多POSIX系统调用的QNX文档,您会注意到它们指定了对性能的额外约束,这可能是保证实时约束所必需的。操作系统是专门为满足这些限制而设计的。你不会在一个不是正式的RTOS的系统上得到这个。如果你打算写实时软件,我建议你买一本关于这个主题的好书。考虑到这个主题非常敏感,有相当多的文献。

给自己买一本关于实时系统设计的好书,了解一下要问的问题,然后阅读你将使用的每个产品的技术文档,看看它是否能满足你的要求。像Qt这样的软件库在分配内存时就是一个很好的例子。如果没有在每个类接口中记录这一点,就没有办法保证满足您的约束,因为存在隐藏的算法复杂性。

开发环境可以是MFC或Qt C++。

我认为Qt是在QNX上编译的,但我不确定Qt是否提供了满足您的实时约束所需的保证。抽象出太多东西的库是有风险的,因为很难确定它们是否满足您的需求。隐藏内存管理通常是有问题的,但您还应该询问其他问题。

在我看来,人们常说实时系统和嵌入式系统( Real-time systems == embedded systems )。我说错了吗?

实时系统并不等同于“嵌入式系统”,尽管许多嵌入式系统都有实时性的限制。

票数 2
EN

Stack Overflow用户

发布于 2011-12-11 01:38:49

你需要多长时间?

请记住,实时是关于响应速度的,而不是速度。事实上,大多数实时操作系统的平均速度会比一般操作系统慢。

您是否需要保证每秒的平均事务数,或者是否需要始终在事件发生后的n秒内做出响应?

您是否有定制的硬件,或者您是否依赖以太网、USB等输入?硬件驱动程序在RTOS上是否可用,或者您是否必须自己编写它们?

Windows和linux是可能的RTOS。Windows embedded允许你关闭服务,以提供更可靠的响应速度,并且有realtime kernelsrealtime add-ons到Linux,它们提供了几乎与VxWorks一样的实时性能。

它还取决于您需要处理的任务数。真正的实时操作系统(如VxWorks)的许多复杂性在于,它们可以同时控制多个任务,同时为每个任务提供有保证的延迟和CPU共享--这对于火星漫游车很重要,但对于单个数据采集PC来说就不重要了

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8458216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档