Table Of Contents
Previous Section Next Section

Chapter 11: Threaded, Embedded — Dreaded

Overview

When NASA attempted to launch the first space shuttle, 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 systems have their own set of problems to worry about. These are usually much more difficult to find than ordinary errors because errors happen randomly, and bugs can resist discovery by testing. Furthermore, code that looks perfectly good and reasonable can contain hidden errors.

This chapter is devoted to the obscure, random, and fiendish bugs that plague the embedded programmer.

Table Of Contents
Previous Section Next Section