Chapter 13 Embedded Systems

Download Report

Transcript Chapter 13 Embedded Systems

Chapter 13
Embedded Systems
• Embedded Systems
• Characteristics of Embedded Operating
Systems
1
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
2
Examples of
Embedded Devices
3
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
4
Roadmap
• Embedded Systems
• Characteristics of Embedded Operating
Systems
5
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.
6
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
7
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
8
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
9
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
10
Developing an
Embedded OS
• Two general approaches
– Take an existing OS and adapt it for
embedded purposes
– Design a purpose-built OS solely for
embedded use
11
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
12
Adapting an
Existing OS
• Need to add
– real-time capability
– streamlining operation
– other specialized and necessary functionality
for the given device
13
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
14
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
15
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
16