Abstract
While size and complexity of sensor networks software has increased significantly in recent years, the hardware capabilities of sensor nodes have been remaining very constrained. The predominant event-based programming paradigm addresses these hardware constraints, but does not scale well with the growing software complexity, often leading to software that is hard-to-manage and error-prone. Thread abstractions could remedy this situation, but existing solutions in sensor networks either provide incomplete thread semantics or introduce a significant resource overhead. This reflects the common understanding that one has to trade expressiveness for efficiency and vice versa. Our work, however, shows that this trade-off is not inherent to resource-constrained systems. We propose a comprehensive compiler-assisted cooperative threading abstraction, where full-fledged thread-based C code is translated to efficient event-based C code that runs atop an event-based operating system such as Contiki or TinyOS. Our evaluation shows that our approach outperforms thread libraries and generates code that is almost as efficient as hand-written event-based code with overheads of 1% RAM, 2% CPU, and 3% ROM.
Original language | English |
---|---|
Title of host publication | Proceedings of the 12th International Conference on Information Processing in Sensor Networks |
Number of pages | 12 |
Place of Publication | New York, NY, USA |
Publisher | ACM |
Publication date | 08.04.2013 |
Pages | 167-178 |
ISBN (Print) | 978-1-4503-1959-1 |
DOIs | |
Publication status | Published - 08.04.2013 |
Event | 12th International Conference on Information Processing in Sensor Networks - Philadelphia, United States Duration: 08.04.2013 → 11.04.2013 Conference number: 96721 |