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