Real-Time Applications

Among the many types of common applications for which computers are used, the most familiar are personal productivity applications or various business applications. There are also high performance, embedded applications that are often called upon to manage time-critical responses. These are among the most demanding of applications that not only need to respond correctly, but also need to respond within certain, specified time parameters, or in "real- time". Some examples of these applications include:

Definition of Real-Time Systems

There are many ways to define a real-time system. Perhaps one of the most comprehensive1 definitions is: "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."

Example: Consider the bottling equipment in a beverage plant. It's not sufficient if the equipment attempts to cap bottles at regular time intervals. If it's off by just a fraction of a second, then the bottle may not be capped properly and the beer will be spoiled. That is, the time at which the machine caps the bottle is a critical part of the process.
Practically speaking, this means that real-time applications fall into two primary groups╤those that are able to respond in "hard" real-time and other "soft" real-time applications with requirements that are less severe. Simply stated, a hard real-time operating system must, without fail, provide a response to some kind of event within a specified time window. This response must be predictable and independent of other activities undertaken by the operating system on behalf of other tasks. Providing this response implies that system calls will have a specified, measured latency period. Hard real-time systems often employ specific hardware devices with special device drivers. Using this definition, Microsoft® Windows NTTM Workstation is not a hard real-time operating system. Windows NT Workstation is a general purpose operating system that has the capability to provide very fast response times but is not as deterministic as a hard real- time system requires. In contrast, a soft real-time operating system is one that has reduced constraints on "lateness" but still must operate quickly within fairly consistent time constraints. That is, it must be "good enough" to service events so that the response should be satisfied, on average. Windows NT meets this definition.

In summary, there are very few applications which require a true real time operating system. Most applications only need an operating system which is "good enough" to meet certain requirements. In most situations, given all the features these applications require, Windows NT is probably the best system available for most of these tasks.

Common Usage of Real-Time Systems

In common usage, loose terminology uses real-time to refer to any system which modifies an industrial process based on measurements from that process. Many industrial processes such as job shop flow (controlling the flow of work through the factory) and inventory control are often lumped together into the "real-time" category.






Feature               Benefit 








Real-time priority    Application priority can be defined 







class                 for high levels of responsiveness.








Virtual page locking  Avoids paging while doing real-time







into RAM              to improve predictability of response







                      time








Deferred Procedure    Limits work done at the interrupt level







Call (DPC)            and results in improved interrupt 







                      latency. The interrupt schedules a DPC







                      but does not process it immediately, 







                      permitting other interrupts to proceed.








Interrupt masks       Disables all interrupts at equal or                                  







                      lower priorities to ensure that the    







                      latency of interrupts at higher  







                      priorities are not interfered with.







Sometimes, the term "real-time" refers to a 4KB operating system that creates and schedules primitive tasks by absolute priority, responds immediately to hardware interrupts, and does very little else. This is useful for simple applications that gather instrumentation signals or control industrial processes.

This description is still often appropriate. However, a personal computer can be equipped with sophisticated adapter boards with CPU and memory instead of just data registers. Incoming data can be buffered on the physical adapter. This enables general purpose operating systems to do what the special purpose real-time systems did previously. Several features make Windows NT an extremely good general-purpose operating system for real-time applications. Within the Microsoft Windows® family, two initiatives focus on real-time activities. Within the financial services market, where financial analysts and traders often need to know of pricing and market movements almost instantaneously, Microsoft has put together an initiative referred to as OLE for Real-Time Market Data. This initiative is designed to provide a standard way for financial professionals to get access to real-time financial data. For scientific and manufacturing users, Microsoft has been working with a number of applications and device manufacturers to define a set of Windows interfaces that data acquisition equipment can tie into easily. This effort is referred to as Windows for Science, Engineering and Manufacturing or WINSEM for short.

1 This definition is located in the real-time FAQ in the Internet's comp.realtime news group.


















Previous Page    Home    Next Page