首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编写一个具有尽可能接近真实-time特征的应用程序?

如何编写一个具有尽可能接近真实-time特征的应用程序?
EN

Stack Overflow用户
提问于 2011-01-09 13:54:07
回答 1查看 193关注 0票数 2

我正在寻找最好的方法来设计一个需要尽可能接近实时响应的应用程序。我曾考虑过使用一个精简的内核,并将软件直接构建到其中,但我认为这不是最好的解决方案。

我对在硬件中创建一些东西很感兴趣(我已经在这里读到了),我想知道是否有人构建了类似的东西,如果是的话,他们使用的是什么硬件?

例如,是否有一种具有千兆位以太网的设备也是可编程的?即卡上的CPU?然后,我可以编写一个内核驱动程序来通信/控制卡上运行的应用程序-由于它非常接近网络接口,因此基于网络流量做出决策的延迟会更低……

有人这么做过吗?如果是这样的话,有谁能推荐一些我应该研究的硬件/软件吗?

EN

回答 1

Stack Overflow用户

发布于 2011-01-09 14:14:57

一般评论

在人们能够回答之前,您可能需要更具体地说明您的需求。我们中的许多人都构建了实时系统,但请记住,a)实时与实时不同,b)“实时”是一系列不同的及时性标准的总称。

您需要哪些活动来确保活动的及时性?你在问题中提出的解决方案有点异乎寻常,只有当你陈述了你的需求,并且你确信更传统的方法是不够的时,才应该考虑这些解决方案。

构建实时应用程序/系统与设计任何其他应用程序/系统没有什么不同。然而,您确实需要捕获每个活动的时效性需求,其精度与您通常捕获“功能性”需求的精度相同(例如,函数/方法pre、post和不变条件)。当您开始理解所有这些需求的总和时,困难的部分就出现了--这与系统设计的其他方面不太一样。

即使您不能应用它的所有严格细节,我也建议您尝试用RMA analysis来框架您的应用程序的活动。许多动态应用程序不会完全屈从于分析,因为您没有足够的数据(它们本质上是不确定的/动态的/不确定的),但尝试应用该规则将有所帮助。

在任何情况下,从分析开始,而不是一小撮漂亮的(和复杂的)解决方案……

一些你应该掌握的东西:

  • 您希望系统执行哪些自然任务/活动(在问题空间中)?这是一个开始设计的好地方,但您的实现可能需要转变。
  • 您需要管理哪些资源?(CPU?网络?内存?)
  • 您能确保资源保持负载不足吗?如果没有,您将需要制定一些可行性分析和admission control policy或“减负”。请注意,这捕获了“重要性”或“优先级”的一个维度,并且最好与其他dimension...
  • What解耦。时间限制是什么?这就是“紧急”维度。它可能是一个延迟请求,或者其他任何东西。这些约束是硬的还是软的?聚合还是按任务?(有关区分紧急性和重要性的调度方法的有趣和深入的查看,请参阅来自CMU的RKC's thesis (或shorter summary),但是在proceeding...)
  • How之前深呼吸一下,您将在实现中表示每个活动的时间约束上下文吗?注意:在大多数常见的操作系统中,没有针对CPU的“截止日期调度程序”,通常的方法是将紧急情况映射到优先级(参见RMA),但这只在资源是underloaded.
  • How的情况下才有效。您想要处理多资源挑战吗?在这里,严格的分析工具几乎没有帮助,通常的目标是尽可能多地过度配置,并在系统边界应用准入控制。如果这是一个系统,您要求包括网络传输和处理在内的活动的及时性,那么您可能会考虑以QoS流量管理的形式应用准入控制,从而减少(而不是消除)担心CPU loading.
  • What的需要。吞吐量requirements?
  • What是您的活动的到达模式吗?例如,您能否确保最短的到达间隔时间?
  • 您要求系统/应用程序正确运行的置信度是多少?

基于其他注释的编辑

在迁移到hw/sw混合方法之前,请确保您首先用尽了软件解决方案。如果你的任务被内核抢占了,那么你应该努力让它处于控制之下。

操作系统是什么?如果是Linux、最新的Windows或Mac,您应该能够以实时优先级调度处理线程,并最大限度地减少内核引起的抢占。如果您真的要消耗CPU,也许您应该考虑双CPU方法,将单CPU用于应用程序处理(同样,取决于操作系统)。

啊哈,0.5ms的响应时间开始让情况变得更清晰了。如果您使用的是通用操作系统,那么一致的亚毫秒级延迟可能有点困难。

什么处理器(和时钟速度?)

听起来你已经准备好了一些可用的(或接近的)代码。你已经做了一些分析,因为你认为抢占正在杀死你。您采取了哪些步骤来消除抢占?你提到的“决策”活动是不是一个很小/很简单的评估?它是确定性的吗?0.5ms的限制是物理限制,还是由于包括系统其他部分的延迟预算而征收?

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

https://stackoverflow.com/questions/4637902

复制
相关文章

相似问题

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