Using CSP to Model and Analyze TinyOS Applications

The TinyOS concurrency model, although easier to reason about than shared-state threads, may still produce undesirable behavior as a result of unexpected interleaving of concurrent activities. This is problematic, since TinyOS applications are typically intended to run unattended for long periods of time, and must be reliable. In this paper, we describe a technique for modeling the interactions between TinyOS application components, and between an application and the TinyOS scheduling and preemption mechanisms, using the process algebra CSP. Analysis of the resulting process models can help TinyOS application developers to discover and diagnose concurrency-related errors in their designs that might otherwise go undetected until deployment of the application.