A real-time operating system (RTOS) is a computer operating system that provides capabilities in which time is essential for the proper function of the application or device that it is running. A real-time operating system must allow a task to complete its operations within a defined period of time, even if the task has to perform operations that take longer than the defined period of time. A real-time operating system must provide mechanisms for guaranteeing the performance of tasks that are to complete within a given period of time. A real-time operating system may provide mechanisms to assist the task scheduler in scheduling tasks, but it is not a determinate process. The task scheduler may make tradeoffs among processor utilization, task scheduling overhead, and accuracy constraints. These tradeoffs are affected by the accuracy constraint. Hardware-based real-time operating systems are more efficient than software-based real-time operating systems because they have fewer overheads.
A soft real-time operating system (soft RTOS) is a real-time operating system that provides scheduling of tasks that imposes less strict timing constraints than a hard RTOS. By relaxing the timing requirements, a soft RTOS can make tasks that are not essential to the operation of a device or application run at a higher frequency (i.e. faster). It is required to make the processor run at a rate as close as possible to its rated frequency.
A hard real-time operating system (hard RTOS) is a computer operating system that provides capabilities in which time is essential for the proper function of the application or device that it is running. A hard RTOS has a well-defined time frame within which to complete operations and is required to meet accuracy requirements for scheduling the execution of its tasks.
The class of real-time operating systems is a concept that has been used since the 1970s. RTOSs are used to provide timing and/or timing-consistency guarantees to a program. The common implementation model is that of a processor running a single task. The operating system must take care that it can make the processor run as fast as possible while also meeting the timing requirements of the task. This is achieved using scheduling algorithms.
Another approach to resource sharing is referred to as a time-sharing system or time-based system. In this case, users can submit multiple jobs (tasks) to the system, which will run them at different times. Unlike the message-passing approach, where each task is responsible for its own resources, in time-sharing systems, all of the tasks share the resources of the system, and will need to coordinate their use of the system. Time-sharing systems are asynchronous, meaning that there is a relationship between when tasks are scheduled and when they are actually executed. One example of a time-sharing system is provided by the Unix operating system. Another example is provided by the IBM Time Sharing Facility, which was first introduced in 1969. 827ec27edc