A wireless sensor network (WSN) is generally composed of a centralized station (sink) and tens, hundreds, or perhaps thousands of tiny sensor nodes. With the integration of information sensing, computation, and wireless communication, these devices can sense the physical phenomenon, (pre-)process the raw information, and share the processed information with their neighboring nodes.
Typical sensor nodes are equipped with a sensor, a microprocessor or microcontroller, a memory, a radio transceiver, and a battery. Therefore, these hardware components should be organized in a way that makes them work correctly and effectively without a conflict in support of the specific applications for which they are designed. Each sensor node needs an OS that can control the hardware, provide hardware abstraction to application software, and fill in the gap between applications and the underlying hardware.
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 traditional OS is system software that operates between application software and hardware and is often designed for workstations and PCs with plenty of resources. This is usually not the case with sensor nodes in WSNs. There are also embedded OSes such as VxWorks and WinCE, none of which is specially designed for data-centric WSNs with constrained resources. Sensors usually have a slow processor and small memory, different from most current systems. These parameters should be kept in mind in the process of OS design for WSN nodes.
In this paper, we identify several major issues for the design of OSes for WSNs. Then, we examine some existing OSes for WSNs, including TinyOS, Contiki, and LiteOS. Finally, we present a comparison of these OSes by examining some important OS features.
We believe that our work will help both OS developers and OS users. With OS developers, they will know what has worked in previous OSes and what has not. With OS users, they know the features of existing sensor network OSes, so they can select a sensor network OS that is the most appropriate for their application.
To read this external content in full, download the complete paper from the author archives on line at ICACSIS.