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 small footprint 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 rate monotonic 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.

Prev: Contents Next: Task Management Top

nrk_arch.png (126.7 kB) Anthony Rowe, 02/07/2012 12:43 am