This paper presents the architectural design and implementation of CoMOS, a component messaging based operating system for mobile sensing and communication devices with multiple, heterogeneous processors. Potential applications of these devices include personal voice or video services, health monitoring, and environmental sensing. To enable timely processing of environmental or user events and energy-efficient operations, the system uses a stack-based preemption mechanism and supports task migration and fine-grained resource scheduling. At the center of the architecture is a processor-agnostic programming abstraction in which applications are specified as sets of asynchronous tasks interacting with messages. Tasks respond to messages, or events, and may produce new messages. Message handling can be preempted on stack enabling timely response to high priority events with a very small memory overhead. The tasks are mapped to processors at compile time and can be migrated from one processor to another at runtime