In computing, real-time refers to a time frame that is very brief, appearing to be immediate. When a computer processes data at this speed, it reads and handles data as it is received, producing results without delay. For example, a website that is updated in real-time will allow its viewers to see changes as soon as they occur, rather than waiting for updates to be visible at some later date.
A non-real-time computer process does not have a deadline. A real-time system, on the other hand, is expected to respond not just quickly, but also within a predictable period of time. A good example is a car’s anti-lock break system. An anti-lock brake system is expected to release a vehicle’s brakes, preventing dangerous wheel locking, in a predictably short time frame.
Unfortunately, there are times when real-time systems fail to respond as desired. Such a process fails when its task is not completed before its deadline. In computing, there is no grace period given because of other demands on a system. Deadlines must be kept without regard to other factors; they are considered mission critical.
When a process is considered hard real-time, it must complete its operation by a specific time. If it fails to meet its deadline, its operation is without value and the system for which it is a component could face failure. When a system is considered soft real-time, however, there is some room for lateness. For example, in such a system, a delayed process may not cause the entire system to fail. Instead, it may lead to a decrease in the usual quality of the process or system.
Hard real-time systems are often used in embedded systems. Consider, for example, a car engine control system. Such a system is considered hard because a late process could cause the engine to fail. These systems are employed when it is crucial that a task or event is handled by a strict deadline. This is typically necessary when damage or the loss of life may occur as a result of a system failure.
Soft real-time systems are usually employed when there are multiple, connected systems that must be maintained despite shifting events and circumstances. These systems are also used when concurrent access requirements are present. For example, the software used to maintain travel schedules for major transportation companies is often soft real-time. It is necessary for such software to update schedules with little delay. However, a delay of a few seconds is not likely to cause mayhem.