“A real-time operating system (RTOS) is an operating system (OS) intended to serve real-time application process data as it comes in, typically without buffering delays.
The secure RTOS was initially built to meet the needs of military deployed systems, but is now available to any industry that requires security functionality for its connected systems. New cyber attacks are particularly worrying to any industry that is in some way connected to human life; a recent report from U.S. security firm IID predicted the first murder via “hacked Internet-connected device” would happen by the end of 2014. Potentially vulnerable industries include critical infrastructure/industrial-control systems, connected medical devices, connected vehicles, and even smart homes.
Key factors in an RTOS are minimal interrupt latency and minimal thread switching latency. An RTOS is valued more for how quickly or how predictably it can respond than for the amount of work it can perform in a given period of time.
For embedded devices, the general rule is that an RTOS is used when the application needs to do more than a few simple actions. An RTOS allows an application to be structured in a manner that scales as more application/system features are added (e.g. communication stacks, power management, etc.).
A RTOS has the following goals
- Small latency: It is real-time after all!
- Determinism: Again, it is real-time. You need to know how long things take to process to make sure deadlines are met.
- Structured Software: With an RTOS, you are able divide and conquer in a structure manner. It's straight-forward to add additional components into the application.
- Scalability: An RTOS must be able to scale from a simple application to a complex one with stacks, drivers, file systems, etc.
- Offload development: An RTOS manages many aspects of the system which allows a developer to focus on their application. For example an RTOS, along with scheduling, generally handles power management, interrupt table management, memory management, exception handling, etc.