Document Type
Article
Publication Date
10-2015
Publication Title
IEEE Transactions on Computers
Abstract
Programming support for multi-threaded applications on embedded microcontroller platforms has attracted a considerable amount of research attention in the recent years. This paper is focused on this problem, and presents UnStacked C, a source-to-source transformation that can translate multithreaded programs written in C into stackless continuations. The transformation can support legacy code by not requiring any changes to application code; only the underlying threading library needs modifications. We describe the details of UnStacked C in the context of the TinyOS operating system for wireless sensor network applications. We present a modified implementation of the TOSThreads library for TinyOS, and show how existing applications programmed using TOSThreads can be automatically transformed to use stackless threads with only modifications in the build process. By eliminating the need to allocate individual thread stacks and by supporting lazy thread preemption, UnStacked C enables a considerable saving of memory used and power consumed, respectively.
Repository Citation
McCartney, William P. and Sridhar, Nigamanth, "Stackless Multi-Threading for Embedded Systems" (2015). Electrical and Computer Engineering Faculty Publications. 335.
https://engagedscholarship.csuohio.edu/enece_facpub/335
Original Citation
W. P. McCartney and N. Sridhar, "Stackless Multi-Threading for Embedded Systems," Computers, IEEE Transactions on, vol. 64, pp. 2940-2952, 2015.
DOI
10.1109/TC.2014.2378256
Version
Postprint
Publisher's Statement
© 2015 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other users, including reprinting/ republishing this material for advertising or promotional purposes, creating new collective works for resale or redistribution to servers or lists, or reuse of any copyrighted components of this work in other works.
Volume
64
Issue
10
Comments
This work was supported in part by the National Science Foundation through Grant CNS-0746632.
A shorter version of this paper appeared in the Proceedings of the 2011 International Conference on Distributed Computing on Sensor Systems (DCOSS11).