Search code examples
rtos

What is the best definition of an RTOS?


I have yet to find a definition of an RTOS that is specific enough to have meaning. The best one I can find is on wiki:

https://en.wikipedia.org/wiki/Real-time_operating_system

However I have some critical comments/questions:

  1. "Real Time" seems to be undefined in all the definitions for RTOS I've found. Nothing can be fast as actual real time (infinitesimally small!). Therefore, I believe "real time" only makes sense in the context of the observer. Real time for a human using an iPhone user might be <20ms because human eye sight cannot detect changes faster than that. For an air bag deployment it might be <1ms. All definitions on the internet seem to gloss over the definition of "real time"!
  2. If RTOS is defined by the requirement to execute something within a specific time frame ("deadline"), why does jitter come into the definition? If the iPhone response jitters between 12-14ms, is it no longer responding in real time? It meets the 20ms requirement, right? If one time the response went to 100ms, the user might notice, at which point the system is not an RTOS
  3. How can there possibly be a "soft" RTOS?! The definition of RTOS is meeting a particular deadline time requirement. If it doesn't meet it, than its not an RTOS! The very definition of RTOS prohibits a "soft" RTOS

To me it seems there is no formal and precise definition of RTOS. It's a general term to explain the characteristic of an OS who's main priority is the appearance of "real time" (per requirement number) to a particular type of observer. It also seems like the name has taken on implementation meaning such as how things are processed, multi-tasking, message passing, semaphores, etc... all which may NOT be part of an RTOS at all if the system fails to respond within the "deadline" requirement, right?

Sorry about such a ubiquitous question, but I can't get a clear picture in my brain. All definitions I've found are simply not precise enough or cloud the definition with implementation details.


Solution

  • There is an Embedded Systems Dictionary. Here are some excerpts:

    real-time adj. Having timeliness requirements, typically in the form of deadlines that can’t be missed.

    real-time operating system n. An operating system designed specifically for use in real-time systems. Abbreviated RTOS.

    real-time system n. Any computer system, embedded or otherwise, that has timeliness requirements. The following question can be used to distinguish real-time systems from the rest: “Is a late answer as bad, or even worse, than a wrong answer?” In other words, what happens if the computation doesn’t finish in time? If nothing bad happens, it’s not a real-time system. If someone dies or the mission fails, it’s generally considered “hard” real-time, which is meant to imply that the system has hard deadlines. Everything in between is “soft” real-time.