A comprehensive compiler-assisted thread abstraction for resource-constrained systems

  • Authors:
  • Alexander Bernauer;Kay Römer

  • Affiliations:
  • Institute for Pervasive Computing, ETH Zurich, Zurich, Switzerland;Institute of Computer Engineering, University of Lübeck, Lübeck, Germany

  • Venue:
  • Proceedings of the 12th international conference on Information processing in sensor networks
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

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.