A real-time system is a computer system that requires the system must produce the "correct" computing result as well as the response should be produced within a specified deadline period or specific time constrain. It has power to process the input and produces expected result without any delay.
There are many examples we can found in our daily routine where real time systems are embedded. In domestic appliances like microwaves, ovens and dishwashers. RTOS also found in consumer digital devices like cameras and MP3 players. Our daily communication devices cellular phones and Blackberry handheld devices are also based on RTOS. They are also present in larger entities, such as automobiles and aeroplanes.
Figure below shows the basic structure of real time operating system in which RT system placed in between operator (human interface) and controlled object i.e. instrumentation interface like sensors, actuators etc.
General structure of RTOS
Characteristics of Real Time Operating System
In this section, we will see the characteristics of real-time systems and also point out the issues related to designing both soft and hard real-time operating systems.
The following characteristics are typical of many real-time systems:
• Simple and Single purpose
• Small size
• Inexpensively mass-produced
• Specific timing requirements
Simple and Single Purpose
Personal computer system has multiple applications. A Real Time Operating System basically designed for single purpose only. It doesn’t serve the various applications within a single platform. E.g: Washing machine is a embedded real time machine which use for washing the cloths not for heating the food. Same as microwave oven used just for cooking the food it can’t play the music. RTOS don’t have use for multiple purposes so it’s a simple in design.
Many real-time systems exist in environments where physical space is limited. E.g: Space required for wristwatch or microwave is very less as compare to Computer system. So we can say that real time system doesn’t required both CPU power and memory. Whereas most PC and server systems have 32 or 64-bit processors, many real-time systems run on 8 or 16-bit processors. Similarly, a desktop PC might have several gigabytes of physical memory, whereas a real-time system might have less than a megabyte.
Real time systems are found mostly in home appliances and consumer devices. Cost of such a devices like digital cameras, microwave ovens, and thermostats is really affordable to the users. So these are mass-produced in very cost conscious environments. Thus, the microprocessors for real-time systems must also be inexpensively mass-produced.
Specific timing requirements
Real-time operating systems should consider timing requirements by using scheduling algorithms that give real-time processes the highest scheduling priorities. Scheduler decides the priority of tasks and priority of tasks does not degrade over the time. Timing requirements can be address by minimizing the response time of interrupts. A critical real-time system requires sufficient time for processing an external events. This is known as the response time and it lies within a predetermined value in all possible situations. Basically, a real-time system is characterized by correctness that involves both the logical outputs correctness and timeliness.
Some systems might be operates for a long time without user intervention. The real time system provides reliability that it surely produces result in given time and chooses the most profitable action for current operation.
Performance is a most important aspect that must be considered when choosing a RTOS. Real-time operating systems are different and perform differently. Key aspect for a RTOS is that its determinism guarantees that request and responses of data happen within a set period of time no matter what else is happening in the PC system. When determining the best RTOS, ask questions such as whether the system is showing any jitters within your tolerance range and thereby providing the determinism that you need. RTOS performance should be determined by a system’s dependable in executing calls within a specified period, regardless of anything else happening on the system.