要定义“软实时”,最简单的方法是将其与“硬实时”进行比较。下面我们将看到,“坚定实时”的术语构成了对“软实时”的误解。
通俗地说,大多数人隐含地具有一种非正式的心理模型,认为信息或事件是“实时的”
•如果或在他们感知到的货币价值上可以与延迟(延迟)相关的程度
•即,在信息或事件具有对他们令人满意的接受价值的时间范围内。
有许多不同的“硬实时”的特定定义,但在这个心理模型中,“硬实时”由“如果”项表示。具体而言,假设实时操作(如任务)具有完成期限,则所有任务完成的事件的令人满意的价值仅限于所有任务都满足其期限的特殊情况。
硬实时系统做出非常强烈的假设,即应用程序、系统和环境的所有内容都是静态且先验已知的——例如,哪些任务,它们是周期性的,它们的到达时间,它们的周期,它们的期限,它们不会有资源冲突,以及整个系统的时间演变。在飞机飞行控制系统或汽车制动系统等许多情况下,这些假设通常可以得到满足,以便满足所有期限。
这个心理模型有意地非常通用,足以涵盖硬实时和软实时——软实时通过“在某种程度上”短语得到容纳。例如,假设任务完成事件具有次优但可接受的价值,如果
•不超过10%的任务错过其截止日期
•或没有任务超过20%的迟到
•或所有任务的平均迟到时间不超过15%
•或所有任务中最大的迟到时间小于10%
这些都是许多应用程序中常见的软实时案例。
考虑单任务应用程序在学校放学后接孩子。那可能没有实际的截止日期,而是根据该事件发生的时间对您和您的孩子有一定的价值。太早浪费资源(如您的时间),太晚会有一些负面价值,因为您的孩子可能会被单独留下,潜在地处于危险之中(或至少是不方便的)。
与静态的硬实时特殊情况不同,软实时仅对任务和系统进行必要的最小应用程序特定假设,并且预计存在不确定性。为了接孩子,您必须开车去学校,而这需要的时间是动态的,取决于天气、交通状况等。您可能会想过度提供系统(即,允许您希望的最坏驾驶时间),但再次这会浪费资源(您的时间,并占用家庭车辆,可能会拒绝其他家庭成员使用)。
那个例子在浪费资源方面可能看起来不那么昂贵,但请考虑其他例子。所有的军事作战系统都是软实时的。例如,考虑使用更新后的导弹引导来对敌对地面车辆进行飞机攻击。完成课程更新任务的最大满意度是通过直接破坏性打击目标来实现的。但试图过度提供资源以确保这种结果通常过于昂贵,甚至可能是不可能的。在这种情况下,如果导弹足够靠近目标并使其失效,则你可能会感到不太满意,但已经足够了。
显然,战斗场景有许多可能的动态不确定性,必须通过资源管理来适应。软实时系统在许多民用系统中也非常普遍,例如工业自动化,尽管显然军事系统是实现可接受的满意价值最危险和紧迫的系统。
实时系统的关键是“可预测性”。硬实时情况只关心可预测性的一种特殊情况,即任务将全部满足其截止时间,并且该事件将实现最大可能的价值。这种特殊情况被称为“确定性”。
可预测性有一个谱。确定性(确定性)是可预测性谱的一个端点(最大可预测性);另一个端点是最小可预测性(最大非确定性)。谱的度量和端点必须根据所选择的可预测性模型进行解释;在这两个端点之间的所有内容都是不可预测度的程度(=不确定度程度)。
大多数实时系统(即软实时系统)具有非确定性的可预测性,例如任务完成时间以及从这些事件中获得的价值。
一般来说(在理论上),可预测性,因此接受满意的价值可以尽可能接近确定性端点--但代价可能是物理上不可能或过于昂贵的(如在战斗中或甚至在接孩子放学时)。
软实时需要选择一个应用程序特定的概率模型(而不是常见的频率模型),因此需要预测模型来推断事件延迟和结果值。
回到提供可接受价值的事件列表,现在我们可以添加非确定性案例,例如
- 没有任务的错过截止时间超过5%的概率大于0.87。(请注意其中表达的调度标准数量。)
在导弹防御应用程序中,考虑到在战斗中进攻总是优于防守,你会喜欢哪种实时计算场景:
尽管实时计算社区存在各种误解,但软实时非常通用和强大,尽管与硬实时相比可能更加复杂。如下所述的软实时系统在实时计算社区之外有着悠久的成功历史。
直接回答OP的问题:
硬实时系统可以提供确定性保证 - 最常见的是所有任务都会在其截止时间内完成,中断或系统调用响应时间始终小于x等 - 仅当非常强的假设被正确地做出并已知先验(一般来说,对于硬实时系统的这些保证是一个开放的研究问题,除了相当简单的情况)
软实时系统不提供确定性保证,它旨在根据应用程序特定的标准,在当前动态环境下提供最佳可能的分析规定和完成概率时间性和可预测性。
显然,硬实时是软实时的一个简单特例。显然,软实时的分析非确定性保证可能非常复杂,但在最常见的实时情况下(包括最危险的安全关键情况,如战斗),这是强制性的,因为大多数实时情况都是动态而不是静态的。
“稳实时”是“软实时”的一个没有明确定义的特例。如果正确理解并使用“软实时”这个术语,则不需要此术语。
我在我的网站real-time.org上有关于实时、硬实时、软实时、可预测性、确定性和相关主题的更详细、更精确的讨论。