
11
THREADED, EMBEDDED —
DREADED
When NASA attempted to launch the first space shut-
tle, they rolled the spacecraft out to the pad, put the
astronauts on board, and started the countdown.
Then the computer reported a self-check failure.
They tried and tried and tried to figure out what was
wrong. In the end, they had to cancel the launch.
The problem was eventually traced to a race condition that had a 1 out of
64 chance of occurring each time the system was started.
Programmers who have to deal with multiple processes and embedded sys-
tems have their own set of problems to worry about. These are usually much
more difficult to find than ordinary ...