Real-Time Systems

来自osdev
跳到导航 跳到搜索

这篇文章写得像一篇评论文章。 请把它 修改 的更具体一些.

实时操作系统是特定进程或操作具有保证的最小和/或最大响应时间的系统。 也就是说,系统确保它将在时间 t' 之后,但在时间 t2 之前完成操作x,无论 tt2 都是不可以不在控制范围,这甚至以抢占其他较低优先级的操作为代价。

速度本身并不关键; 主要的目标是可预测性。 小于 t 的响应时间可能与大于 t2 的响应时间一样糟糕甚至更糟。

“软” 实时系统 (例如激光打印机微控制器) 承诺尽力而为的可靠性; “硬” 实时系统 (例如,飞机中的 “线控飞行” 航空电子设备) 需要具有零故障容忍的可靠性。

作为一般规则背景下,实时操作系统仅用于与时间相关的嵌入式应用程序中; 通用系统很少需要满足实时约束。 当进行开发时,实时设计考虑可能会排除一些常用技术的使用,例如虚拟内存,这可能会使系统的行为不太确定。 然而,尽力实时功能在用于支持诸如数字音频工作站之类的应用程序的需求的通用系统中是有用的,这些应用程序通常同时即要求可靠性 (实时记录) 又需要低时间延迟 (实时合成/处理)。

QNX是x86平台最著名的实时操作系统之一。 QNX的每个系统调用都记录有 “最坏情况完成时间”。

应该注意的是,“实时” 不一定意味着操作系统非常擅长播放MPEG视频或者能充分有效使用硬件 - 这是一个常见的误解。 相反,对于提供硬实时服务的系统来说,意味着它可以仅使用系统有限百分比的资源,包括 (或甚至特别是) CPU时间,在大多数情况下不会全部被系统使用,因为它必须确保这些资源可用于需要的实时操作。 它还从根本上改变了为系统构建软件的方式。 例如,速率单调调度(Rate Monotonic Scheduling) - 一种硬实时调度算法 - 可以保证限制CPU时间负载只有70% 。 除此之外,系统还必须保障 “可按下紧急红色按钮”,因为它不能保证任何任务不被中断。

这意味着应用程序必须事先声明其运行时要求 - 必须在一秒钟内调用它们的频率,可以接受的最大响应时间等。 所有这些信息必须由应用程序程序员提供。 在某些情况下,信息以隐式形式提供,例如通过将过程安排为具有特定优先级顺序,从而使其能够实现其目标。

最重要的是,硬实时适用于工业,医疗或军事系统。 在你的普通桌面上,显然不是它的用武之地。

另见

文章

外部链接