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