0% found this document useful (0 votes)
31 views10 pages

Embedded Os

Uploaded by

raonithin252
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views10 pages

Embedded Os

Uploaded by

raonithin252
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Operating systems for embedded systems

n Embedded operating systems


q How do they differ from desktop operating systems?
n Programming model
q Process-based
q Event-based
q How is concurrency handled?
q How are resource conflicts managed?
n Programming languages
q C/C++
q Java/C#
q Memory management
q Atomicity in the presence of interrupts

CSE 466 1

Embedded Operating Systems

n Features of all operating systems


q Abstraction of system resources
q Managing of system resources
q Concurrency model
q Launch applications

n Desktop operating systems


q General-purpose – all features may be needed
q Large-scale resources – memory, disk, file systems

n Embedded operating systems


q Application-specific – just use features you need, save memory
q Small-scale resources – sensors, communication ports

CSE 466 2

1
System Resources on Typical Sensor Nodes

n Timers
n Sensors
n Serial port
n Radio communications
n Memory
n Power management

CSE 466 3

Abstraction of System Resources

n Create virtual components


q E.g., multiple timers from one timer
n Allow them to be shared by multiple threads of execution
q E.g., two applications that want to share radio communication
n Device drivers provide interface for resource
q Encapsulate frequently used functions
q Save device state (if any)
q Manage interrupt handling

CSE 466 4

2
Very simple device driver

n Turn LED on/off


n Parameters:
q port pin
n API:
q on(port_pin) - specifies the port pin (e.g., port D pin 3)
q off(port_pin)
n Interactions:
q only if other devices want to use the same port

CSE 466 5

Simple device driver

n Turning an LED on and off at a fixed rate


n Parameters:
q port pin
q rate at which to blink LED
n API:
q on(port_pin, rate)
n specifies the port pin (e.g., port D pin 3)
n specifies the rate to use in setting up the timer (what scale?)
q off(port_pin)
n Internal state and functions:
q keep track of state (on or off for a particular pin) of each pin
q interrupt service routine to handle timer interrupt

CSE 466 6

3
Interesting interactions

n What if other devices also need to use timer


(e.g., PWM device)?
q timer interrupts now need to be handled differently depending on
which device’s alarm is going off
n Benefits of special-purpose output compare peripheral
q output compare pins used exclusively for one device
q output compare has a separate interrupt handling routine
n What if we don’t have output compare capability or run
out of output compare units?

CSE 466 7

Sharing timers
n Create a new device driver for the timer unit
q Allow other devices to ask for timer services
q Manage timer independently so that it can service multiple requests
n Parameters:
q Time to wait, address to call when timer reaches that value
n API:
q set_timer(time_to_wait, call_back_address)
n Set call_back_address to correspond to time+time_to_wait
n Compute next alarm to sound and set timer
n Update in interrupt service routine for next alarm
n Internal state and functions:
q How many alarms can the driver keep track of?
q How are they organized? FIFO? priority queue?

CSE 466 8

4
Concurrency

n Multiple programs interleaved as if parallel


n Each program requests access to devices/services
q e.g., timers, serial ports, etc.
n Exclusive or concurrent access to devices
q allow only one program at a time to access a device (e.g., serial port)
q arbitrate multiple accesses (e.g., timer)
n State and arbitration needed
q keep track of state of devices and concurrent programs using resource
q arbitrate their accesses (order, fairness, exclusivity)
q monitors/locks (supported by primitive operations in ISA - test-and-set)
n Interrupts
q disabling may effect timing of programs
q keeping enabled may cause unwanted interactions

CSE 466 9

Handling concurrency

n Traditional operating system


q multiple threads or processes
q file system
q virtual memory and paging
q input/output (buffering between CPU, memory, and I/O devices)
q interrupt handling (mostly with I/O devices)
q resource allocation and arbitration
q command interface (execution of programs)
n Embedded operating system
q lightweight threads
q input/output
q interrupt handling
q real-time guarantees

CSE 466 10

5
Embedded operating systems

n Lightweight threads
q basic locks
q fast context-switches
n Input/output
q API for talking to devices
q buffering
n Interrupt handling (with I/O devices and UI)
q translate interrupts into events to be handled by user code
q trigger new tasks to run (reactive)
n Real-time issues
q guarantee task is called at a certain rate
q guarantee an interrupt will be handled within a certain time
q priority or deadline driven scheduling of tasks

CSE 466 11

Some Examples embedded operating


systems typically
reside in ROM (flash)
n Pocket PC/WindowsCE/WindowsMobile - changed rarely
q PDA operating system
q spin-off of Windows NT
q portable to a wide variety of processors (e.g., Xscale)
q full-featured OS modularized to only include features as needed
n Wind River Systems VxWorks
q one of the most popular embedded OS kernels
q highly portable to an even wider variety of processors (tiny to huge)
q modularized even further than the ones above (basic system under 50K)
n TinyOS
q Open-source development environment specifically for small sensors
q Simple (and tiny) operating system
n Scheduler/event model of concurrency
n Software components for efficient modularity
n Software encapsulation for resources of sensor networks
q Programming language and model – nesC

CSE 466 12

6
Metrics in Real-Time Systems (1/2)

n End-to-end latency:
q E.g. worst-case, average-case, variance, distribution
q Can involve multiple hops (across nodes, links, switches and
routers)
q Behavior in the presence or absence of failures
n Jitter
n Throughput:
q How many X can be processed?
q How many messages can be transmitted?
n Survivability:
q How many faults can be tolerated before system failures?
q What functionality gets compromised?

Metrics in Real-Time Systems (2/2)

n Security:
q Can the system’s integrity be compromised?
q Can violations be detected?
n Safety:
q Is the system “safe”?
n Can the system get into an ‘unsafe’ state? Has it been ‘certified’?
n Maintainability:
q How does one fix problems?
q How does the system get upgraded?
n Dynamism and Adaptability:
q What happens when the system mission changes?
q What happens when individual elements fail?
q Can the system reconfigure itself dynamically?
q How does the system behave after re-configuration?

7
RTOS Considerations

n What processor(s) does it run on?


q 8-bit, 16-bit, 32-bit, …
q Intel Pentium® Processor, PowerPC, Arm/StrongArmà Intel
Xscale®, MIPS, SuperH, …
q IBM and Intel® Network Processors
n What board(s) does it run on?
q Complete software package for a particular hardware board is called
a BSP (Board Support Package)
n What is the software environment?
q Compilers and debuggers
q IDE
n Cross-compilation + symbolic debugging on target?
q Profilers (CPU, memory)
q Test coverage tools
q Native simulation/emulation support?

Real-Time Operating Systems


n Windows platforms
q Embedded XP, Windows CE, Pocket Windows
n VxWorks from Wind River Systems (www.windriver.com)
n Linux variants
q Blue Cat Linux (www.lynuxworks.com)
q (Embedded) Red Hat Linux (www.redhat.com)
q FSM RT-Linux (www.fsmlabs.com)
q Monta Vista Linux (www.mvista.com)
q TimeSys Linux (www.timesys.com)
n LynxOS (www.lynuxworks.com)
n QNX (www.qnx.com)
n Solaris real-time extensions
n TRON
q Embedded OS specification in Japan
q Has multiple profiles for different classes of devices

8
Common RTOS Features

Utilities
n Bootstrapping support
n “Headless” operation
q Display not necessary

APIs (Application Programming Interfaces)


n Multiple threads and/or processes
q Fixed priority scheduling is most popular
n Mutex/semaphore support likely with priority inheritance support
n Inter-process communications
q Message queues
n Timers/clock
n Graphics support
n Device drivers
n Network protocol stack

Emerging RTOS Requirements


n Full-featured operating system
n Support for new processors and devices
n Support for Internet protocols and standards
n Support for Multimedia protocols and standards
n Support for File Systems
n Memory protection
n Resource protection, security
n Development tools and libraries
n GUI Environment

Do this with low and predictable overheads.

9
Future??? Android Layer Cake

CSE 466 Wireless Sensor Networks 19

10

You might also like