Share this article:
What is “Real-Time” Computing?
The term “real time” is widely used nowadays. Although it is a technical term, it finds its way into quite normal conversation. I might be heard to say “I do not watch much real-time TV”, meaning that I record programs to watch at my convenience. So, colloquially, real time means “immediate” or “occurring now”. How does this align with its precise meaning when we refer to a real time operating system, for example? …
Looking up “real-time system” in a rather old computer dictionary yields:
“Any system in which the processing of data input to the system to obtain a result occurs virtually simultaneously with the event generating that data.”
It cites airline booking systems being an example. This is clearly not a useful definition for our needs.
Here is a better definition:
“A real-time 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.”
Another way of putting this definition is to say that a real time system is, above all, predictable. We tend to use the term deterministic.
So a deterministic operating system performs all its actions in a well defined timeframe and enables a programmer to produce applications with the same characteristic. Real time does not mean fast – it means fast enough for the specific requirements of the application in hand.
Unfortunately, it is not quite so black and white. An OS can have a degree of determinism – it is a question of the variance between the time taken to do operations under different circumstances. So, a classic RTOS, like Nucleus, has a very low variance and is, hence, very deterministic. Linux, on the other hand, generally exhibits quite a high variance and may not normally be described as real time.
There is always the “brute force” approach to building a system, where you design with enough raw CPU power that the speed/variance of the OS hardly matters, as everything will be done in time. For some requirements, that might be a good solution, but, for many, such a profligate use of resources is not an option.
Read more from Colin on SciTech Connect:
- Staying Inline
- Thanks for the Memory
- Software Product Quality: Belief or Proof?
- Embedded Optimization: Small or Fast?
- C, C++ and the Family Tree
- Agile Embedded
Colin’s most recent publication, Embedded Software: The Works is available now on the Elsevier Store. Save 30% on his book and other Newnes Press and embedded systems books. Use discount code “STC3014″ at checkout.
About the Author
You can read more about Colin and his work on embedded systems at The Colin Walls Blog at Mentor Graphics here. Connect with Colin online here:
Computing functionality is ubiquitous. Today this logic is built into almost any machine you can think of, from home electronics and appliances to motor vehicles, and it governs the infrastructures we depend on daily — telecommunication, public utilities, transportation. Maintaining it all and driving it forward are professionals and researchers in computer science, across disciplines including:
- Computer Architecture and Computer Organization and Design
- Data Management, Big Data, Data Warehousing, Data Mining, and Business Intelligence (BI)
- Human Computer Interaction (HCI), User Experience (UX), User Interface (UI), Interaction Design and Usability
- Artificial intelligence (AI)