A typical wireless sensor network (WSN) consists of a large number of small-sized, battery-powered sensor nodes that are limited in battery energy, CPU power, and communication capability. Recently, it has seen an explosive growth in both academia and industry, WSNs attract a great deal of research attention in the past few years, and they are envisioned to support a variety of applications, including military surveillance, habitat monitoring and infrastructure protection, etc.
Despite the simplicity of the sensor node hardware, WSN applications are diverse and demanding. Infrastructural support for WSN applications in the form of operating systems (OS) is becoming increasingly important. In essence, a sensor network OS (hereafter, sensornet OS ) bridges the gap between hardware simplicity and application complexity, and plays a central role in building scalable distributed applications thatare eﬃcient and reliable.
The basic functionalities of an OS include resource abstractions for various hardware devices, interrupt management and task scheduling, concurrency control, and networking support. Based on the services provided by the OS, application programmers can conveniently use high-level application programming interfaces (APIs) independent of the underlying hardware.
The implementation of the above mentioned services for a sensornet OS, however, is non-trivial because most sensor node platforms are severely resource-constrained. Therefore, a sensornet OS should not only provide a variety of system services to facilitate programming WSN applications, but also optimize resource utilization.
Over the years, we have seen various OSes emerging in the sensornet community. The most prestigious works include TinyOS, Contiki, SOS, Mantis OS, Nano-RK, RETOS and LiteOS. Aside from the basic system implementations mentioned above, there is also a large body of work devoted to improving OS capabilities in different dimensions(e.g., improving OS reliability, providing real-time support , and extending theprogramming model )..
In this paper, we provide a comprehensive review of existing work in sensornet OS design. We first examine the challenges in the OS design space. We then introduce the major components of a sensornet OS. Next, we provide an overview of existing work, present a taxonomy of state-of-the-art OSes, and discuss various approaches to address the design challenges.
Finally we discuss evaluations of a sensornet OS and present some recommendations from the perspectives of OS developers and OS users. We have also identified several open problems that need further investigation to make the OS provide stronger support for WSNs.
To read this external content in full, download the complete paper from the author archives online at Zhejiang University.