NESL Technical Report #: 2005-2-1
Sensor network nodes exhibit characteristics of both embedded systems and general-purpose systems. As an embedded system, a sensor node must use little energy and be robust to environmental conditions. As a generalpurpose system, a node should provide common services that make it easy to write applications. TinyOS, the current state of the art in sensor network operating systems, focuses on traditional embedded system constraints; reusable components implement common services, but a node runs a single statically-linked system image, making it hard to run multiple applications or incrementally update applications. We present SOS, a new operating system for mote-class sensor nodes that implements a more dynamic point on the design spectrum. SOS consists of dynamicallyloaded modules and a common kernel, which implements messaging, dynamic memory, and module loading and unloading, among other services. Modules are not processes: they are scheduled cooperatively and there is no memory protection. Nevertheless, the system protects against common module bugs using techniques such as typed entry points, watchdog timers, and primitive resource garbage collection. Individual modules can be added and removed with minimal system interruption. We describe SOS's design and implementation, discuss tradeoffs, and compare it with TinyOS and with the Mat'e virtual machine for TinyOS. Our evaluation shows that despite the dynamic nature of SOS and its higher-level kernel interface, it performs comparably to TinyOS in terms of energy usage and performance, and better in terms of energy usage during software updates.
Publication Forum: Third International Conference on Mobile Systems, Applications and Services (Mobisys)
Page (Count): 14
Place: Seattle, WA
Public Document?: Yes
NESL Document?: Yes
Document category: Conference Paper