170 likes | 473 Views
Chapter 13 Embedded Systems. Embedded Systems Characteristics of Embedded Operating Systems. Embedded System. A combination of hardware and software designed to perform a dedicated function Often, embedded systems are part of a larger system or product,
E N D
Chapter 13Embedded Systems • Embedded Systems • Characteristics of Embedded Operating Systems
Embedded System • A combination of hardware and software designed to perform a dedicated function • Often, embedded systems are part of a larger system or product, • e.g., antilock braking system in a car • Embedded systems are tightly coupled to their environment imposes real-time constraints by the need to interact with the environment
Differences from typical computer • A variety of interfaces • enable the system to measure, manipulate, and interact with the external environment • human interface may be as simple as a flashing light or as complicated as real-time robotic vision • Use of a diagnostic port for diagnosing the system • Use of special purpose hardware to increase performance or safety • Fixed-function or application-specific software
Roadmap • Embedded Systems • Characteristics of Embedded Operating Systems
Characteristics of Embedded OS • Using a general-purpose OS for an embedded system may not be possible • constraint of memory space • constraint of power consumption • real-time requirements • Special-purpose OS designed for the embedded system environment is commonly used.
Characteristics of Embedded OS • Real-time operation • correctness of computation depends, in part, on the time at which result is delivered • Reactive operation • needs to consider worst-case conditions in execution in order to respond to external events that do not occur at predictable intervals
Characteristics of Embedded OS Configurability supports flexible configuration so that only the functionality needed for a specific application and hardware suite is provided e.g., allows to select only the necessary OS modules to load I/O device flexibility handles devices by using special tasks instead of integrating their drives into the OS kernel
Characteristics of Embedded OS • Streamlined protection mechanisms • requires limited protection because tested software can be assumed to be reliable • e.g., I/O instructions need not be privileged instructions that trap to OS tasks can directly perform their own I/O • no use of an OS service call avoid overhead for saving and restoring the task context
Characteristics of Embedded OS • Direct use of interrupts • permits user process to use interrupts directly • no need to go through OS interrupt service routines • have efficient control over a variety of devices
Developing anEmbedded OS • Two general approaches • Take an existing OS and adapt it for embedded purposes • Design a purpose-built OS solely for embedded use
Adapting an Existing OS • Examples include Windows, Linux • familiar interfaces facilitate portability • slower and less predictable than special purpose embedded OS • not optimized for real-time and embedded applications require considerable modification to achieve adequate performance • optimizes for the average case rather than the worst case for scheduling • assigns resources on demand • ignores semantic information about an application
Adapting an Existing OS • Need to add • real-time capability • streamlining operation • other specialized and necessary functionality for the given device
Purpose-Built Embedded OS • Most OS are designed from the ground up for embedded applications • Typical characteristics include: • Has thread switch (fast and lightweight) • Real time scheduling policy • Small size • Responds to external interrupts quickly (<10 s) • Minimizes intervals during which interrupts are disabled
Purpose-Built Embedded OS • Typical characteristics include: • Provides fixed or variable sized partitions for memory management and the ability to lock code and data in memory • Provides special sequential files that can accumulate data at a fast rate
Purpose-Built Embedded OS • To deal with timing constraints, the kernel: • provides bounded execution time for primitives • maintains a real-time clock • provides for special alarms and timeouts • supports real-time queuing disciplines, e.g., EDF (earliest deadline first) • provides primitives to delay processing and to suspend/resume execution