C 实时系统和确定性系统之间有区别吗?

C 实时系统和确定性系统之间有区别吗?,c,embedded,real-time,definition,deterministic,C,Embedded,Real Time,Definition,Deterministic,在工作中,我们正在讨论一个新平台的设计,其中一位高层管理人员说,它需要运行我们当前的代码库(Linux上的C),但必须是实时的,因为它需要在不到一秒钟的时间内响应各种输入。我指出: 这一点并不意味着它需要“实时”,只意味着它需要更快的时钟和更精简的中断处理 一个要考虑的要点是正在使用的操作系统。他们想坚持使用嵌入式Linux,我指出我们需要一个RTOS。由于内核/用户空间内存分割,使用Linux将阻止“实时”,因此I/O通过引入延迟的文件和套接字完成 我们真正需要确定的是,它是否需要确定性(需要

在工作中,我们正在讨论一个新平台的设计,其中一位高层管理人员说,它需要运行我们当前的代码库(Linux上的C),但必须是实时的,因为它需要在不到一秒钟的时间内响应各种输入。我指出:

  • 这一点并不意味着它需要“实时”,只意味着它需要更快的时钟和更精简的中断处理
  • 一个要考虑的要点是正在使用的操作系统。他们想坚持使用嵌入式Linux,我指出我们需要一个RTOS。由于内核/用户空间内存分割,使用Linux将阻止“实时”,因此I/O通过引入延迟的文件和套接字完成
  • 我们真正需要确定的是,它是否需要确定性(需要响应中的输入,根据
    实时
    标记的定义:

    当活动完成的及时性是一个功能需求和正确性条件,而不仅仅是一个性能指标时,任务就是实时的。实时系统是指一些(尽管可能不是全部)任务是实时任务的系统

    换句话说,如果您的系统响应速度太慢而无法满足最后期限,则系统需要实时,并且您需要RTOS


    实时系统不需要是确定性的:如果响应时间在50ms和150ms之间随机变化,但响应时间从不超过150ms,则系统是非确定性的,但仍然是实时的。

    您需要区分:

    • 硬实时:必须遵守响应时间的绝对限制(视为故障)-例如,当您控制机器人电机或医疗设备时,如果未能在截止日期前完成任务可能会造成灾难性后果,这一点是适当的
    • 软实时:需要在大多数时间快速响应(可能是99.99%+),但如果响应平均速度非常快,则偶尔违反时间限制是可以接受的。例如,在电脑游戏中执行实时动画时,这是合适的-错过最后期限可能会导致跳过帧,但不会从根本上破坏游戏体验
    只要您有足够的硬件,并充分注意识别和优化瓶颈,软实时在大多数系统中都很容易实现。通过一些调整,甚至可以在具有非确定性暂停的系统中实现(例如Java中的垃圾收集)

    硬实时需要专门的操作系统支持(以保证调度)和确定性算法(因此一旦调度,任务就保证在截止日期内完成)。要做到这一点很难,需要对整个硬件/软件堆栈进行仔细设计


    重要的是要注意,大多数商业应用程序都不需要这两个方面:特别是,我认为,针对一个的应用程序,听起来你在RTO的轨道上是正确的。不同的RTO优先考虑不同的事情,无论是健壮性、速度还是其他方面。你需要弄清楚你是需要硬RTO还是软RTO,并且基于wha有一件事是肯定的,使用常规操作系统和实时操作系统之间有着严重的区别


    注意:对于最真实的实时系统,您可能需要基于事件的硬解析,这样您就可以保证您的进程也能在您期望的时候执行。

    如果您有足够的时间进行实验,您可以尝试使用
    RTLinux
    RTAI
    linux上的操作系统,但实时应用程序将移动到RTOS部分。在这种情况下,您将(可能)实现RTOS或实时操作系统是为嵌入式应用程序设计的。在处理关键应用程序的多任务系统中,操作系统必须 1.内存分配中的确定性, 2.应允许不同线程、任务、进程的CPU时间, 3.内核必须是非抢占的,这意味着上下文切换只能在任务执行结束后发生 因此不能使用普通的windows或Linux。 嵌入式系统中的RTO示例:卫星、F1赛车、汽车导航系统

    嵌入式系统:设计用于执行单个或几个专用功能的系统。 带有RTOS的系统:也可以是嵌入式系统,但RTOS自然会用于需要执行许多功能的实时系统。 实时系统:能够在一定/预测的时间内提供输出的系统。这并不意味着实时系统更快。 两者之间的区别: 1.普通嵌入式系统不是实时系统
    2.具有RTO的系统是实时系统。

    实时计算机意味着硬时间约束,而不是仅满足90%时间的约束。时间约束是硬约束还是不硬约束?这决定了您需要哪种系统。我认为这取决于您平台的预期容量。它更容易、更快为了保留现有的linux代码,只需购买一个速度非常快的处理器,而不是尝试移植到RTOS,并且在没有地址空间保护的情况下生存。但是,如果产品的容量非常大,那么CPU的成本就更值得考虑。@TJD-即使使用速度最快的处理器,也不能保证会出现约束如我所知,一个具有RTC和高时钟速率的uC系统将(可能)受到操作系统+1硬/软区别的限制。硬实时系统的另一个很好的例子是飞机上的航空电子/飞行控制系统,在那里,满足最后期限是至关重要的。+1,一个有趣的点,我喜欢定义调整。我们没有