Nrk api introduction

Version 8 (Anthony Rowe, 10/18/2008 01:01 am) → Version 9/19 (Anthony Rowe, 10/18/2008 01:01 am)

= Introduction =
The rapid proliferation of sensor networks has placed increasing demands upon the
system infrastructure for supporting scalable distributed sensor applications. As applications
for sensors in areas as diverse as security surveillance, traffic monitoring, smart
spaces and smart buildings continues to grow, infrastructural support for sensor network
applications in the form of system software is becoming increasingly important.
The push provided by the scaling of technology and the need to support increasingly
complicated and diverse applications has resulted in the need for traditional multitasking
operating system (OS) abstractions and programming paradigms. The case for
small-footprint real-time OS support in sensor networks is strengthened by the fact that
many sensor networking applications are time-sensitive in nature i.e. the data must be
delivered from the source to the destination within a timing constraint. For example,
in a surveillance application, data relayed by a task which is responsible for detecting
intruders and subsequently alerting the gateway nodes of the system should be able
to reach the gateway on a timely basis. In this paper, we present Nano-RK, a smallfootprint
embedded real-time operating system with networking support.

Nano-RK supports the classical operating system multitasking abstractions allowing
sensor application developers to work in a familiar paradigm resulting in small
learning curves, quicker application development times and improved productivity.
We show that an efficient implementation of such a paradigm is practical. We associate
tasks with priorities and support priority-based preemption i.e, a task can always
be preempted by a higher-priority task that becomes eligible to run. For timing sensitive
applications, we use priority-based preemptive scheduling to implement the ratemonotonic
paradigm of real-time scheduling so that a periodic sensor task set with
timing deadlines can be scheduled such that their timing guarantees are honored.

Since sensor nodes are resource-constrained and energy-constrained, we provide functionality
whereby the operating system can enforce limits on the resource usage of
individual applications and on the energy budget used by individual applications and
the system as a whole. In particular, we implement CPU reservations and Network
Bandwidth reservations wherein dedicated access of individual application to system
resources is guaranteed by the OS. The OS also implements sensor reservations to
enforce usage on the number of accesses to individual sensors. Since the energy used
by each task is the total sum of energy consumed by the CPU, the radio interface and the
individual sensors, a particular setting for each of these leads to an energy reservation.
Since we use a static design-time approach for admission control, we provide tools for
estimating the energy budget of each application and (hence) the system lifetime. The
CPU , network and sensor reservation values of tasks can be iteratively modified by the
system designer until the lifetime requirements of the node are satisfied.


| [[nrk-api|Contents] [wikinrk-api-task-management [wiki:nrk-api Contents] | [wiki:nrk-api-task-management Task Management]] Management] |