What is Real Time and Why Do I Need It?

Real time is an often misunderstood - and misapplied - property of operating systems. In this article, I will attempt to provide a summary of some of the critical elements of realtime computing and discuss a few design considerations and benefits.

We can start with a basic definition of a realtime system, as defined in the FAQ for the comp.realtime newsgroup:

"A realtime system is one in which the correctness of the computations not only depends upon the logical correctness of the computation but also upon the time at which the result is produced. If the timing constraints of the system are not met, system failure is said to have occurred."

Real time, then, is a property of systems where time is literally "of the essence." In a realtime system, the value of a computation depends on how timely the answer is. For example, a computation that is completed late has a diminishing value, or no value whatsoever, and a computation completed early is of no extra value. Real time is always a matter of degree, since even batch computing systems have a realtime aspect to them - nobody wants to get their payroll deposit two weeks late!

Problems arise when there is competition for resources in the system and resources are shared among many activities, which is where we begin to apply the realtime property to operating systems. In implementing any realtime system, a critical step in the process will be the determination of a schedule of activities such that all activities will be completed on time.

Any realtime system will comprise different types of activities - those that can be scheduled, those that cannot be scheduled, such as operating-system facilities and interrupt handlers, and non-realtime activities. If non-schedulable activities can execute in preference to schedulable activities, they will affect the ability of the system to handle time constraints.

View Entire Paper | Previous Page | White Papers Search

If you found this page useful, bookmark and share it on: