Nrk api introduction

Version 10 (Anthony Rowe, 02/07/2012 12:42 am)

1 10 Anthony Rowe
h1. Introduction
2 10 Anthony Rowe
3 1 Anthony Rowe
The rapid proliferation of sensor networks has placed increasing demands upon the
4 7 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 5 Anthony Rowe
19 1 Anthony Rowe
Nano-RK supports the classical operating system multitasking abstractions allowing
20 1 Anthony Rowe
sensor application developers to work in a familiar paradigm resulting in small
21 1 Anthony Rowe
learning curves, quicker application development times and improved productivity.
22 1 Anthony Rowe
We show that an efficient implementation of such a paradigm is practical. We associate
23 1 Anthony Rowe
tasks with priorities and support priority-based preemption i.e, a task can always
24 1 Anthony Rowe
be preempted by a higher-priority task that becomes eligible to run. For timing sensitive
25 1 Anthony Rowe
applications, we use priority-based preemptive scheduling to implement the ratemonotonic
26 1 Anthony Rowe
paradigm of real-time scheduling so that a periodic sensor task set with
27 1 Anthony Rowe
timing deadlines can be scheduled such that their timing guarantees are honored.
28 5 Anthony Rowe
29 1 Anthony Rowe
Since sensor nodes are resource-constrained and energy-constrained, we provide functionality 
30 1 Anthony Rowe
whereby the operating system can enforce limits on the resource usage of
31 1 Anthony Rowe
individual applications and on the energy budget used by individual applications and
32 1 Anthony Rowe
the system as a whole. In particular, we implement CPU reservations and Network
33 1 Anthony Rowe
Bandwidth reservations wherein dedicated access of individual application to system
34 1 Anthony Rowe
resources is guaranteed by the OS. The OS also implements sensor reservations to
35 1 Anthony Rowe
enforce usage on the number of accesses to individual sensors. Since the energy used
36 1 Anthony Rowe
by each task is the total sum of energy consumed by the CPU, the radio interface and the
37 1 Anthony Rowe
individual sensors, a particular setting for each of these leads to an energy reservation.
38 1 Anthony Rowe
Since we use a static design-time approach for admission control, we provide tools for
39 1 Anthony Rowe
estimating the energy budget of each application and (hence) the system lifetime. The
40 1 Anthony Rowe
CPU , network and sensor reservation values of tasks can be iteratively modified by the
41 1 Anthony Rowe
system designer until the lifetime requirements of the node are satisfied.
42 1 Anthony Rowe
43 10 Anthony Rowe
!nrk_arch.png!
44 1 Anthony Rowe
45 9 Anthony Rowe
| [[nrk-api|Contents]  [wikinrk-api-task-management Task Management]] |