previous up next
1.1 Hard versus soft real-time applications


In this section the reader will find a discussion of the difference between ``hard'' real-time and ``soft'' real-time. Real-time engineers often distinguish between hard and soft real-time. In hard real-time, a correctly computed result delivered after its deadline is as incorrect as an incorrectly computed result. The system is called hard if ``the system shall not miss a deadline.'' In soft real-time systems, it is desirable to deliver all computed results prior to their deadlines, but a result delivered late is better than no result at all. The system is soft if ``the system should not miss a deadline.'' The term ``real-time'' is often misused to indicate a fast system.

Existing real-time systems often comprise hard and soft real-time components. When developing soft real-time systems, we have the option of entirely ignoring traditional methodologies for the design and analysis of real-time systems. The code is optimized and the system is expected to run fast enough to meet the requirements. An occasional missed deadline does not lead to catastrophic results. However, it is desirable to use established real-time methodologies to characterize the performance limitations under various work loads, input conditions, applications, and architectures.

An overview of real-time design methodologies is out of the scope of this text. The general approach is to submit the system to a systematic analysis of its behavior. In particular, the worst case execution times of all instructions and function calls are determined statically thru a code analysis. The sum of these worst case times results in the worst case execution time of the system. The design of hard real-time systems only considers worst execution times, not average times, since no delay can be tolerated.

previous up next