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