ThreadX被认为是实时操作系统。我知道实时操作系统的一般定义和要求,然而,谁能帮助阐明为什么ThreadX可以被称为实时操作系统,或者,操作系统的哪些功能使其具有实时功能?
谢谢~
发布于 2016-05-12 01:06:38
当程序员谈到实时操作系统时,他们经常提到与管理多个进程或线程相关的功能:互斥、信号量和进程间(或线程间)通信等。
然而,真正的定义是,系统必须保证某些给定的操作总是在已知的、确定的时间内发生(即以秒为单位的时间,而不是相对的时间)。Linux和Windows都不是真正的实时操作系统。Linux或Windows计算机可以非常快,以至于您想要做的任何事情几乎都会以足够快的速度完成-但不能保证它总是在最大时间内完成。如果你正在构建一个软件系统来控制一个医疗设备或一个巨大的工厂设备,那么你需要在x毫秒内停止或启动一些东西,而不是“很快”,或者“通常足够快”。
现在在实践中,为了在一个有用的、非平凡的系统中提供这种保证,人们通常需要抢占式多任务、多线程和所有通常提到的功能,所以如果没有它们,你将很难找到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发布于 2014-01-28 05:45:44
这意味着您的响应时间是确定性的。这是您在RTOS中需要的最重要的东西之一。
在threadx中,你的线程有一个优先级。操作系统由硬件中断定时器驱动,调度器确保根据线程的优先级正确地调度线程。
例如,如果线程A(高优先级)正在等待信号量,而线程B(低优先级)正在运行,那么一旦信号量可用,线程B将被中断,线程A将被启动。
Threadx还有许多其他特性来优化上下文切换时间。例如,每个线程都有自己的堆栈。
发布于 2019-09-11 23:17:03
不是专家,但是,当你对应用程序线程/进程施加时间限制时,它就被称为实时软件。
在RTOS中,如果高优先级线程出现,则低优先级线程将被挂起,直到高优先级线程结束(或进入空闲/挂起状态)。在任何高优先级线程激活之前,低优先级线程永远不会获得时间(启用了事件时间片)。
在线程优先级相同的情况下,如果启用了时间片,则每个线程将获得特定的时间量。
你也应该在RTOS的情况下检查优先级反转。
https://stackoverflow.com/questions/11283127
复制相似问题