Stackless preemptive multi-threading for TinyOS

Stackless preemptive multi-threading for TinyOS
复制标题

TinyOS 的无堆栈抢占式多线程

DOI:
--
复制
发表时间:
2011
期刊:
International Conference on Distributed Computing in Sensor Systems
影响因子:
--
通讯作者:
Nigamanth Sridhar
Nigamanth Sridhar
中科院分区:
--
文献类型:
--
作者:
William P. McCartney;Nigamanth Sridhar

文献摘要

被引文献

相似文献

近年来,在嵌入式微控制器平台上对多线程应用程序的编程支持引起了相当多的研究关注。本文的重点是这个问题,并提出了UnStacked C,一个可以将多线程程序转换为无堆栈延续的源到源转换。转换可以支持遗留代码,因为它不需要对应用程序代码进行任何更改,只需要修改底层线程库。我们在无线传感器网络应用的TinyOS操作系统的背景下描述UnStacked C的细节。我们为TinyOS提供了TOSThreads库的修改实现,并展示了如何使用TOSThreads编程的现有应用程序可以自动转换为使用无堆栈线程,只需在构建过程中进行修改。通过消除分配单个线程堆栈的需要和支持惰性线程抢占,UnStacked C可以分别节省大量的内存使用和功耗。
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 into stackless continuations. The transformation can support legacy code by not requiring any changes to application code, and only modifications to the underlying threading library. 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.