Nrk api introduction

Version 1 (Anthony Rowe, 02/15/2007 04:56 pm)

1 1 Anthony Rowe
 = Introduction =
2 1 Anthony Rowe
3 1 Anthony Rowe
The rapid proliferation of sensor networks has placed increasing demands upon the
4 1 Anthony Rowe
system infrastructure for supporting scalable distributed sensor applications.As applications
5 1 Anthony Rowe
for sensors in areas as diverse as security surveillance, traffic monitoring, smart
6 1 Anthony Rowe
spaces and smart buildings continues to grow, infrastructural support for sensor network
7 1 Anthony Rowe
applications in the form of system software is becoming increasingly important.
8 1 Anthony Rowe
The push provided by the scaling of technology and the need to support increasingly
9 1 Anthony Rowe
complicated and diverse applications has resulted in the need for traditional multitasking
10 1 Anthony Rowe
operating system (OS) abstractions and programming paradigms. The case for
11 1 Anthony Rowe
small-footprint real-time OS support in sensor networks is strengthened by the fact that
12 1 Anthony Rowe
many sensor networking applications are time-sensitive in nature i.e. the data must be
13 1 Anthony Rowe
delivered from the source to the destination within a timing constraint. For example,
14 1 Anthony Rowe
in a surveillance application, data relayed by a task which is responsible for detecting
15 1 Anthony Rowe
intruders and subsequently alerting the gateway nodes of the system should be able
16 1 Anthony Rowe
to reach the gateway on a timely basis. In this paper, we present Nano-RK, a smallfootprint
17 1 Anthony Rowe
embedded real-time operating system with networking support.
18 1 Anthony Rowe
Nano-RK supports the classical operating system multitasking abstractions allowing
19 1 Anthony Rowe
sensor application developers to work in a familiar paradigm resulting in small
20 1 Anthony Rowe
learning curves, quicker application development times and improved productivity.
21 1 Anthony Rowe
We show that an efficient implementation of such a paradigm is practical. We associate
22 1 Anthony Rowe
tasks with priorities and support priority-based preemption i.e, a task can always
23 1 Anthony Rowe
be preempted by a higher-priority task that becomes eligible to run. For timing sensitive
24 1 Anthony Rowe
applications, we use priority-based preemptive scheduling to implement the ratemonotonic
25 1 Anthony Rowe
paradigm of real-time scheduling so that a periodic sensor task set with
26 1 Anthony Rowe
timing deadlines can be scheduled such that their timing guarantees are honored.
27 1 Anthony Rowe
Since sensor nodes are resource-constrained and energy-constrained, we provide functionality 
28 1 Anthony Rowe
whereby the operating system can enforce limits on the resource usage of
29 1 Anthony Rowe
individual applications and on the energy budget used by individual applications and
30 1 Anthony Rowe
the system as a whole. In particular, we implement CPU reservations and Network
31 1 Anthony Rowe
Bandwidth reservations wherein dedicated access of individual application to system
32 1 Anthony Rowe
resources is guaranteed by the OS. The OS also implements sensor reservations to
33 1 Anthony Rowe
enforce usage on the number of accesses to individual sensors. Since the energy used
34 1 Anthony Rowe
by each task is the total sum of energy consumed by the CPU, the radio interface and the
35 1 Anthony Rowe
individual sensors, a particular setting for each of these leads to an energy reservation.
36 1 Anthony Rowe
Since we use a static design-time approach for admission control, we provide tools for
37 1 Anthony Rowe
estimating the energy budget of each application and (hence) the system lifetime. The
38 1 Anthony Rowe
CPU , network and sensor reservation values of tasks can be iteratively modified by the
39 1 Anthony Rowe
system designer until the lifetime requirements of the node are satisfied.
40 1 Anthony Rowe
41 1 Anthony Rowe
[wiki:nrk_api Contents]