什么构成“实时”?

10

我在决定将我的应用程序归类为“实时”还是“准实时”,或者可能是其他什么时遇到了问题。

该软件立即接收生成源数据,然后基于某些规则,在满足特定条件时引发警报。它采用每 30 秒检查过去 30 秒数据的方法,以查看是否已满足某一规则的标准。

这算是实时的吗?实时与准实时的定义阈值是什么?

编辑

我认为这是定义在线业务实时性的重复。

请决定上面的线程是否不足以回答您的问题。


这是一个先前提出过的问题的副本。让我找找看。 - Jon Limjap
13个回答

21

实时 = 解决问题的最长时间保证。根据应用程序的要求,可能是皮秒或分钟。

这是StackOverflow最大的问题:不合格的人回答了很多问题,并得到了投票支持,而那些真正关心答案是否正确的人没有足够快地发表无意义的言论来赚取声望以修正错误的答案。由于预期会有膝反应,匿名发布此帖。


完全同意你的观点,无论是对答案还是对那些不知道任何东西就回答问题的人。 - Stu Thompson
如果 Stack Overflow 能自动对任何以“我认为…”或“依我看…”开头的回答进行负面评价,那就太好了。但正如 Stu 所指出的那样,正确的答案通常会脱颖而出,尽管可能需要几个小时或几天的时间。 - Kristopher Johnson

9
实时是指在规定的时间内完成对事件的必要响应,否则您的系统将失败。人们习惯于认为这意味着“几毫秒/微秒”,但这并不一定正确——它取决于您的系统。如果您的系统在30秒内没有完成所需的响应就会失败,那么它就是“实时”的。对于某些系统来说,失败可能是灾难性的,例如造成多人死亡——这被称为“安全关键”,例如关闭核电站。

6

“实时”这个词覆盖了相当广泛的领域。

模糊的定义是“在有限响应时间内运行的软件”。

当边界是硬性的,例如在汽车喷油控制系统中,该软件被称为“硬实时”。

当边界是软性的,例如在音乐播放系统中,容忍变化高达50毫秒,该系统被称为“软实时”。

因此,根据某种实时定义,您的系统是实时的。

但如果你在任何真正从事实时系统工作的人面前称之为“实时”,你可能会遭到嘲笑,因为30秒相当长。


3

嗯,这可能更多是一个市场营销问题,而不是技术问题。

在嵌入式硬件方面,实时性涉及处理传入信息(中断等)的已知固定最大时间。

如果传递所述信息的时间超过30秒,您可以将30秒延迟称为实时性。

例如,如果您的“警报”是一封电子邮件,在邮件服务器上可能需要10分钟或用户每半小时才检查一次的监视器上的红十字标记,则30秒已经足够实时了。


2
我认为定义实时的一个方面是过程是确定性的 - 也就是说,应用程序的响应时间完全可以根据输入进行预测。
因此,粗略地说,任何运行在Windows上的应用程序最多只能是“准实时”。如果您的应用程序运行在某种沙盒平台(Java,.NET)上,您对平台功能(例如垃圾回收)没有绝对控制,那么情况会更加如此。
我的个人规则是,“实时”不适用于桌面PC;这是PLC的领域(是的,它们可能运行像QNX、VxWorx甚至RTLinux这样的操作系统)。

1

我在我的网站real-time.org上提供了一篇长篇论述。主页有一个临时链接到简报。该简报讨论了人们为什么不理解“实时”(以及“硬”、“软”、“可预测”等)的含义以及如何理解。它提供了一些精确和通用的定义。我听过一些人不同意我的解释,但他们中没有一个人提出任何像我这样精确和通用的东西。就像拉里·金所说的那样,“拉把椅子,我们来谈谈吧。”


1

定义“实时”的另一种方法是通过评估许多RTOS(实时操作系统)的功能来确定。例如,QNX的定义在这里。请注意,它们符合POSIX PSE52实时控制器1003.13-2003系统产品标准。大多数嵌入式操作系统将提供类似的功能。


1

从我的控制领域朋友那里得出的“硬”实时定义 - 晚到的信息就是错误的信息。如果它需要每1秒钟到达一次,但是在1.1秒钟到达,对于计算来说就没有用了。


1
我认为这是最好的定义。实时并不意味着特定的“速度”模式——它意味着程序的正确性不仅仅定义为正确的输出,还要在正确的时间交付该输出(这可能是确定性的,但也可能不是,并且可以定义为纳秒、分钟甚至几天!)——JA - andersoj

0

我认为答案是:实时系统是主观的,因为“实时”只是由需求所强加的时间性约束。虽然显然需要2小时才能响应请求的东西不是实时的,但30秒的延迟可能足以符合实时要求。

我从事我认为是实时系统的工作,在这些系统中,当系统中发生事件时,它会立即传播到系统上的设备,以便了解设备更新的延迟是网络延迟和更新其内存中数据所需的时间的乘积。

个人而言,我不会将每30秒轮询更新的东西归类为实时系统。我们的Web应用程序是上述系统的一部分,它每30秒刷新一次,因此用户看到的数据最多为30秒前的数据。与之相比,Win窗体等效项在事件发生后立即更新。

再次强调,“实时”取决于您对及时响应的定义。


-1
我认为实时的定义取决于上下文。就像音乐的例子一样,实时需要是毫秒级别的,但是在你的例子中,实时可能在30秒左右。这都是相对的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接