Real-time systems are those systems in which the correctness of the system depends not only on the logical results of computation but also on the time at which the results are produced [Stankovic 1988]. They span a broad spectrum of complexity from very simple microcontrollers in embedded systems (a microprocessor controlling an automobile engine) to highly sophisticated, complex, and distributed systems (air traffic control for the continental United States). Other real-time systems include command and control systems, process control systems, and multimedia and high-speed communication systems. Some real-time systems are beginning to add expert systems and other AI technology, creating additional requirements and complexities. At least three major trends in the real-time and embedded systems field have had a major impact on its technology: the increased growth and sophistication of embedded systems, the development of more scientific and technological results for hard real-time systems, and the advent of distributed multimedia. Most embedded systems consist of a small microcontroller and limited software situated within some product such as a microwave oven or automobile. However, with the increasing sophistication of such systems, powerful microcontrollers and digital signal processing (DSP) chips are commonly used, as are off-the-shelf real-time operating systems and design and debugging tools. Many people working with embedded systems deal on a daily basis with sensors and data acquisition technology and systems; others construct architectures based on single-board computers (many are still 68000-based, but RISC processors are being used more and more) and buses such as the VME bus. Many people are involved with the programming and debugging of embedded systems, largely using the C programming language and cross development and debugging platforms. Embedded systems may or may not have real-time constraints. Hard real-time systems are those in which missing an important deadline can cause severe consequences, even death. In this area, many fundamental results have been developed. For example, in real-time scheduling, rate monotonic analysis has enabled careful evaluation of many practical systems; the concept and analysis of competitive algorithms has provided important scheduling bounds and limits; and on-line planning has added flexible and dynamic capabilities to real-time systems. Operating systems research has produced predictable primitives, time-constrained synchronization techniques, and reservation and admission-control paradigms. Many other results exist in real-time architecture, fault tolerance, communication protocols, specification and design tools, formal verification, databases and object-oriented systems. Emphasis on all these areas is expected to increase in the foreseeable future. Many hard real-time systems are embedded systems. Distributed multimedia have produced a new set of soft real-time requirements. Real-time principles lie at the heart of distributed multimedia, but without the concomitant high reliability