gpt4 book ai didi

operating-system - 为什么不是每个操作系统都是实时的?

转载 作者:行者123 更新时间:2023-12-03 23:43:22 24 4
gpt4 key购买 nike

我只听说过关于 RTOS 的好消息——它们让程序员可以更好地控制调度程序,例如避免优先级倒置,他们的时序更一致,更好的多任务处理。但是所有标准桌面设置都使用非实时操作系统。所以使用 RTOS 必须有一些权衡,它们是什么?

最佳答案

RTOS 通常以吞吐量性能和特性换取可预测性和易处理性。人们通常对“实时”的定义是“确定性的”。如果不为此付出代价,您将无法获得确定性。

在通用操作系统中,我们受到“常见情况”行为的激励——我们想要非常好的平均性能和很大的灵 active 。在 RTOS 中,我们希望对“最坏情况”行为设置一个可靠的上限,并且我们为吞吐量或常见情况行为付出(通常是高昂的代价)。

是的,可以创建混合体,例如 Windows 甚至 Linux 实时线程。但是在某个地方,您通常会付出代价,因为最终只有有限的可用资源集(CPU、IO 带宽等),并且消费者操作系统和 RTOS 围绕不同的标准进行优化。一些 RT Linux 方法通过分区明确地处理这个问题。在每个分区中针对不同的假设和不同的最优性标准进行了优化。

交易了哪些特征? 我无法提供一个精确的列表——更重要的是通用操作系统往往有无数的驱动程序,并且能够跟上新设备的流失; RTOS 倾向于关注一个更小的集合,对于这些集合,及时性可以很好理解,也可以明确避免干扰其他事件。您可能不会在普通 RTOS 上选择相同的驱动程序,因为通常实现它们是不合理的。

吞吐量 记住“实时”!=“真正快速”。当系统是实时的时,这意味着事件的完成时间是其正确性的一部分。在某些情况下,这意味着非常快速地处理许多事件(高吞吐量);在其他情况下,它可能在相对缓慢但非常可预测的时期进行处理。 RTOS 中的结构可能具有高吞吐量,但通常无法达到等效 RTOS 的吞吐量,因为用于公平实现该吞吐量的技术(缓存、花哨的交互驱动调度方法、“公平”排队和锁争用)会影响反对任何单个任务的及时性的可预测性。

关于operating-system - 为什么不是每个操作系统都是实时的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5452371/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com