n. The embedded system under development.

USAGE: This term is never used to describe a finished product. During development, the embedded system (for which the software is being developed) is normally called the target to distinguish it from the host system (where the software is being developed). This distinction is necessary, in part, because the host might also be capable of executing the software under development—either directly or in a simulator.


1. n. The central abstraction of a real-time operating system. Each task must maintain its own copy of the CPU's instruction pointer and general-purpose registers. Unlike processes, tasks share a common memory space and so programmers must be careful to avoid overwriting other task's code, data, and stack.

USAGE: For most practical purposes, the terms task and thread are interchangeable. However, task is preferred when working with real-time operating systems, which generally have just one memory space, whereas thread is more commonly used on multiuser platforms such as Unix or Windows, where multiple threads of execution can run within the memory space of a single process.

2. n. Any individual computation, set of computations, decision-making logic, or combination thereof that must be performed at run-time by software. When using an RTOS, each task to be completed may be assigned to an individual executable task. This often makes system decomposition and code maintenance easier.


N. A radiation therapy machine, implemented as an embedded system, that suffered a series of race conditions that killed six people by overdosing between June 1985 and January 1987. The product was made by Atomic Energy of Canada Limited. The flawed software was implemented in PDP-11 assembly language, though that was not specifically the source of the problem. In essence, the race conditions resulted from a poor software design riddled with global variables representing the various modes of the system’s operation. Attempts to fix the first of the problems ended up only making matters worse.

HISTORY: A detailed analysis of the events and their causes is found at papers/therac.pdf. It is must reading for all software engineers.

FURTHER READING: Leveson, Nancy. Safeware: System Safety and Computers. Addison-Wesley, 1995.

FURTHER READING: Leveson, Nancy and Clark S. Turner.“An Investigation of the Therac-25 Accidents,” IEEE Computer, July 1993.

See also Ariane 5, Patriot Missile.


n. A type of sensor used to measure temperature that is essentially a temperature-sensitive resistor. In conjunction with a reference voltage, an op-amp, and an analog-to-digital converter, a thermistor can be used to measure temperatures digitally. [more]

thermistor circuit

A thermistor circuit

Compare to resistance temperature detector, thermocouple.


n. An electronic component used to sense temperature. A temperature-sensitive junction of two dissimilar materials produces a small voltage (typically 50 µV/°C). [more]


n. Another name for a task. This name is more common in operating systems that support processes. A task is simply a thread in a single-process system.


n. A peripheral that measures elapsed time, typically by counting processor cycles or clocks. Compare to counter. See also input capture timer, counter/timer. [more]


n. Like a breakpoint except that, rather than stopping the program, a counter is incremented. Tracepoints are not supported by all debugging tools.

trade secret

n. A type of intellectual property protection for software that provides additional protections when the source code is kept proprietary and closely guarded.

See also copyright, patent.


n. An interruption of a program that is triggered by the processor own internal hardware. For example, the processor might trap if an illegal opcode is found within the program. [more]

Compare to software interrupt. See also exception.