我已经阅读了不同实时概念的定义,为硬实时系统和软实时系统提供的示例对我来说很有意义.但是,没有真正的解释或坚实的实时系统的例子.根据上面的链接:
公司:不经常的最后期限错失是可以容忍的,但可能会降低系统的服务质量.在截止日期之后,结果的有用性为零.
企业实时与硬实时或软实时之间是否有明显的区别,是否有一个很好的例子来说明这种区别?
在评论中,Charles要求我为新标签提交标签维基.我为公司实时标签提供的"公司实时系统"的例子是牛奶服务系统.如果系统在到期时间后输送牛奶,则认为牛奶"无用".人们可以忍受吃不含牛奶的谷物,但体验质量会降低.
这只是我在最初阅读定义时在脑海中形成的想法.我正在寻找一个更好的例子,也许是对实时公司的更好定义,这将改善我对它的看法.
我一直很想知道是否有可能将Haskell的强大功能应用到嵌入式实时世界,并且在谷歌搜索中找到了Atom软件包.我假设在复杂的情况下,代码可能具有所有经典的C错误 - 崩溃,内存损坏等,然后需要将其追溯到导致它们的原始Haskell代码.所以,这是问题的第一部分:"如果您有使用Atom的经验,那么您是如何处理调试已编译C代码中的低级错误并将其修复为Haskell原始代码的任务的?"
我搜索了Atom的更多示例,这篇博文提到了生成的C代码22KLOC(显然没有代码:),包含的示例是一个玩具.这个和这个引用有一些更实用的代码,但这是结束的地方.我在这个主题中加入"相当大"的原因是,如果您可以分享使用300KLOC +范围内生成的C代码的经验,我最感兴趣.
因为我是一名Haskell新手,显然可能有其他方法由于我未知的未知因素而未找到,所以在这方面任何其他自我教育的指针都会非常感激 - 这是问题的第二部分 - "在Haskell中进行实时开发会有什么其他实用方法(如果)?" 如果多核也在图片中,这是一个额外的加号:-)
(关于Haskell本身用于此目的的用法:从我在这篇博文中读到的内容,Haskell中的垃圾收集和懒惰使其在调度方面具有相当不确定性,但可能在两年内发生了一些变化.现实世界的Haskell编程问题在SO上是我能找到的最接近这个话题的人)
注意:上面的"实时"将更接近"硬实时" - 我很好奇是否可以确保主要任务未执行的暂停时间小于0.5ms.
我有一个嵌入式设备(Technologic TS-7800),宣传实时功能,但没有说"硬"或"软".当我等待制造商的回复时,我认为自己测试系统不会有什么坏处.
在实时/确定性行为(延迟和抖动)方面,有哪些既定程序可以确定特定设备的"硬度"?
在大学期间,我可以使用一些非常整洁的硬件(良好的示波器和信号发生器),所以我认为我不会在测试设备,只是专业知识方面遇到任何问题.
或者也许它对硬实时也有好处?
我刚刚构建并设置了一个应用了RT补丁的vanilla Linux内核.一切都很顺利,我现在可以正确启动进入新内核.
令我疑惑的是:我有一个我在C中制作的模拟器程序,我希望它以硬实时模式执行,新内核应该允许它.可能整个模拟器不需要以实时优先级运行,但内部的一些任务可以.
我怎么能做到这一点?我认为只是运行该程序是行不通的.