Hardware Reference
In-Depth Information
February 26, the day after the accident, by inserting a few preemption points inside
the long interrupt handler.
The examples of failures described above show that software testing, although impor-
tant, does not represent a solution for achieving predictability in real-time systems.
This is mainly due to the fact that, in real-time control applications, the program flow
depends on input sensory data and environmental conditions, which cannot be fully
replicated during the testing phase. As a consequence, the testing phase can provide
only a partial verification of the software behavior, relative to the particular subset of
data provided as input.
A more robust guarantee of the performance of a real-time system under all possi-
ble operating conditions can be achieved only by using more sophisticated design
methodologies, combined with a static analysis of the source code and specific oper-
ating systems mechanisms, purposely designed to support computation under timing
constraints. Moreover, in critical applications, the control system must be capable of
handling all anticipated scenarios, including peak load situations, and its design must
be driven by pessimistic assumptions on the events generated by the environment.
In 1949, an aeronautical engineer in the U.S. Air Force, Captain Ed Murphy, observed
the evolution of his experiments and said: “If something can go wrong, it will go
wrong.” Several years later, Captain Ed Murphy became famous around the world,
not for his work in avionics but for his phrase, simple but ineluctable, today known
as Murphy's Law [Blo77, Blo80, Blo88]. Since that time, many other laws on exis-
tential pessimism have been formulated to describe unfortunate events in a humorous
fashion. Due to the relevance that pessimistic assumptions have on the design of real-
time systems, Table 1.1 lists the most significant laws on the topic, which a software
engineer should always keep in mind.
1.2
WHAT DOES REAL TIME MEAN?
1.2.1
THE CONCEPT OF TIME
The main characteristic that distinguishes real-time computing from other types of
computation is time. Let us consider the meaning of the words time and real more
closely.
The word time means that the correctness of the system depends not only on the logical
result of the computation but also on the time at which the results are produced.
Search WWH ::




Custom Search