ACM Home Page
Please provide us with feedback. Feedback
Atomicity and visibility in tiny embedded systems
Full text PdfPdf (118 KB)
Source Architectural Support for Programming Languages and Operating Systems archive
Proceedings of the 3rd workshop on Programming languages and operating systems: linguistic support for modern operating systems table of contents
San Jose, California
Article No. 2  
Year of Publication: 2006
ISBN:1-59593-577-0
Authors
John Regehr  University of Utah
Nathan Cooprider  University of Utah
David Gay  Intel Research Berkeley
Sponsor
SIGARCH: ACM Special Interest Group on Computer Architecture
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 40,   Citation Count: 2
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1215995.1215997
What is a DOI?

ABSTRACT

Visibility is a property of a programming language's memory model that determines when values stored by one concurrent computation become visible to other computations. Our work exploits the insight that in nesC, a C-like language with explicit atomicity, the traditional way of ensuring timely visibility---volatile variables---can be entirely avoided. This is advantageous because the volatile qualifier is a notorious source of programming errors and misunderstandings. Furthermore, the volatile qualifier hurts performance by inhibiting many more optimizations than are necessary to ensure visibility. In this paper we extend the semantics of nesC's atomic statements to include a visibility guarantee, we show two ways that these semantics can be implemented, and we also show that our better implementation has no drawbacks in terms of resource usage.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Andrei Alexandrescu, Hans Boehm, Kevlin Henney, Doug Lea, and Bill Pugh. Memory model for multithreaded C++, September 2004. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1680.pdf.
 
2
AVR C Runtime Library Project. AVR libc Frequently Asked Questions, 2006. http://www.nongnu.org/avr-libc/user-manual/FAQ.html.
3
 
4
Crossbow Technology, Inc. http://xbow.com.
5
6
 
7
Herb Sutter. Prism: A principle-based sequential memory model for microsoft native code platforms, July 2006. Draft, available from http://www.gotw.ca/memmodel/Prism%20-%20draft%200.8.pdf.
 
8
 
9
Linus Torvalds. Anti-volatile diatribe, July 2006. Linux-Kernel Mailing List posting, http://lkml.org/lkml/2006/7/6/159.


Collaborative Colleagues:
John Regehr: colleagues
Nathan Cooprider: colleagues
David Gay: colleagues