通信中间件如何支持软实时应用?

时间:2017-10-28 17:45:03

标签: real-time communication-protocol soft-real-time

如今“实时”这个概念有很多不同的解释。在此question中提供了两个定义:

  

硬实时定义认为任何错过的截止日期都是系统故障。这种调度广泛用于关键任务系统,在这些系统中,不符合时序约束会导致生命或财产损失。

  

软实时定义允许经常错过最后期限,并且只要任务及时执行,其结果将继续具有价值。完成的任务可能会在截止日期之前增加价值,并且可以通过它来减少价值。

在我的研究中,我得出以下结论:

  • 如果中间件提供对系统资源的可预测和有效的端到端控制,则它支持硬实时。就像设置中间件创建的所有线程的线程优先级一样。
  • 在我看来,良好的性能是支持软实时应用程序的最相关因素。

这是真的吗?支持软实时应用的通信中间件的其他相关特性是什么?

1 个答案:

答案 0 :(得分:1)

首先,为了准确定义实时原则和术语,基于第一原则和心智模型,我将您推荐给real-time.org。

实时从业者计算社区使用各种不一致和不完整的定义" "实时," "硬实时,"和"软实时。"实时计算研究社区已经就“实时硬实时”做出了共识。但是对于软实时而感到困惑。"

研究界的核心"艰难"实时计算模型是任务有最后期限,所有这些期限都不能错过,否则系统就会失败。满足最后期限是"及时性"标准,并保证所有期限都将得到满足是"可预测性"标准 - 可预测性是确定性的。"

(在某些模型中,如果不干扰硬实时任务,则在后台允许没有截止日期的任务;通常也可以防止它们被饿死。)

该模型要求与硬实时任务相关的所有内容都是静态的(事先已知) - 即,它要求事先知道系统的时间演变。这个要求非常强,在大多数情况下,这是不可行的。存在重要的硬实时系统,其中(至少假设)满足该要求。众所周知的例子包括数字航空电子飞行控制,某些医疗设备,发电厂控制,铁路交叉口控制等。这些例子是安全关键的,但并非所有硬实时系统都是(我们将在下面看到最安全的 - 关键系统不是也不可能是硬实时,尽管有些可能包括简单的低级硬实时组件。

软实时是指一类实时系统,它们是硬实时系统的概括。概括包括较弱的及时性标准和/或较弱的可预测性标准。

例如,考虑一个具有截止日期的任务的模型,就像硬实时的那样。在这个特定的模型中,及时性标准是任何数量的任务被允许高达15%的迟到,并且可预测性标准是必须保证(即,确定性的)就像硬实时系统一样。如果这些任务中的一个或多个迟到超过15%,系统就会失败。这个模型不是传统的硬实时模型,尽管它可能是一个安全关键任务。

考虑另一个模型:及时性标准是不超过20%的任务可以超过5%,并且可预测性标准是保证至少满足概率0.9。违反及时性和/或可预测性标准意味着系统失败。这不是一个硬实时系统,尽管它可能是一个安全关键系统。

但请考虑一下:如果该系统的效用因不符合其中一个或任何一个标准而降低 - 例如,23%的人迟到超过5%,或者不到20%的任务是迟到但10%其中超过5%的人迟到了,或者除了可预测性仅为0.8之外,所有标准都得到了满足。有许多具有这种动态特性的实时系统。

我们需要指明系统退化的方式(例如,系统"实用程序"或"值")与这些系统中的任何数量和程度有关是否达到了及时性和可预测性标准。事实上,这个模型是许多实际存在的实时系统的概念性例子,这些系统尽可能安全 - 例如,用于防御核武器敌对导弹(和许多其他军事战斗系统,因为它们都有各种固有的动态不确定性)。

现在我们回到那个需要指出实时系统的及时性和可预测性如何与系统的效用相关。成功使用的解决方案称为"时间/效用函数," (或"时间/价值函数")并在real-time.org上详细描述。每个任务的功能都源自系统应用程序的物理特性。系统的及时性和及时性的可预测性基于任务的时效性 - 例如,通过各自公用事业的加权累计。

软实时系统(在real-time.org上描述的精确定义的意义上)是一般情况,硬实时系统是一个特殊情况,适用于更小的实时问题领域。可以使用时间/效用函数指定和创建所有硬实时系统和软实时系统。

所有澄清,现在我们可以解决您关于实时中间件的问题。

答案的一个明显来源是开放组实时CORBA(RTC)标准(谷歌,有大量详细信息可用)。

RTC可以作为固定优先级基础设施实施,具有映射到节点优先级的15位系统范围优先级。在这种情况下,最低要求是:尊重客户端和服务器之间的线程优先级,以便在处理CORBA调用期间解决资源争用;在端到端处理期间限制线程优先级反转的持续时间;限制操作调用的延迟。可以根据这三个要求(以及许多存在的要求)构建硬实时RTC分布式系统 - 但显然底层网络QoS会影响实时行为。因此,RTC提供可插拔的特定于应用的网络,例如那些具有确定性QoS的网络(因此可以在RTC层之下和之下实现硬实时),以及具有非确定性QoS的那些(但是RTC层仍具有三个必要的固定优先实时属性)。

更一般地说,RTC在CORBA层提供软实时(在real-time.org上定义的技术意义上)。它通过提供名为"分布式线程的一阶调度抽象来实现。"它提供了一个调度框架,不仅支持固定的优先级,还支持时间/效用函数,这些函数通常足以表达一个非常通用的类公用事业应计"软实时调度算法。这种算法(或通常是启发式算法)是由特定于应用的软实时系统模型组成的分布式系统所需要的,如上所述。

如果您不想使用RTC怎么办?好消息是,RTC的原则首先在不同的分布式实时系统中公开出现(在real-time.org上描述),并且可以(并且已经)移植到其他实时中间件和软实时系统。

对于软实时(再次,从real-time.org精确定义的意义上)中间件,动态及时性和时效性可预测性的原则必须应用于中间件的每个节点的资源管理系统 - 包括应用于调度中间件网络(例如,访问,路由等)。这种方法的实例出现在几个博士中。这些论文,也已在多个军事战斗分布式实时系统中实施。