• Keine Ergebnisse gefunden

Message transm. time T

N/A
N/A
Protected

Academic year: 2022

Aktie "Message transm. time T"

Copied!
30
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Example Plot (1/2)

Number of nodes n = 10

Delay + turnaround time  = 1 ms

Message transm. time T

M

= 5 ms

Preamble transm. times T

P

= 25, 75, and 150 ms

Time used to check for preamble T

C

= 1 ms

Transmission power consumption P

TX

= 9 mW

Reception power consumption P = 1.8 mW

(2)

Example Plot (2/2)

P()

Plain

CSMA

(3)

Übersicht

Beispielanwendungen

Sensorhardware und Netzarchitektur

Herausforderungen und Methoden

MAC-Layer-Fallstudie IEEE 802.15.4

Energieeffiziente MAC-Layer

S-MAC und T-MAC

B-MAC

X-MAC und Wise-MAC

WSN-Programmierung

(4)

Problem: Sources of Energy Waste

S1

S2

S3

wakeup wakeup

wakeup wakeup

t1 t2

sleep again receive packet

Packet(s1)

Preamble

1

3 2

1 2

Useless reception of remaining preamble Useless overhearing of preamble

Useless transmission of remaining preamble

(5)

X-MAC: Strobe Preamble Sampling (1/2)

S1

S2

S3

wakeup

wakeup

strobe(s1)

not for me, sleep again

receive packet

Data strobe(s1) strobe(s1)

ack for me, send ack

send packet Conceptually, if |strobe(s1)|  0 and |ack|  0, this looks like …

(6)

X-MAC: Strobe Preamble Sampling (2/2)

S1

S2

S3

wakeup

wakeup

receive

Data send Strobes for s1

sleep full sleep cycle again sleep again

wakeup

t

(7)

Problem: Source of Energy Waste

S1

S2

S3

wakeup

wakeup

receive

Data send

sleep full sleep cycle again sleep again

wakeup

t Strobes for s1

Strobes immediately before time t when s1 wakes up would be sufficient. But, how to know time t ?!?

(8)

WiseMAC: Announce Wakeup Schedule

S1

S2

S3

wakeup

wakeup

receive

data

sleep again

wakeup

t2 prb

Schedule list s1 : t2 = t1 + x

ack

Nextwakeup in x ms

t1 t2 

data

Previous transmission Next transmission

(9)

Übersicht

Beispielanwendungen

Sensorhardware und Netzarchitektur

Herausforderungen und Methoden

MAC-Layer-Fallstudie IEEE 802.15.4

Energieeffiziente MAC-Layer

WSN-Programmierung

Laufzeitumgebungen

Fallstudie TinyOS

(10)

Operating system challenges in WSN

Usual operating system goals

Make access to device resources abstract (virtualization)

Protect resources from concurrent access

Usual means

Protected operation modes of the CPU – hardware access only in these modes

Processes with separate address spaces

Support by a memory management unit

Problem: These are not available in microcontrollers

No separate protection modes, no memory management unit

Would make devices more expensive, more power- hungry

! ???

(11)

Operating system challenges in WSN

Possible options

Try to implement “as close to an operating system” on WSN nodes

In particular, try to provide a known programming interface

Namely: support for processes!

Sacrifice protection of different processes from each other

! Possible, but relatively high overhead

Do (more or less) away with operating system

After all, there is only a single “application” running on a WSN node

No need to protect malicious software parts from each other

Direct hardware control by application might improve efficiency

Currently popular verdict: no OS, just a simple run- time environment

Enough to abstract away hardware access details

Biggest impact: Unusual programming model

(12)

Main issue: How to support concurrency

Simplest option: No concurrency, sequential processing of tasks

Not satisfactory: Risk of missing data (e.g., from transceiver) when processing data, etc.

! Interrupts/asynchronous operation has to be supported

Why concurrency is needed

Sensor node’s CPU has to service the radio modem, the actual

sensors, perform computation for application, execute communication protocol software, etc.

Poll sensor

Process sensor

data

Poll transceiver

Process received

packet

(13)

Traditional concurrency: Processes

Traditional OS:

processes/threads

Based on interrupts, context switching

But: not available – memory overhead, execution overhead

Handle sensor process

Handle packet process

OS-mediated process switching

(14)

Event-based concurrency

Alternative: Switch to event-based programming model

Perform regular processing or be idle

React to events when they happen immediately

Basically: interrupt handler

Problem: must not remain in interrupt handler too long

Danger of loosing events

Only save data, post information that event has happened, then return

! Run-to-completion principle

Two contexts: one for handlers, one for regular execution

Idle / Regular processing

Radio event

Radio event handler Sensor

event

Sensor event handler

(15)

Components instead of processes

Need an abstraction to group functionality

Replacing “processes” for this purpose

E.g.: individual functions of a networking protocol

One option: Components

Here: In the sense of TinyOS

Typically fulfill only a single, well-defined function

Main difference to processes:

Component does not have an execution

Components access same address space, no protection against each other

(16)

API to an event-based protocol stack

Usual networking API: sockets

Issue: blocking calls to receive data

Ill-matched to event-based OS

Also: networking semantics in WSNs not necessarily well matched to/by socket semantics

API is therefore also event-based

E.g.: Tell some component that some other component wants to be informed if and when data has arrived

Component will be posted an event once this condition is met

Details: see TinyOS example discussion below

(17)

Übersicht

Beispielanwendungen

Sensor-Hardware und Netzarchitektur

Herausforderungen und Methoden

MAC-Layer-Fallstudie IEEE 802.15.4

Energieeffiziente MAC-Layer

WSN-Programmierung

Laufzeitumgebungen

Fallstudie TinyOS

(18)

Case study embedded OS: TinyOS & nesC

TinyOS developed by UC Berkeley as runtime environment for their “motes”

nesC as adjunct “programming language”

Goal: Small memory footprint

Sacrifices made e.g. in ease of use, portability

Portability somewhat improved in newer version

Most important design aspects

Component-based system

Components interact by exchanging asynchronous events

Components form a program by wiring them together (akin to VHDL – hardware description language)

(19)

TinyOS components

Components

Frame – state information

Tasks – normal execution program

Command handlers

Event handlers

Handlers

Must run to completion

Form a component’s interface

Understand and emits commands & events

Hierarchically arranged

Events pass upward from hardware to higher-level components

Commands are passed downward

TimerComponent

setRate fire

init start stop fired

Event handlers Command

handlers Frame

Tasks

(20)

Handlers versus tasks

Command handlers and events must run to completion

Must not wait an indeterminate amount of time

Only a request to perform some action

Tasks, on the other hand, can perform arbitrary, long computation

Also have to be run to completion since no non- cooperative multi-tasking is implemented

But can be interrupted by handlers

! No need for stack management, tasks are atomic

with respect to each other

(21)

Split-phase programming

Handler/task characteristics and separation has consequences for programming model

How to implement a blocking call to another component?

Example: Order another component to send a packet

Blocking function calls are not an option

! Split-phase programming

First phase: Issue the command to another component

Receiving command handler will only receive the command, post it to a task for actual execution and returns immediately

Returning from a command invocation does not mean that the command has been executed!

Second phase: Invoked component notifies invoker by event that command has been executed

Consequences e.g. for buffer handling

(22)

TimerComponent start stop fired

Timer init

StdCtrl

setRate fire Clock

Structuring commands/events into interfaces

Many commands/events can add up

nesC solution: Structure corresponding commands/events into interface types

Example: Structure timer into three interfaces

StdCtrl

Timer

Clock

Build configurations by wiring together corresponding

interfaces

(23)

TimerComponent Timer StdCtrl

Clock HWClock Clock

Timer StdCtrl

Building components out of simpler ones

Wire together components to

form more complex components out of simpler ones

New interfaces for the complex

component

(24)

Defining modules and components in nesC

(25)

Wiring components to form a configuration

StdCtrl;

(26)

A TinyOS Demonstration (1/2)

Some supported methods (Windows & Linux)

Manually (Windows: cygwin & RPM, Linux: RPM)

Virtual machine image (VMWare, VirtualBox)

Example: starting the Xubuntos 2.1 VMWare image

Plug in Sensor node first!

Start XubunTOS image

Login: user = xubuntos, password = tinyos

y $ z! setxkbmap de

VMPlayerVMRemovable DevicesUSB Devices:

Future Technology Devices USB device (Port 1)

(27)

A TinyOS Demonstration (2/2)

“Hello World”

Call motelist

Call cd /opt/tinyos-2.1-0/apps/Blink

Call make telosb install

Look at BlinkAppC.nc and BlinkC.nc

“The” resource: www.tinyos.net !!!

Demo:

Start Xubuntos

Plug in USB device

(28)

Zusammenfassung und Literatur

Beispielanwendungen

Sensor-Hardware und Netzarchitektur

Herausforderungen und Methoden

MAC-Layer-Fallstudie IEEE 802.15.4

Energieeffiziente MAC-Layer

WSN-Programmierung

(29)

Zusammenfassung

Herausforderungen

Energieeffizienz

Geringe Rechen- und Speicherkapazität

Geringe Kommunikationsbandbreite

Erfordert neue Ansätze auf den einzelnen Protokollschichten: z.B.

energieeffiziente MAC-Layer

Aufweichen von striktem Protokoll-Layering: „Cross-Layer- Optimierungen“

Geräte sind in der Regel keiner Person direkt zugeordnet

Neue Sichtweise auf Kommunikation

ID-Zentrisch versus Datenzentrisch

Maschine-zu-Maschine-Kommunikation

(30)

Literatur

Holger Karl and Andreas Willig, „Protocols and Architectures for Wireless Sensor Networks”, John Wiley & Sons, 2005.

Jason Hill, Robert Szewczyk, Alec Woo, Seth Hollar, David E.

Culler and Kristofer S. J. Pister, “System Architecture Directions for Networked Sensors”, Proceedings of the 9th International ACM Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2000.

Philip Buonadonna, Jason Hill and David Culler, “Active Message Communication for Tiny Networked Sensors”, Proceedings of the 20th Annual Joint Conference of the IEEE Computer and

Communications Societies (INFOCOM), 2001.

David Gay, Philip Levis, Robert von Behren, Matt Welsh, Eric

Brewer and David Culler, “The nesC language: A holistic approach to networked embedded systems”, Proceedings of the ACM

Conference on Programming Language Design and Implementation (PLDI), 2003.

Referenzen

ÄHNLICHE DOKUMENTE

Determine how long your code takes in the worst case to complete a certain procedure, to verify the synchrony hypothesis and to perform a schedulability analysis (when multiple

In high speed networks, to achieve maximum capacity, sometimes extended MTU size (Jumbo frames till 9 000 bytes) is used. So it makes sense to check whether these packet sizes

On 9–10 July 2013, a conference was held in Manila, Philippines to discuss the Montreux Document on pertinent international legal obligations and good practices for states related

Proceedings of the 11th International Conference on Cognitive Modeling. 1HOH5X‰ZLQNHO8ZH'UHZLW] Hedderik van

• The third paradigm affects the rights of use of the published data: Old paradigm: published data are permitted to be inspected for private use. Further usage is reserved and can

Therefore, it is the author’s opinion, that today’s practice in software maintenance and to achieve software maintainability are not enough for the architectural design

Java is the primary language of the Equip2 framework and a good choice as long as the mobile clients don’t need to access certain low-level device capabilities.. C/C++ has access to

Despite the limitations of the current Fujaba version, i.e., the lack of support for multiple projects (strata) and, consequently, missing support for maintaining consistency