What are Real-Time Operating Systems?
Real-Time Operating Systems are pieces of software that toggle between different operations. RTOSs give users the perception that multiple programs are being executed simultaneously, when in reality, a single processing core is executing one task at a given point in time. RTOSs are widely used in Embedded systems because they ensure precise timing, run continuously without reboots, and its ability to assign priorities to different operations.
How RTOSs differ from standard Operating Systems
RTOSs have two primary characteristics that distinguish them from conventional (general-purpose) operating systems. The first difference pertains to priorities. General-purpose operating systems do follow strict priority guidelines, and allow for several programs and applications to run simultaneously. This is done to ensure that all operations are allocated processing time. RTOSs on the other hand, follow strict priority settings to ensure that high-priority tasks are allocated all of the available processing time. The next major difference is interruption latency. In short, general-purpose operating systems will not have a fixed response time to interruptions, and RTOSs will always have a guaranteed maximum response time to interruptions.
Different Categories of RTOSs
RTOSs can be broken up into two different categories: event response and closed loop control.
- Event Response: a process that requires a response to a stimulus in a certain amount of time in order to continue the execution of the program. An example of a real-world application of event response is an automated visual inspection of an assembly line. In order for the line to continue moving, each instance of the product on the line must be photographed, and analyzed. This process continues as long as each instance of the given product passes its visual inspection.
- Closed Loop Control: a process that requires continuous feedback data in order for any system output to be changed. These systems have strict loop deadlines to ensure that the correct instructions are being executed as soon as possible, minimizing any chances for malfunction. A real world example of closed loop control would be a cruise control system in a car. The system continues execute the most recent instruction, and when new instructions are entered, the output, being the speed of the car, changes.