Researchers: | Elaine Cheong |
---|---|
Advisor: | Edward A. Lee |
TinyOS [1] is an open-source operating system designed for wireless embedded sensor networks. It has been ported to over a dozen platforms and numerous sensor boards, including the Berkeley/Crossbow Motes, which are based on the Atmel AVR 8-/16-bit microcontroller series. TinyOS uses a component-based architecture which enables code reuse and minimizes code size. It uses an event-driven execution model which allows it to respond to events from the wireless radio and sensor interfaces. TinyOS applications are written in nesC, an extension of the C programming language that is designed to embody the structuring concepts and execution model of TinyOS.
Long running concurrent tasks can be created within TinyOS components, but avoiding race conditions and ensuring that tasks do not starve other tasks is the responsibility of the programmer. TinyGALS [4] is a model for programming event-driven systems that improves upon the TinyOS programming model by allowing software designers to create concurrent tasks without the burden of thinking about multiple threads. The TinyGALS programming model essentially provides an actor-oriented wrapper around traditional procedure-oriented code. The actor framework automatically handles concurrency and communication between tasks and enforces a consistent notion of state in the system. galsC [5] is the language and compiler that implements the TinyGALS programming model for the motes and is based on nesC. Given a high level specification of a TinyGALS program, the galsC compiler will automatically generate the code for all inter-actor communication, actor triggering mechanisms, and access to guarded global variables.
TOSSIM [2] is a simulator for TinyOS. TOSSIM compiles directly from nesC code for a TinyOS application, which allows users to run nesC code on the PC. It supports discrete event simulation of TinyOS sensor networks and execution of nesC/TinyOS programs for the sensor nodes. We will study the strengths and weaknesses of this heterogeneous combination by integrating TOSSIM with Ptolemy II [3]. The preliminary version of the "ptinyos" domain in Ptolemy II can generate nesC code for very simple TinyOS programs. We will further develop this domain for simulation of nesC programs from within Ptolemy II with discrete event simulation. Using the experience gained from extending the "ptinyos" domain, we will also extend Ptolemy II with a TinyGALS domain so that it can simulate galsC programs as well, during which we will define and codify the semantics of the interactions between TinyGALS and a discrete event model of computation.
Last updated 11/01/04