10

我无法决定是否将我的应用程序分类为“实时”或“接近实时”,或者甚至是其他的。

该软件在从源生成数据时立即接收数据,然后根据某些规则,在满足某些条件时发出警报。它采用每 30 秒检查最后 30 秒数据的方法,以查看是否满足规则的条件。

那是实时的吗?实时与近实时的定义阈值是什么?

编辑

我认为这是在 web 上为业务定义实时的副本。

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

4

13 回答 13

21

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

这是 StackOverflow 最大的问题:不合格的人用“听起来正确”的答案回答了很多问题并获得了投票,关心答案是否真的正确的人不会以足够快的速度胡说八道以赢得代表来修复错误的答案。由于预期的下意识反应而匿名发布。

于 2008-09-17T06:05:24.893 回答
9

Real-time is getting a required response to an event completed within the time period specified or your system fails.

People are used to thinking this must mean 'small number of milliseconds/microseconds' but that isn't necessarily true - it depends on your system.

If your system will fail if it doesn't complete it's required response within 30 seconds then it's 'real-time'.

For some systems, a fail could be catastrophic, e.g. causing multiple fatalities - this is described as safety critical, e.g. shutting down a nuclear power plant.

于 2008-09-17T08:58:29.483 回答
6

“实时”一词涵盖了相当大的范围。

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

在边界较硬的情况下,例如在汽车的喷射控制系统中,该软件被称为“硬实时”。

在边界较软的情况下,例如在音乐播放系统中,可以容忍高达 50 毫秒的变化,该系统被称为“软实时”。

所以是的,对于实时的某些定义,您的系统是实时的。

但是如果你在其他任何实际在实时系统上工作的人周围称它为实时,你可能会被嘲笑,因为 30 秒是相当大的。

于 2008-09-17T06:39:20.333 回答
3

好吧,这可能是一个营销问题,而不是技术问题。

就嵌入式硬件而言,实时涉及用于处理传入信息(中断等)的已知固定最大时间。

您当然可以将 30 秒的延迟称为实时延迟,尤其是在所述信息的传递时间长于该时间的情况下。

例如,如果您的“警报”是一封可能在邮件服务器中花费 10 分钟的电子邮件,或者是用户仅每半小时检查一次的监视器上的红十字,则 30 秒对于实时来说已经足够了。

于 2008-09-17T06:00:53.140 回答
2

我认为定义实时的一个方面是过程是确定性的——也就是说,应用程序的响应时间完全可以根据输入来预测。

因此,使用非常广泛的笔触进行绘画,任何位于 Windows 之上的应用程序充其量只能是“近乎实时的”。如果您的应用程序运行在某种沙箱平台(Java、.NET)上,您对平台功能(例如垃圾收集)没有绝对控制权,那就更是如此。

我个人的规则是“实时”不属于台式电脑。这就是 PLC 的领域(是的,它们可能正在运行诸如 QNX、VxWorx 甚至 RTLinux 之类的操作系统)。

于 2008-09-17T06:05:08.777 回答
1

我的控制朋友对“硬”实时的定义 - 迟到的信息是错误的信息。如果它需要每 1 秒到达一次,并且在 1.1 秒内到达那里,那么它对计算毫无用处。

于 2009-02-18T22:16:02.217 回答
1

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

于 2008-09-17T07:30:13.737 回答
1

我在我的网站 real-time.org 上提供了一个冗长的论述。主页有一个简报的临时链接。简报讨论了人们如何以及为什么不理解“实时”(以及“硬”、“软”和“可预测”等)的含义。它提供了一些精确和一般的定义。我听到有人不同意我对这个话题的解释,但他们都没有提出像我这样精确和笼统的东西。正如拉里金所说,“拉起椅子,让我们谈谈”。

于 2010-11-05T16:31:34.837 回答
0

我相信答案是实时系统是主观的,因为“实时”只是需求强加的及时性限制。尽管显然需要 2 小时才能响应请求的事情不是实时的,但 30 秒的延迟可能足以满足实时要求。

我在我认为的实时系统上工作,当系统中发生事件时,它会立即传播到系统上的设备,因此了解设备更新的延迟是网络延迟和所花费时间的产物更新其内存数据。

我个人不会将每 30 秒更新一次的民意调查归类为实时。作为上述系统的一部分,我们有一个 Web 应用程序,它每 30 秒刷新一次,因此向用户呈现的数据最多为 30 秒。将此与在事件发生后立即更新的获胜形式进行对比。

同样,“实时”受您对及时响应的定义的限制。

于 2008-09-17T06:05:27.030 回答
-1

我想说实时的定义取决于上下文。与音乐示例一样,实时时间需要为毫秒,但对于您的示例,实时时间可能在 30 秒左右。都是相对的。

于 2008-09-17T05:58:44.190 回答
-1

我认为您需要查看需要实时响应的特定解决方案或解决方案的一部分。实时响应是接收器(应用程序或基本上是最终用户)认为是实时的响应。

于 2008-09-17T06:00:44.233 回答
-1

实时处理微秒......主要围绕机器人技术。想想'移动手臂 30 微秒; 焊接 1000 微秒;',就像在汽车装配中一样。

您的 30 秒是基于线程睡眠还是非实时操作系统中的计时器?如果是这样,那么你有一个潜在的变化。如果您超出该差异(30.01 秒),您会认为这是失败吗?如果不是,那么它不是实时的。

于 2008-09-17T06:01:20.813 回答
-2

我同意约翰的观点,在您的场景中,您正在查看至少 30 秒的延迟,我会说这几乎是实时的。

于 2008-09-17T05:58:42.757 回答