A Real-Time System is one in which its functioning is said to be correct not based only on the values produced by it, but also considering the physical time at which the results are produced. Examples of such systems are: air traffic control systems, networked multimedia systems, command control systems, etc.
The state of the system evolves with time, examples of such states might include: temperature, position, acceleration, pressure, etc. This means that such systems will have many sensors and many actuators, helping to sense, compute and actuate in a timely fashion.
A hard real-time system is one where a hard assumption about the timing constraint or deadline for a task must be met at all times. Failing to meet this timing constraint is characterized as a fatal fault. Examples of such systems are: heart pacemakers, defense applications, avionics, etc.
In a soft real-time system, missing a deadline is not considered a fatal fault. The system is able to continue functioning correctly even if it misses a few deadlines. Only the overall performance of such system is affected since missing deadlines might cause the performance to degrade and cascade. Examples of soft real-time systems are: telephone switches, online transaction systems, multimedia systems, etc.
In both categories the deadlines will vary according to the system itself being built. In soft real-time systems, the timing constraints might not be the primary consideration about the system but it plays an important role. Usually hard real-time systems are thought as being ones where the answers must be instantaneous, but a system that must be highly available, with a rule that it must not be down for more than a minute can be characterized as a hard real-time system, and failing this rule because the restart process took more than one minute might cause serious damage as any other failure in a more “instantaneous system” like an avionic system for example.
These systems need to be predictable (with deterministic behavior) since correctness is dependent on timing constraints, so there must be a way to check that such systems meet this criteria. In case of soft real-time systems, the timing requirements are usually specified in probabilistic terms: setting up a connection through the network for a phone call should take no more than 10 seconds for 95% of the time and no more than 20 seconds for 99.95% of the time.
TODO: add information about scheduling models, design and techniques to achieve the system’s constraints.