Real Time
A computer program or an operating system is considered to be real-time if timing constraints are met in order to make it work correctly, i.e. timeliness plays a significant role. In general the following classes are distinguished :
Hard Real Time
A system is considered to be hard real-time if all time constraints imposed by the external world, so-called deadlines, are strictly met within a predefined tolerance, both for a priori deadlines which can be scheduled, and for sporadic deadlines such as interrupts. This means that the worst case timing deviations must be within that predefined tolerance. A such property is required for safety critical applications where missing a deadline has catastrophic consequences.
Soft Real Time
A system is considered to be soft real time if all time contraints imposed by the external world, so-called deadlines, are met in a statistical sense, e.g. the mean value of timing deviation is less than a predefined tolerance. This OS property is used for multimedia applications where missing a deadline has no catastrophic consequences.
Firm Real Time
This is a mixture of soft realtime and hard real-time whereas the statistical properties of timing deviations have to fulfil certain requirements.
Note that the above definitions are qualitative. No system is hard real-time or soft real-time per se. A system might have a certain distribution of timing deviations. The timing tolerance mostly imposed by the application will qualify a system to be hard, soft or firm real-time. However, speed is not the primary qualifier nor is it the human understanding of real-time which is related to timing delays sensed by human signal processing capabilities (eyes and ears).