SenSpire OS: A Predictable, Flexible, and Efficient Operating System for Wireless Sensor Networks

The development of a modern sensor network is difficult because of the long-term unattended operation mode, diverse application requirements, and stringent resource constraints. To address these issues, we present SenSpire OS, a predictable, flexible, and efficient operating system for wireless sensor networks. We improve system predictability by two-phase interrupt servicing and predictable thread synchronization; we achieve system flexibility by providing a hybrid model for both event-driven programming and multithreaded programming; we retain system efficiency by employing stack sharing and modular design. Moreover, we have designed a three-layer networking stack and an object-oriented programming language (CSpire) to enhance system usability and programming convenience. Having implemented SenSpire OS on three most commonly used sensor node platforms, we evaluate its performance extensively. Results show that SenSpire OS ensures predictable system performance, provides a flexible hybrid model for application programming, and is efficient in resource utilization.

[1]  Chenyang Lu,et al.  Integrating concurrency control and energy management in device drivers , 2007, SOSP.

[2]  Richard Han,et al.  NodeMD: diagnosing node-level faults in remote wireless sensor systems , 2007, MobiSys '07.

[3]  Jonathan W. Hui,et al.  T 2 : A Second Generation OS For Embedded Sensor Networks , 2005 .

[4]  Wei Dong,et al.  FIT: A Flexible, LIght-Weight, and Real-Time Scheduling System for Wireless Sensor Platforms , 2008, DCOSS.

[5]  Bruce H. Krogh,et al.  Energy-efficient surveillance system using wireless sensor networks , 2004, MobiSys '04.

[6]  Jukka Mäki-Turja,et al.  Determining Maximum Stack Usage in Preemptive Shared Stack Systems , 2006, 2006 27th IEEE International Real-Time Systems Symposium (RTSS'06).

[7]  John Regehr,et al.  Random testing of interrupt-driven software , 2005, EMSOFT.

[8]  Jeff Rose,et al.  MANTIS OS: An Embedded Multithreaded Operating System for Wireless Micro Sensor Platforms , 2005, Mob. Networks Appl..

[9]  Md. Yusuf Sarwar Uddin,et al.  Virtual Battery: An Energy Reserve Abstraction for Embedded Sensor Networks , 2008, 2008 Real-Time Systems Symposium.

[10]  John R. Levine Linkers and Loaders , 1999 .

[11]  Yookun Cho,et al.  Shared-stack cooperative threads , 2007, SAC '07.

[12]  Issa M. Khalil,et al.  Stream: Low Overhead Wireless Reprogramming for Sensor Networks , 2007, IEEE INFOCOM 2007 - 26th IEEE International Conference on Computer Communications.

[13]  Tarek F. Abdelzaher,et al.  The LiteOS Operating System: Towards Unix-Like Abstractions for Wireless Sensor Networks , 2008, 2008 International Conference on Information Processing in Sensor Networks (ipsn 2008).

[14]  Deborah Estrin,et al.  A wireless sensor network For structural monitoring , 2004, SenSys '04.

[15]  Lui Sha,et al.  Priority Inheritance Protocols: An Approach to Real-Time Synchronization , 1990, IEEE Trans. Computers.

[16]  Yunhao Liu,et al.  Sea Depth Measurement with Restricted Floating Sensors , 2007, 28th IEEE International Real-Time Systems Symposium (RTSS 2007).

[17]  Cormac J. Sreenan,et al.  Adding preemption to TinyOS , 2007, EmNets '07.

[18]  Kamin Whitehouse,et al.  Declarative tracepoints: a programmable and application independent debugging system for wireless sensor networks , 2008, SenSys '08.

[19]  Anthony Rowe,et al.  Nano-RK: an energy-aware resource-centric RTOS for sensor networks , 2005, 26th IEEE International Real-Time Systems Symposium (RTSS'05).

[20]  Matt Welsh,et al.  Programming Sensor Networks Using Abstract Regions , 2004, NSDI.

[21]  Joseph Y.-T. Leung,et al.  Handbook of Real-Time and Embedded Systems , 2007 .

[22]  Eric Trumpler,et al.  Systematic Framework for Evolving TinyOS , 2006 .

[23]  Gyula Simon,et al.  The flooding time synchronization protocol , 2004, SenSys '04.

[24]  David E. Culler,et al.  A modular network layer for sensorsets , 2006, OSDI '06.

[25]  David E. Culler,et al.  A unifying link abstraction for wireless sensor networks , 2005, SenSys '05.

[26]  Adam Dunkels,et al.  Contiki - a lightweight and flexible operating system for tiny networked sensors , 2004, 29th Annual IEEE International Conference on Local Computer Networks.

[27]  David E. Culler,et al.  The nesC language: A holistic approach to networked embedded systems , 2003, PLDI.

[28]  Eric A. Brewer,et al.  USENIX Association Proceedings of HotOS IX : The 9 th Workshop on Hot Topics in Operating Systems , 2003 .

[29]  Nigamanth Sridhar,et al.  Abstractions for safe concurrent programming in networked embedded systems , 2006, SenSys '06.

[30]  Peng Li,et al.  Combining events and threads for scalable network services implementation and evaluation of monadic, application-level concurrency primitives , 2007, PLDI '07.

[31]  Wei Dong,et al.  Providing OS Support for Wireless Sensor Networks: Challenges and Approaches , 2010, IEEE Communications Surveys & Tutorials.

[32]  Pedro José Marrón,et al.  FlexCup: A Flexible and Efficient Code Update Mechanism for Sensor Networks , 2006, EWSN.

[33]  Hojung Cha,et al.  RETOS: Resilient, Expandable, and Threaded Operating System for Wireless Sensor Networks , 2007, 2007 6th International Symposium on Information Processing in Sensor Networks.

[34]  Jiming Chen,et al.  Utility-based asynchronous flow control algorithm for wireless sensor networks , 2010, IEEE Journal on Selected Areas in Communications.

[35]  Eric Anderson,et al.  X-MAC: a short preamble MAC protocol for duty-cycled wireless sensor networks , 2006, SenSys '06.

[36]  Christopher Nitta,et al.  Y-Threads: Supporting Concurrency in Wireless Sensor Networks , 2006, DCOSS.

[37]  Matt Welsh,et al.  Resource aware programming in the Pixie OS , 2008, SenSys '08.

[38]  Eddie Kohler,et al.  Harbor: software-based memory protection for sensor nodes , 2007, IPSN '07.

[39]  Muneeb Ali,et al.  Protothreads: simplifying event-driven programming of memory-constrained embedded systems , 2006, SenSys '06.

[40]  Philip Levis,et al.  Surviving sensor network software faults , 2009, SOSP '09.

[41]  John Regehr,et al.  Evolving real-time systems using hierarchical scheduling and concurrency analysis , 2003, RTSS 2003. 24th IEEE Real-Time Systems Symposium, 2003.

[42]  Yuting Zhang,et al.  Process-Aware Interrupt Scheduling and Accounting , 2006, 2006 27th IEEE International Real-Time Systems Symposium (RTSS'06).

[43]  Yunhao Liu,et al.  China's National Research Project on Wireless Sensor Networks , 2008, 2008 IEEE International Conference on Sensor Networks, Ubiquitous, and Trustworthy Computing (sutc 2008).

[44]  John K. Ousterhout,et al.  Why Threads Are A Bad Idea , 2013 .

[45]  Qiang Wang,et al.  Reprogramming wireless sensor networks: challenges and approaches , 2006, IEEE Network.

[46]  David E. Culler,et al.  The dynamic behavior of a data dissemination protocol for network programming at scale , 2004, SenSys '04.

[47]  Ian F. Akyildiz,et al.  Wireless sensor networks: a survey , 2002, Comput. Networks.

[48]  John A. Stankovic,et al.  t-kernel: providing reliable OS support to wireless sensor networks , 2006, SenSys '06.

[49]  Jens Palsberg,et al.  Avrora: scalable sensor network simulation with precise timing , 2005, IPSN 2005. Fourth International Symposium on Information Processing in Sensor Networks, 2005..

[50]  John Regehr Safe and Structured Use of Interrupts in Real-Time and Embedded Software , 2007, Handbook of Real-Time and Embedded Systems.

[51]  Saurabh Bagchi,et al.  Hermes: Fast and Energy Efficient Incremental Code Updates for Wireless Sensor Networks , 2009, IEEE INFOCOM 2009.

[52]  Dionisio de Niz,et al.  Predictable Interrupt Management for Real Time Kernels over conventional PC Hardware , 2006, 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'06).

[53]  John Anderson,et al.  An analysis of a large scale habitat monitoring application , 2004, SenSys '04.

[54]  Hojung Cha,et al.  Multithreading Optimization Techniques for Sensor Network Operating Systems , 2007, EWSN.

[55]  Wei Dong,et al.  FIT: A Flexible, Lightweight, and Real-Time Scheduling System for Wireless Sensor Platforms , 2010, IEEE Transactions on Parallel and Distributed Systems.

[56]  Mani B. Srivastava,et al.  A dynamic operating system for sensor nodes , 2005, MobiSys '05.

[57]  Ramesh Govindan,et al.  TOSThreads: thread-safe and non-invasive preemption in TinyOS , 2009, SenSys '09.

[58]  Yunhao Liu,et al.  Dynamic linking and loading in networked embedded systems , 2009, 2009 IEEE 6th International Conference on Mobile Adhoc and Sensor Systems.

[59]  Adam Dunkels,et al.  Run-time dynamic linking for reprogramming wireless sensor networks , 2006, SenSys '06.