What does real-time mean?
There are a number of time elements involved in the characteristics of a task. One of those is the term “real-time” when applied to a task (or even to an entire application). Applied to a task, that usage alone is insufficient and can even be misleading.
It is important to understand what this commonly used term means. A misunderstanding can lead to a poor choice of a system architecture. A poor choice could lead to less than desirable system performance if not outright failure of the application.
There are different types of “real-time” and it is important to know them so that the most efficient method of performing the task’s job is chosen. The most common form is “hard real-time” followed by “soft real-time” and then “firm real-time”. A fourth variation, “weak real-time”, exists but is not frequently used.
It is quite common for an embedded system to have tasks with both hard, soft and even firm real-time requirements. What this means is that the stricter requirement should take precedence in the selection or implementation of a system architecture. If the chosen architecture can handle hard real-time, it will be capable, by definition, of handling soft and firm real-time responses.
A task having a hard real-time characteristic must respond to an externally generated stimulus within a finite and specified time – its deadline. An overrun in response time to a stimulus can be catastrophic. For example, failure to meet a deadline can cause a patient to die, a plane to crash or a train to run off its rails.
The task model alone does not determine its success or failure. The largest factor is the system architecture in which the task operates that makes it capable of ensuring that each task can complete its work prior to its deadline.
A soft real-time application is one in which a task’s missing one or more of its deadlines is tolerable so long as the application can continue timely operation and have value. While tardiness with a non-zero response value is not necessarily desirable, it is not catastrophic. Any cost in exceeding operational time constraints is applied internally to the application as a whole and indeed, may be abstract. As a result, soft real-time design is often associated with Quality of Service measurements.
The Super Loop system architecture has a well-known disadvantage of inconsistent timing in the execution of the loop. That inconsistency, except in some very special cases, usually relegates it to the area of soft real-time.
A firm real-time requirement is one that tolerates infrequently missed deadlines provided the application survives the tardy response even though the value of the response is zero. The main effect of a missed deadline is that the computation is obsolete. Thus, any benefit that was to be derived from the computation is lost. A few infrequently missed deadlines may even go unnoticed but frequent failures can render the application of little use.
A weak real-time task or application is one in which a specified number of deadlines, n, have to be met within a specified number of deadlines, m. In effect, it is a statistical model where the probability n/m defines success. This approach is most often found in applications where proper operation must deal with potential failures from other parts of the application. An example is a control system that becomes unsteady or unstable due to so many missed deadlines that the feedback it calculates is not reliable or at best probabilistic.