Mik*_*ike 7 c embedded deterministic real-time definition
在工作中,我们正在讨论新平台的设计,其中一个上层管理类型表示它需要运行我们当前的代码库(C on Linux),但需要实时,因为它需要在不到一秒的时间内响应各种输入.我指出:
真的在我的脑海中,如果第3点是真的,那么它需要是一个实时系统,然后第2点是最大的考虑因素.
我有信心回答,但后来我想到了......别人怎么想?我在这里是正确的轨道还是我错过了什么?
在"实时"系统和"确定性"系统之间我是否有任何不同之处?除了RTC和RTOS之外,我还缺少执行真正实时系统所需的任何主要内容吗?
期待一些伟大的回应!
编辑:
到目前为止得到了一些好的回答,看起来对我的系统和要求有一点好奇,所以我会为感兴趣的人添加一些注意事项:
这里的要求是管理层希望"快速"(<1s)更新显示,但IMO 的真正限制来自可通过CAN连接的设备.这些设备通常是电机控制设备,其要求包括"必须在小于200ms内响应".
mik*_*era 10
你需要区分:
只要您拥有足够的硬件并充分注意识别和优化瓶颈,大多数系统都可以轻松实现软实时.通过一些调整,甚至可以在具有非确定性暂停的系统中实现(例如Java中的垃圾收集).
硬实时需要专用的OS支持(以保证调度)和确定性算法(因此,一旦安排,任务保证在截止日期内完成).要做到这一点很难,需要在整个硬件/软件堆栈上仔细设计.
值得注意的是,大多数商业应用程序都不需要:特别是我认为针对<1秒的响应时间远远超出大多数人认为的"实时"要求.话虽如此,如果在需求中明确指定了响应时间,那么您可以将其视为具有相当宽松期限的软实时.
从real-time标签的定义:
当活动完成的及时性是功能要求和正确性条件而不仅仅是性能指标时,任务是实时的.实时系统是指一些(尽管可能不是全部)任务是实时任务的系统.
换句话说,如果您的系统响应太慢而无法满足截止日期,那么如果出现问题,系统需要是实时的,您需要一个RTOS.
实时系统不需要是确定性的:如果响应时间在50ms和150ms之间随机变化,但响应时间从不超过150ms,那么系统是非确定性的,但它仍然是实时的.