Operating system ThreadX的哪些方面使其成为实时操作系统?

Operating system ThreadX的哪些方面使其成为实时操作系统?,operating-system,real-time,threadx,Operating System,Real Time,Threadx,ThreadX被认为是RTOS。 我知道RTOS的一般定义和要求,但是,有人能帮我解释一下为什么ThreadX可以被称为RTOS,或者,操作系统的哪些功能使其具有实时性 谢谢~这意味着您的响应时间是确定的。 这是RTOS中最重要的事情之一 在threadx中,线程具有优先级。操作系统由硬件中断计时器驱动,调度程序确保根据线程优先级正确调度线程 例如,如果线程A(高优先级)正在等待信号量,而线程B(低优先级)正在运行,那么一旦信号量可用,线程B就会中断,线程A就会启动 Threadx还有许多其他功

ThreadX被认为是RTOS。 我知道RTOS的一般定义和要求,但是,有人能帮我解释一下为什么ThreadX可以被称为RTOS,或者,操作系统的哪些功能使其具有实时性


谢谢~

这意味着您的响应时间是确定的。 这是RTOS中最重要的事情之一

在threadx中,线程具有优先级。操作系统由硬件中断计时器驱动,调度程序确保根据线程优先级正确调度线程

例如,如果线程A(高优先级)正在等待信号量,而线程B(低优先级)正在运行,那么一旦信号量可用,线程B就会中断,线程A就会启动

Threadx还有许多其他功能可以优化上下文切换时间。 例如,每个线程都有自己的堆栈


有关更多详细信息,请参见:

当程序员谈论实时操作系统时,他们经常提到与管理多个进程或线程相关的功能:互斥、信号量和进程间(或线程间)通信等

然而,真正的定义是,系统必须保证某些给定的操作总是在已知的确定时间内发生(即以秒为单位的时间,而不是相对而言的时间)。Linux和Windows都不是真正的实时操作系统。Linux或Windows计算机的运行速度可能非常快,以至于你想做的任何事情几乎总是足够快——但不能保证它总是在最长时间内完成。如果你正在构建一个软件系统来控制一个医疗设备或一个巨大的工厂设备,那么你需要在x毫秒内停止或启动一些东西,而不是“很快”,或者“通常足够快”

现在在实践中,要在一个有用的、非平凡的系统中提供这种保证,通常需要先发制人的多任务、多线程和所有通常提到的特性,因此如果没有它们,您将很难找到RTO。然而,RTOS的定义特征在名称上是正确的:事情可以在真实的时间内发生

关于您的具体问题,请访问ThreadX网站:

ThreadX is deteriminstic. A high priority thread starts responding to 
an external event on the order of the time it takes to perform a 
highly optimized ThreadX context switch.

    - Boot time: 300 cycles
    - Context switch time: <100 cycles
    - Semaphore get: 30 cycles
ThreadX已确定。高优先级线程开始响应
一个外部事件,按执行事件所需的时间顺序排列
高度优化的ThreadX上下文开关。
-启动时间:300个周期

-上下文切换时间:不是专家,但当您对应用程序线程/进程施加时间限制时,它被称为实时软件

在RTOS中,如果高优先级线程出现,低优先级线程将被挂起,直到高优先级线程完成(或进入空闲/挂起状态)。在任何高优先级线程处于活动状态之前,低优先级线程永远不会获得时间(启用事件时间片)

在线程优先级相同的情况下,如果启用了时间片,则每个线程将获得特定的时间量


您还应该检查RTOS情况下的优先级反转。

无论系统大小,ThreadX都将具有相同的响应时间:如果系统具有一个线程或多个线程、一个信号量或多个线程等,则响应时间将相同。所有操作都有恒定的响应时间。线程抢占时间是有界且恒定的。中断响应时间是有界且恒定的。ThreadX提供的功能级别有时在学术文献中被描述为“硬实时”。

我想知道,线程优先级是否会使ThreadX成为RTO:通用Linux为其进程提供不同的优先级,但我们不能说Linux是RTO…不过,请参阅感谢指针,wiki中写道:与大多数RTOS一样,ThreadX使用多任务内核,具有抢占式调度、快速中断响应、内存管理、线程间通信、互斥、事件通知和线程同步功能。这一点太模糊了,一些功能也可以在许多通用操作系统中找到。你能分享一些更详细的信息吗?回答你的问题,贾斯汀,需要很多底层线程操作系统架构和应用程序的背景知识。例如,ThreadX操作系统的最小内存占用量为2K(没错),提供了基于任务的线程所需的所有功能。在ThreadX中执行特定任务比在Linux中执行某些任务要快得多,速度要快数百万倍。例如,启动时间是以CPU周期(需要300-400)为单位测量的。对于Linux,这个数字将是数百万(甚至数十亿)。如果这个回答似乎太晚了(我上次使用这个帐户登录已经很久了):我不完全同意你的评论,你的评论基本上是针对操作系统的速度而不是确定性的。我认为是后者造就了操作系统RTOS。感谢您的回复。但在我看来,ThreadX网站上的引用仍然说明了它的速度有多快。我仍然看不出是什么使它对外部事件的反应具有决定性