Visualizing the Runtime Behavior of Embedded Network Systems

Andrew R. Dalton, Sally K. Wahba, Sravanthi Dandamudi, Jason O. Hallstrom · 2008

TinyOS has proven to be an eective platform for developing lightweight embedded network applications. But the platform’s lean programming model and powerecient operation come at a price: TinyOS applications are notoriously dicult to construct, debug, and maintain. The development diculties stem largely from a programming model founded on events and deferred execution. In short, the model introduces non-determinism in the execution ordering of primitive actions | an issue exacerbated by the fact that embedded network systems are inherently parallel, distributed, and reactive. The resulting set of possible execution sequences for a given system is typically large and can swamp developers’ unaided intellectual ability to reason about program behavior. In this paper, we present a platform-neutral visualization toolkit for TinyOS 2.0 to aid in program comprehension. The goal is to assist developers in reasoning about the computation forest underlying a system under test and the particular branches chosen during each run. The toolkit supports comprehension activities involving both local and distributed runtime behavior. The constituent components include (i) a full-featured static analysis and instrumentation library, (ii) a selection-based probe insertion system, (iii) a lightweight event recording service, (iv) a trace extraction and reconstruction tool, and (v) three visualization front-ends. We demonstrate the utility of the toolkit using both standard and custom system examples and present an analysis of the toolkit’s resource usage and performance characteristics.

Read the paper · More papers on PaperTik