硬实时、软实时和硬实时之间的区别?

我已经阅读了 不同的实时概念的定义,并且为硬实时系统和软实时系统提供的示例对我来说是有意义的。但是,没有真正的解释或例子,一个坚定的实时系统。根据以上连结:

坚定的: 不频繁地错过截止日期是可以容忍的,但可能会降低系统的服务质量。结果的有用性在截止日期之后为零。

公司实时与硬实时或软实时之间有明确的区别吗? 有没有一个很好的例子来说明这种区别?

在评论中,Charles 要求我提交新标签的标签 wiki。我为 标签提供的“公司实时系统”的例子是一个牛奶服务系统。如果系统在过期后提供牛奶,那么牛奶被认为是“无用的”。人们可以忍受不喝牛奶就吃谷类食品,但这种体验的质量会降低。

This is just the idea I formed in my head when I initially read the definition. I am looking for a much better example, and perhaps a better definition of firm real-time that will improve my notion of it.

224336 次浏览

实时-用于修饰或说明一种系统或操作模式,在外部过程发生的实际时间内进行计算,以便计算结果可用于及时控制、监视或响应外部过程。[ IEEE 标准610.12.1990]

我知道这个定义很古老,非常古老。然而,我找不到 IEEE (电气与电子工程师学会)最近的定义。

艰难的实时意味着你必须完成每一个最后期限。很少有系统具有这种要求。一些例子是核系统,一些医疗应用,如起搏器,大量的国防应用,航空电子设备等。

坚固/软实时系统可能会错过一些最后期限,但如果错过太多最后期限,最终性能会下降。一个很好的例子是计算机中的音响系统。如果你错过了一些位,没什么大不了的,但是错过了太多,你最终会使系统退化。类似的还有地震传感器。如果您错过了一些数据点,没什么大不了的,但是您必须捕获其中的大部分数据才能理解数据。更重要的是,没有人会死,如果他们不正确地工作。

这个界限是模糊的,因为即使是起搏器也可以少量关闭而不会杀死病人,但这是大体要点。

有点像热和暖的区别。没有真正的分歧,但是当你感觉到的时候,你就知道了。

It's popular to associate some great catastrophe with the definition of hard real-time, but this is not relevant. Any failure to meet a hard real-time constraint simply means that the system is broken. The severity of the outcome when something is labelled "broken" isn't material to the definition.

坚定和软弱只是不能自动宣布破产,未能达到一个单一的最后期限。

关于硬实时的一个很好的例子,来自你链接的页面:

早期的视频游戏系统,如 Atari 2600和 Cinematronics 的矢量图形,由于图形和计时硬件的性质,有很难实时的要求。

如果视频生成循环中的某些东西只错过了一个最后期限,那么整个显示器就会出现故障,这将是无法忍受的,即使它是罕见的。那样的话系统就坏了,你会把它带回商店要求退款。所以实时监控很困难。

显然,任何系统都可能受到它无法处理的情况的影响,因此有必要将定义限制在预期的操作条件之内——注意到在安全关键的应用中,人们必须为可怕的条件做好计划(“冷却剂已经蒸发”,“刹车失灵”,但很少“太阳已经爆炸”)。

我们不要忘记,有时存在一个隐含的“当所有人都在看”的操作条件。如果没有人看到你违反了规则(或者如果他们看到了,但是他们在告诉任何人之前就被烧死了) ,并且没有人能够证明你在事后违反了规则,那么这就好像你从来没有违反过规则一样!

在阅读了维基百科和其他有关实时计算的网页之后,我做出了以下推断:

对于 Hard real-time system,如果系统未能在最后期限前完成,即使系统被认为已经失败。

2 > 对于 坚固的实时系统,即使系统未能在最后期限前完成,可能不止一次(即对于多个请求) ,系统也不会被视为失败。而且,一旦特定请求的最后期限过去(结果的有用性在截止日期之后为零) ,请求的响应(对查询的答复、任务的结果等)就没有价值了。一个假设的例子可以是一个风暴预报系统(如果一个风暴在到达之前就被预报了,那么该系统已经完成了它的工作,在事件已经发生或者什么时候发生的预报是没有价值的)。

3 > 对于 软实时系统,即使系统未能在最后期限前完成,可能不止一次(即对于多个请求) ,系统也不会被视为失败。但是,在这种情况下,请求的结果不是毫无价值的 在截止日期之后,结果的价值不是零,而是随着最后期限过去的时间而降低。流式音频视频。

Here is a link to a resource that was very helpful.

要定义“软实时”,最简单的方法是将其与“硬实时”进行比较下面我们将看到,术语“坚定的实时”构成了对“软实时”的误解

随便说说,大多数人都隐含着一种非正式的心理模式,认为信息或事件是“实时的”

•如果,或者在一定程度上,它是显而易见的与延迟(潜伏期) ,可能与其感知的货币

即在信息或事件对他们具有可接受的令人满意的价值的时限内。

对于“硬实时”有很多不同的定义,但是在这个心理模型中,硬实时是用“如果”来表示的。具体来说,假设实时操作(比如任务)有完成期限,所有任务完成的事件的可接受的令人满意的价值仅限于所有任务都在期限内完成的特殊情况。

硬实时系统强烈假设关于应用程序、系统和环境的一切都是静态的,并且是先验知道的,例如,哪些任务,它们是周期性的,它们的到达时间,它们的周期,它们的最后期限,它们不会有资源冲突,以及整个系统的时间演变。在飞机飞行控制系统或汽车制动系统和许多其他情况下,这些假设通常可以得到满足,以便满足所有的最后期限。

这种心智模型是有意而且非常有用的,足以涵盖硬实时和软实时——软通过“在某种程度上”这个短语来适应。例如,假设任务完成事件具有次优但可接受的值,如果

  • no more than 10% of the tasks miss their deadlines
  • or no task is more than 20% tardy
  • 或者所有任务的平均拖延率不超过15%
  • 或者所有任务中最大拖延率小于10%

These are all common examples of soft real-time cases in a great many applications.

考虑一下接孩子放学的单一任务应用程序。这可能没有一个实际的最后期限,而是有一些价值,你和你的孩子的基础上,当事件发生。太早浪费资源(比如你的时间)和太晚有一些负面的价值,因为你的孩子可能被留在一个人的方式和潜在的危害(或至少不便)。

与静态硬实时特例不同,软实时只对任务和系统做出最小必要的特定应用假设,并且预期会出现不确定性。为了接孩子,你必须开车去学校,而接孩子的时间取决于天气、交通状况等。你可能会被诱惑过度供应你的系统(即,允许你希望是最糟糕的情况下驾驶时间) ,但再次这是浪费资源(你的时间,占用家庭车辆,可能拒绝其他家庭成员使用)。

That example may not seem to be costly in terms of wasted resources, but consider other examples. All military combat systems are soft real-time. For example, consider performing an aircraft attack on a hostile ground vehicle using a missile guided with updates to it as the target maneuvers. The maximum satisfaction for completing the course update tasks is achieved by a direct destructive strike on the target. But an attempt to over-provision resources to make certain of this outcome is usually far too expensive and may even be impossible. In this case, you may be less but sufficiently satisfied if the missile strikes close enough to the target to disable it.

显然,作战场景具有许多可能的动态不确定性,这些不确定性必须通过资源管理来适应。软实时系统在许多民用系统中也非常普遍,如工业自动化系统,尽管军用系统显然是最危险和最迫切的系统,以达到可接受的满意价值。

实时系统的基石是“可预测性”硬实时情况只对一种可预测性的特殊情况感兴趣——即,所有任务都将在最后期限之前完成,并且该事件将实现最大可能的价值。这个特例被命名为“确定性”

可预测性有很多种。确定性(确定性)是可预测性谱上的一个终点(最大可预测性) ; 另一个终点是最小可预测性(最大非确定性)。频谱的度量和终点必须根据所选择的可预测模型来解释; 这两个终点之间的一切都是不可预测程度(= 非确定性程度)。

大多数实时系统(即软系统)具有非确定性的可预测性,例如,任务的完成时间以及从这些事件中获得的值。

一般来说(在理论上) ,可预测性,因此可接受的令人满意的价值,可以尽可能接近确定性的终点作为必要的-但价格可能是物理上不可能或过于昂贵(如在战斗中,甚至可能在接孩子从学校)。

软实时需要特定于应用程序的概率模型(而不是常见的频率模型)的选择,因此需要可预测性模型来推理事件延迟和结果值。

Referring back to the above list of events that provide acceptable value, now we can add non-deterministic cases, such as

  • 任何任务都不会超过最后期限5% 的概率大于0.87。(请注意其中表示的调度标准的数量。)

在导弹防御应用程序中,考虑到在战斗中进攻总是优于防御这一事实,在这两种实时计算场景中,您更喜欢哪一种:

  • 因为完全摧毁所有的敌对导弹是非常不可能或不可能的,分配你的防御资源,以最大限度地提高最具威胁性(例如,根据其目标)的敌对导弹被成功拦截的概率(近距离拦截计算,因为它可以使敌对导弹偏离航线) ;

  • 抱怨说这不是一个实时计算问题,因为它是动态的而不是静态的,传统的实时概念和技术不适用,而且它听起来比静态硬实时更困难,所以你对它不感兴趣。

Despite the various misunderstandings about soft real-time in the real-time computing community, soft real-time is very general and powerful, albeit potentially complex compared with hard real-time. Soft real-time systems as summarized here have a lengthy successful history of use outside the real-time 电脑科技 community.

直接回答 OP 问题:

一个硬实时系统可以提供确定性的保证ーー最常见的是,所有任务都会在最后期限前完成,中断或系统调用的响应时间总是小于 x 等ーー如果且仅当做出了非常有力的假设,并且正确地认为所有重要的事情都是静态的,并且是先验知道的(一般来说,对硬实时系统的这种保证是一个开放的研究问题,除了非常简单的情况)

软实时系统不能提供确定性保证,其目的是根据具体应用程序的标准,在当前动态环境下可行的情况下,提供尽可能好的、经过分析确定和实现的概率及时性和及时性可预测性。

显然硬实时是软实时的一个简单的特例。显然,软实时的分析性非确定性保证可以非常复杂地提供,但在最常见的实时情况下(包括最危险的安全关键的情况,如战斗)是强制性的,因为大多数实时情况是动态的,而不是静态的。

“企业实时”是“软实时”的一个不明确的特例如果正确理解和使用“软实时”这个术语,就没有必要使用这个术语。

在我的网站 real-time.org 上,我对实时、硬实时、软实时、可预测性、决定论和相关主题进行了更详细、更精确的讨论。

也许定义有问题。

根据我的经验,我会把这两者分开,因为它们依赖于硬件和软件。

如果你有200毫秒的硬件驱动中断服务,这就是你得到的。你把300毫秒的代码放进去,系统就不会崩溃,它还没有被开发出来。你还没吃完就会被调包。您的代码不能正常工作或者不适合使用。许多系统都有很难定义的处理周期。视频、电信等。

如果你正在写一个实时的 申请,这可以被认为是 软弱。如果你没有时间了,你可以希望下次负载更少,你可以调整操作系统,增加一些内存,甚至升级硬件。你有选择。

从用户体验的角度来看是没有帮助的。斯柯达可能不会坏,如果它故障,但宝马肯定会地狱。

软实时是最容易理解的,即使结果是在截止日期之后得到的,结果仍然被认为是有效的。

示例: Web 浏览器-我们请求某个 URL,加载页面需要一些时间。如果系统花费了比预期更多的时间来提供页面,那么获得的页面就不被认为是无效的,我们只能说系统的性能没有达到标准(系统的性能很低!).

实时监控很困难系统中,如果在最后期限之后得到结果,则认为系统完全失败。

例子: 如果机器人做一些工作,比如线条跟踪等。如果一个障碍出现在它的路径上,并且机器人没有在某个程序设定的最后期限内处理这些信息(几乎是即时的!),机器人据说已经失败在其任务(机器人系统也可能被完全摧毁!).

实时监控系统中,如果进程执行的结果超过了最后期限,我们会丢弃这个结果,但是系统不会被定义为失败。

例如: 用于敌方位置监视或其他任务的卫星通信。如果卫星定期发送帧的地面计算机站超载,当前帧(包)没有及时处理,下一帧出现,当前包(错过最后期限的那个)不管处理是否完成(或者完成了一半或几乎完成)都被丢弃/丢弃。但是地面计算机并不被认为是完全失效的。

硬实时

hard real-time定义认为任何错过的最后期限都是系统故障。这种调度广泛应用于任务关键系统中,如果不遵守时间约束就会导致生命或财产的损失。

例子:

  • Air France Flight 447 crashed into the ocean after a sensor malfunction caused a series of system errors. The pilots stalled the aircraft while responding to outdated instrument readings. All 12 crew and 216 passengers were killed.

  • 火星探路者号航天器在一次优先转置引起系统重启时几乎损失殆尽。较高优先级的任务没有按时完成,因为被较低优先级的任务阻塞。问题得到了纠正,航天器成功着陆。

  • 喷墨打印机有一个带有控制软件的打印头,用于将正确数量的墨水沉积到纸张的特定部分。如果错过了最后期限,那么打印工作就毁了。


公司实时

The 实时监控 definition allows for infrequently missed deadlines. In these applications the system can survive task failures so long as they are adequately spaced, however the value of the task's completion drops to zero or becomes impossible.

例子:

  • 带有机器人装配线的制造系统,如果错过了最后期限,就会导致零件装配不当。只要损坏的零件不常发生,并且质量控制不会造成太大的损失,那么生产就会继续。

  • 一个数字电缆机顶盒解码时间戳时,框架必须出现在屏幕上。因为帧是时间顺序敏感的,错过最后期限会导致抖动,降低服务质量。如果错过的帧后来变得可用,它只会导致更多的抖动显示它,所以它是无用的。如果不经常发生抖动,观众仍然可以享受节目。


软实时

软实时定义允许经常错过最后期限,并且只要任务及时执行,其结果仍然有价值。已完成的任务在截止日期前可能会增加价值,而超过截止日期后则会减少价值。

例子:

  • 气象站有许多传感器,可以读取温度、湿度、风速等信息。读数应定期采集和传输,但传感器不同步。即使一个传感器读数可能比其他的早或晚,但只要它足够接近,它仍然是相关的。

  • 电子游戏机运行游戏引擎的软件。有许多资源必须在其任务之间共享。同时任务需要根据时间表完成,以便游戏正确进行。只要任务完全按时完成,游戏就会令人愉快,如果不是这样的话,游戏可能只会有一点延迟。


Siewert: 实时嵌入式系统和组件。
Liu & Layland: 硬实时环境下的多道程序调度算法。
Marchand & Silly-Chetto: 软非周期任务和带跳过的周期任务的动态调度。

区分不同类型的实时系统类型的最简单方法是回答以下问题:

延迟的系统响应(在最后期限之后)是否仍然有用?

因此,根据你对这个问题的回答,你的系统可以被归为以下类别之一:

  1. Hard : 不,延迟回答被认为是系统故障

错过截止日期会使系统无法使用,这就是这种情况。例如,汽车安全气囊系统的控制系统应该检测到撞击,并迅速给气囊充气。整个过程大约需要二十五分之一秒。因此,如果系统反应,例如1秒钟的延迟的后果可能是致命的,它将是没有好处的袋子充气一旦汽车已经坠毁。

  1. Firm: No, but delayed answers are not necessary a system failure

This is the case when missing the deadline is tolerable but it will affect the quality of the service. As a simple example consider a video encryption system. Normally the password of encryption is generated in the server (video Head end) and sent to the customer set-top box. This process should be synchronized so normally the set-top box receives the 密码 before starts receiving the encrypted video frames. In this case a delay it may lead to video glitches since the set-top box is not able to decode the frames because it hasn't received the password yet. In this case the service (film, an interesting football match, etc) could be affected by not meeting the deadline. Receiving the password with delay in this case is not useful since the frames encrypted with the same have already caused the glitches.

  1. Soft : 是的,但是系统服务降级了

根据维基百科的描述。这意味着,在最后期限之外得到系统的响应对最终用户仍然是有用的,但是在达到最后期限之后,它的有用性就会降低。这种情况的一个简单例子是一个自动控制房间(或建筑物)温度的软件。在这种情况下,如果系统在读取温度传感器时有一些延迟,那么它对突然的温度变化的反应就会有点慢。然而,最终它会对变化做出反应,并相应地调整温度以保持恒定,例如。因此在这种情况下,延迟反应是有用的,但是它降低了系统的服务质量。

这个定义多年来不断扩大,对这个术语不利。现在所谓的“困难”实时就是过去简单地称为实时的东西。因此,如果系统中缺少时间窗口(而不是单边的时间期限)会导致不正确的数据或不正确的行为,应该考虑实时性。没有这个特性的系统将被认为是非实时的。

这并不是说非实时系统对时间不感兴趣,只是说这种系统中的时间需求不会导致根本不正确的结果。

考虑一个从串行端口输入数据的任务。当新数据到达时,串口触发一个事件。当软件服务该事件时,它读取并处理新数据。串行端口有一个硬件来存储传入数据(2在 MSP432上,16在 TM4C123上) ,这样,如果缓冲区已满并且有更多的数据到达,新的数据就会丢失。这个系统是硬实时的,还是硬实时的,还是软实时的?

It is 实时监控很困难 because if the response is late, data may be lost.


考虑一种助听器,它从麦克风中输入声音,操纵声音数据,然后将数据输出到扬声器。该系统通常具有小而有界的抖动,但有时助听器中的其他任务会导致一些数据延迟,从而在扬声器上引起噪声脉冲。这个系统是硬实时的还是软实时的?

It is 实时监控 because it causes an error that can be perceived but the effect is harmless and does not significantly alter the quality of the experience.


考虑将数据输出到打印机的任务。当打印机空闲时,打印机触发一个事件。当软件服务该事件时,它向打印机发送更多数据。这个系统是硬实时的还是软实时的?

它是 软实时,因为它响应得越快越好,但是系统的值(带宽是每秒打印的数据量)随着延迟而减小。

UTAustinX: UT.RTBN.12.01 x 实时蓝牙网络

硬实时系统使用优先级调度的抢占版本,使关键任务得到立即调度,而软实时系统使用非抢占版本的优先级调度,这允许当前的任务完成之前,控制转移到更高的优先级任务,造成额外的延迟。因此,在硬实时系统中严格遵守任务截止日期,而在软实时系统中则不那么严格地处理任务截止日期。