Embedded systems form a class of RT systems that are characterized by a short response time, compact architecture involving a processor with peripherals integrated in a single board often with small usable memory, enhanced robustness and exception handling capabilities, and in most cases low power consumption. To understand the significance of the term embedded, the difference between a normal (nonembedded) system architecture and an embedded one should be examined (see Figure 1.1).
As shown in Figure 1.1, in the strict classical sense of the term, an embedded system has the relevant operating system modules that an embedded application uses, embedded within the address space of the application itself. Hence the name embedded system. This arrangement substantially reduces the latency and the memory requirement. In most cases, an embedded
(See color insert.) Difference between an embedded and a nonembedded system.
application is often built around a kernel with basic user interaction facilities, which are often configurable depending on the need of the application. An embedded application usually runs on a specialized hardware called the target, which is often configured to run in a stand-alone mode. A target may contain a kernel for running the embedded application (kernel-based embedded system) or may just be able to run an executable, but not the development tools like the compilers and linkers. Such target system development often requires a development platform where the executable code is developed for the target, downloaded through a communication link, and stored in a permanent memory device so that the embedded system can be deployed as a stand-alone system or run using the kernel on the target. The development platform, often known as the integrated development environment follows an approach, which allows the embedded system developer to pick and choose the operating system modules, for example, drivers that need to be embedded in the application.
Multiprocessor architectures are used in RT systems more for providing enhanced reliability than enhanced computing power. Classically, such systems involve multiple processing elements, which are used in applications involving RT signal processing, for example, in multimedia applications.
Networked RT Systems
Networked RT systems are a special class of distributed RT systems where the processing elements are connected by a RT communication link. This is covered as a separate topic in Chapter 2.