“Windows不是实时操作系统”是什么意思?


19

我遇到了一个名为LatencyMon的应用程序,它显然会进行延迟监控。

我一直都知道,你在处理器上加载的负载越多,系统的响应性越小,或者潜在的越多。但是,在LatencyMon页面的第二部分中,第一句话说“Windows不是实时操作系统”(RTOS)。这让我思考。我的意思是,这与Linux,Unix或Mac OS X等其他操作系统有什么不同?

有没有“实时”操作系统?或者它只是一个让你购买他们产品的营销方案?

编辑:

此外,还有RTOS的例子吗?


4
例如,QNX是实时的。

Answers:


21

维基百科在这里实际上有惊人的丰富信息。

实时操作系统(RTOS)是用于提供实时应用程序请求的操作系统(OS)。

RTOS的一个关键特性是它在接受和完成应用程序任务所需的时间量方面的一致性水平; 可变性是抖动。硬实时操作系统比软实时操作系统具有更少的抖动。主要设计目标不是高吞吐量,而是软性或硬性能类别的保证。通常或通常可以满足截止时间的RTOS是一个软实时操作系统,但如果它能够确定地满足截止日期,则它是一个硬实时操作系统。

RTOS具有用于调度的高级算法。调度程序灵活性可实现更广泛的计算机系统流程优先级编排,但实时操作系统更常用于一组狭窄的应用程序。实时操作系统的关键因素是最小的中断延迟和最小的线程切换延迟; 实时操作系统的重要性在于它能够以多快的速度或可预测的速度响应,而不是它在给定的时间段内可以执行的工作量。

这是很少有操作系统实际执行的操作,因为对于大量工作负载而言,它的效率会降低。现在没有一个主要的消费者操作系统(或据我所知)是实时的。不幸的是,它确实意味着有时非实时环境中的事物必须等待其他事情。一般情况下,当某些东西在合理的时间内没有产生时,这只会成为一个问题。

目前,最知名,部署最广泛的实时操作系统是:

LynxOS
OSE
QNX
RTLinux
VxWorks
Windows CE

有关完整列表,请参阅实时操作系统列表。


6
实时操作系统通常用于非常专用的角色,例如极其精确的控制系统,其中决策/计算/等必须在非常严格的时间范围内完成。
Lamar B

有没有RTOS的例子?在这方面更新问题。
Chad Harrison


什么@ ta.speot.is说 - 文章中有一些已经链接。不过,我会编辑一些内容。
Shinrai

我没有到维基页面的底部...抱歉:/
Chad Harrison

19

实时操作系统通常用于嵌入式系统,在这些系统中,它们可能负责指导或系统监视等操作。关于实时系统(以及它与非实时系统的不同之处)要记住的关键是,在实时系统中,如果答案迟到,那就错了。 通过考虑在Excel中添加一系列数字(如果操作延迟,没有实际影响)与在汽车中应用制动(延迟可能是灾难性的)相比,您可以很容易地看到它是如何工作的。


10

基本上,RTOS可以保证它可以在特定(通常很低)的时间范围内为IRQ(中断请求)提供服务。标准操作系统没有这样的保证。

在大多数现代系统中,大多数设备都可以生成IRQ。这会导致CPU停止(即中断)正在执行的操作并运行中断服务程序。我们的想法是,该服务程序可以满足设备需求,即从设备中获取数据并进入RAM,告诉设备下一步该做什么,等等。

在x86上,由于CPU上只有1条IRQ线,当它收到中断时,会自动禁止进一步的中断(NMI,RESET和SMI除外),直到CPU确认中断源并重新启用它们为止。因此,在标准i386 / amd64 Windows下,良好的设备驱动程序将在此状态下执行最少的处理,只需足以重新启用中断,然后将中断的完整处理推迟到以后(因为系统在技术上只能为每个CPU提供1个中断服务)一次核心)。我不确定,但我相信Linux也是如此。尽管如此,对于中断服务的时间没有任何硬性保证。

对于大多数PC设备,例如磁盘,键盘,NIC,如果IRQ稍有延迟,除了性能损失之外不会发生任何不良情况。对于诸如音频和视频输入之类的设备而言,这可能是一个更大的问题,其中设备不缓冲任何东西,并且PC确实需要跟上传入的数据流。


你能用“x86只有1条IRQ线”来解释你的意思吗?上次我用80186计算机绕线(几十年前),我似乎记得8259 PIC有8个通道,当时标称PC有第二个级联,总共15个通道,不包括NMI?
Glenn Slayden 2017年

你需要精确的PIC,因为x86只有一条IRQ线但是如果x86中断被禁用,那么PIC只能等到CPU重新启用它们,而IIRC就是这样做的。IIRC其他CPU(如68000)有3个中断引脚,并且预计CPU本身的编码优先级为0-7。虽然现在我实际上考虑过它,也许68000在接收到任何IRQ时也禁用了所有中断 - 我从未编程过68000.
LawrenceC

啊,是的,现在我记得了。而IIRC 8259芯片设计的“优先级”方面 - 通过允许嵌套的IRQ处理 - 应该鼓励操作系统尽可能少地禁用中断,但是PC中断线被随意分配,击败了进场?无论哪种方式,肯定会在CLI下调用任何大量的代码...... STI从来就不是故意的。
Glenn Slayden 2017年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.