tinyOS is an open-source operation system developed by the EECS department in UC Berkeley, which was originally designed for the Smart-Dust hardware platform. It is a component-based runtime environment designed to provide support for deeply embedded systems which require concurrency intensive operations while constrained by minimal hardware resources.

The software architecture is divided into a collection of software components. A complete system configuration consists of a tiny scheduler and a graph of these components. A component has four interrelated parts: a set of command handlers, a set of event handlers, an encapsulated fixed-size frame and a bundle of simple tasks.

Tasks, commands, and handlers execute in the context of the frame and operate on its state. To facilitate modularity, each component also declares the commands it uses and the events it signals. These declarations are used to compose the modular components in a per-application configuration. The composition process creates layers of components where higher level components issue commands to lower level components and lower level components signal events to the higher level components. Physical hardware represents the lowest level of components.

With this modular components architecture, the operation system is allowed to efficiently share a single execution context across multiple components. For example, the same top level program codes could be applied to different sensors by linking them to lower level codes of the corresponding sensors. This allows a high level of flexibility for development on both hardware and software.

 
Main | Intro | Research | Publications | People | Links | Internal
All rights reserved.
Web Admin