• Keine Ergebnisse gefunden

Message transm. time T

N/A
N/A
Protected

Academic year: 2022

Aktie "Message transm. time T"

Copied!
22
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

Form a component’s interface

Understand and emit 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)

Concurrency

Tasks perform arbitrary, long computation

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

No need for stack management, tasks are atomic with respect to each other

However, we need a way to handle interrupts by preemption

NesC allows the definition of functions that can run preemptively (to handle interrupts)

Typically such function must not execute an indeterminate amount of time

Only post a regular task to perform further action

(21)

Sync and Async

By default functions (i.e. commands and events) are sync (e.g. can be preempted)

Only functions labeled async can run preemptively Example:

async command void led0On();

For example all interrupt handlers must be async

Async functions can only call async commands and signal async events

How to call a sync function from within an async one?

post a task to call these functions

posting a task is async; tasks themselves are always sync

So why use tasks at all? Why not labeling everything async?

sync functions can’t lead to race conditions

async can lead the system into inconsistent states

(22)

Atomic

However, concurrent access to a code fragment can be made atomic

Example:

command bool increment() { atomic {

a++;

b = a + 1;

} }

So why not sprinkling the code with atomic blocks?

Atomic blocks have a CPU cost

You should minimize how many atomic blocks you

have

Referenzen

ÄHNLICHE DOKUMENTE

Firstly, we define collision resistance on a family of hash functions because for every single function there exists an adversary that finds a collision: since there are more

during movement of the movable member past each of said incremental positions, integrating means con nected to said differentiating means for integrating said velocity signal

(i.e., alphanumerics, rectangles, figure placement, etc.). Commarrl primitives are specified to the driver by the application program via the comnand channel

Portuguese) 26 0 Abicomp (Braz.. Portuguese) 26 0

Proposals for adaptive query processing can be classified as plan preserving, where adaptation takes place by tuning the strategy used to execute an es- sentially stable

In conclusione, una funzione di autocorrelazione temporale ci dice per quanto tempo una certa proprietà del sistema permane prima che venga mediata a zero dalle fluttuazioni

Set breakpoint at address. The breakpoint is executed count-1 times before causing a stop. Each time the breakpoint is encountered, the command c is executed. If this

This article attempted to demonstrate several things: (1) that the ideational basis of American hegemony resides in the classical liberal tradition, and that this consensual