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

Cha*_*son 20 windows latency real-time

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

我一直都明白,你给处理器施加的负载越多,系统的响应速度就越慢,或者说潜伏得越多。但是,在 LatencyMon 页面的第二部分,第一句话说,“Windows 不是实时操作系统”(RTOS)。这让我思考。我的意思是,这与 Linux、Unix 或 Mac OS X 等任何其他操作系统有什么不同吗?

是否有任何“实时”操作系统?或者这仅仅是让您购买他们产品的营销计划?

编辑:

另外,是否有任何 RTOS 示例?

Shi*_*rai 21

维基百科实际上有大量令人惊讶的信息。

实时操作系统 (RTOS) 是旨在为实时应用程序请求提供服务的操作系统 (OS)。

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

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

这是很少有操作系统真正做到的事情,因为对于很多工作负载来说,它的效率较低。没有一个主要的消费者操作系统现在(或据我所知从来没有)是实时的。不幸的是,这确实意味着有时在非实时环境中的事情不得不坐在那里等待其他事情。通常,只有当某些东西在合理的时间内没有屈服时,这才会成为一个问题。

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

LynxOS
OSE
QNX
RTLinux
VxWorks
Windows CE
Run Code Online (Sandbox Code Playgroud)

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

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

Sco*_*son 19

实时操作系统通常用于嵌入式系统,它们可能负责诸如指导或系统监控之类的事情。关于实时系统(以及它与非实时系统的区别)要记住的关键是在实时系统中,如果答案迟到,那就是错误的。 您可以通过考虑在 Excel 中添加一系列数字(如果操作延迟,没有实际影响)与在汽车中刹车(延迟可能是灾难性的)来轻松了解这是如何工作的。


Law*_*ceC 10

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

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

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

对于大多数 PC 设备,如磁盘、键盘、网卡,如果服务它们的 IRQ 有一点延迟,除了性能损失之外,不会发生任何坏事。对于音频和视频输入等设备来说,这可能是一个更大的问题,其中设备不缓冲任何内容,而 PC 确实需要跟上传入的数据流。