Title: Multitasking on Wireless Sensor Networks
Description: A Wireless Sensor Network (WSN) is a loose interconnection among distributed embedded devices called motes. Motes have constrained sensing, computing, and communicating resources and operate for a long period of time on a small energy supply. Although envisioned as a platform for facilitating and inspiring a new spectrum of applications, after a decade of research the WSN is limited to collecting data and sporadically updating system parameters. Programming other applications, including those that have real-time constraints, or designing WSNs operating with multiple applications require enhanced system architectures, new abstractions, and design methodologies. This dissertation introduces a system design methodology for multitasking on WSNs. It allows programmers to create an abstraction of a single, integrated system running with multiple tasks. Every task has a dedicated protocol stack. Thus, different tasks can have different computation logics and operate with different communication protocols.

This facilitates the execution of heterogeneous applications on the same WSN and allows programmers to implement a variety of system services. The services that have been implemented provide energy-monitoring, tasks scheduling, and communication between the tasks. The experimental section evaluates implementations of the WSN software designed with the presented methodology. A new set of tools for testbed deployments is introduced and used to test examples of WSNs running with applications interacting with the physical world. Using remote testbeds with over 100 motes, the results show the feasibility of the proposed methodology in constructing a robust and scalable WSN system abstraction, which can improve the run-time performance of applications, such as data collection and point-to-point streaming.