Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2517351.2517360acmconferencesArticle/Chapter ViewAbstractPublication PagessensysConference Proceedingsconference-collections
research-article

Safe system-level concurrency on resource-constrained nodes

Published: 11 November 2013 Publication History

Abstract

Despite the continuous research to facilitate WSNs development, most safety analysis and mitigation efforts in concurrency are still left to developers, who must manage synchronization and shared memory explicitly. In this paper, we present a system language that ensures safe concurrency by handling threats at compile time, rather than at runtime. Based on the synchronous programming model, our design allows for a simple reasoning about concurrency that enables compile-time analysis resulting in deterministic and memory-safe programs. As a trade-off, our design imposes limitations on the language expressiveness, such as doing computationally-intensive operations and meeting hard real-time responsiveness. To show that the achieved expressiveness and responsiveness is sufficient for a wide range of WSN applications, we implement widespread network protocols and the CC2420 radio driver. The implementations show a reduction in source code size, with a penalty of memory increase below 10% in comparison to nesC. Overall, we ensure safety properties for programs relying on high-level control abstractions that also lead to concise and readable code.

References

[1]
A. Adya et al. Cooperative task management without manual stack management. In ATEC'02, pages 289--302. USENIX Association, 2002.
[2]
A. Benveniste et al. The synchronous languages twelve years later. In Proceedings of the IEEE, volume 91, pages 64--83, Jan 2003.
[3]
Bergel et al. Flowtalk: language support for long-latency operations in embedded devices. IEEE Transactions on Software Engineering, 37(4):526--543, 2011.
[4]
A. Bernauer and K. Römer. A comprehensive compiler-assisted thread abstraction for resource-constrained systems. In Proceedings of IPSN'13, Philadelphia, USA, Apr. 2013.
[5]
G. Berry. Preemption in concurrent systems. In FSTTCS, volume 761 of Lecture Notes in Computer Science, pages 72--93. Springer, 1993.
[6]
G. Berry. The Esterel-V5 Language Primer. CMA and Inria, Sophia-Antipolis, France, June 2000. Version 5.10, Release 2.0.
[7]
S. Bhatti et al. MANTIS OS: an embedded multithreaded operating system for wireless micro sensor platforms. Mob. Netw. Appl., 10:563--579, August 2005.
[8]
F. Boussinot and R. de Simone. The Esterel language. Proceedings of the IEEE, 79(9):1293--1304, Sep 1991.
[9]
N. Cooprider, W. Archer, E. Eide, D. Gay, and J. Regehr. Efficient memory safety for TinyOS. In Proceedings of SenSys'07, pages 205--218. ACM, 2007.
[10]
C. Duffy et al. A comprehensive experimental comparison of event driven and multi-threaded sensor node operating systems. JNW, 3(3):57--70, 2008.
[11]
Dunkels et al. Contiki - a lightweight and flexible operating system for tiny networked sensors. In Proceedings of LCN'04, pages 455--462, Washington, DC, USA, 2004. IEEE Computer Society.
[12]
Dunkels et al. Protothreads: simplifying event-driven programming of memory-constrained embedded systems. In Proceedings of SenSys'06, pages 29--42. ACM, 2006.
[13]
J. Eriksson et al. COOJA/MSPSim: interoperability testing for wireless sensor networks. In Proceedings of SIMUTools'09, page 27. ICST, 2009.
[14]
M. Farooq and T. Kunz. Operating systems for wireless sensor networks: A survey. Sensors, 11(6):5900--5930, 2011.
[15]
FreeRTOS. FreeRTOS homepage. http://www.freertos.org.
[16]
P. Ganesan et al. Analyzing and modeling encryption overhead for sensor network nodes. In Proceedings of WSNA'03, pages 151--159. ACM, 2003.
[17]
D. Gay et al. The nesC language: A holistic approach to networked embedded systems. In PLDI'03, pages 1--11, 2003.
[18]
O. Gnawali et al. Collection tree protocol. In Proceedings of SenSys'09, pages 1--14. ACM, 2009.
[19]
Hill et al. System architecture directions for networked sensors. SIGPLAN Notices, 35:93--104, November 2000.
[20]
C. Karlof et al. TinySec: a link layer security architecture for wireless sensor networks. In Proceedings of SenSys'04, pages 162--175. ACM, 2004.
[21]
M. Karpinski and V. Cahill. High-level application development is realistic for wireless sensor networks. In Proceedings of SECON'07, pages 610--619, 2007.
[22]
O. Kasten and K. Römer. Beyond event handlers: Programming wireless sensors with attributed state machines. In Proceedings of IPSN '05, pages 45--52, April 2005.
[23]
K. Klues et al. TOSThreads: thread-safe and non-invasive preemption in TinyOS. In Proceedings of SenSys'09, pages 127--140, New York, NY, USA, 2009. ACM.
[24]
E. A. Lee. The problem with threads. Computer, 39(5):33--42, 2006.
[25]
P. Levis. Experiences from a decade of TinyOS development. In Proceedings of OSDI'12, pages 207--220, Berkeley, CA, USA, 2012. USENIX Association.
[26]
P. Levis et al. Trickle: A self-regulating mechanism for code propagation and maintenance in wireless networks. In Proceedings of NSDI'04, volume 4, page 2, 2004.
[27]
W. P. McCartney and N. Sridhar. Abstractions for safe concurrent programming in networked embedded systems. In Proceedings of SenSys'06, pages 167--180, New York, NY, USA, 2006. ACM.
[28]
ORACLE. Java thread primitive deprecation. http://docs.oracle.com/javase/6/docs/technotes/guides/concurrency/threadPrimitiveDeprecation.html, 2011.
[29]
D. Potop-Butucaru et al. The synchronous hypothesis and synchronous languages. In R. Zurawski, editor, Embedded Systems Handbook. 2005.
[30]
M. Rahimi et al. Cyclops: in situ image sensing and interpretation in wireless sensor networks. In Proceedings of SenSys'05, pages 192--204. ACM, 2005.
[31]
C. M. Sadler and M. Martonosi. Data compression algorithms for energy-constrained devices in delay tolerant networks. In Proceedings of SenSys'06, pages 265--278. ACM, 2006.
[32]
TinyOS TEPs. http://docs.tinyos.net/tinywiki/index.php/TEPs, 2013.
[33]
B. L. Titzer. Virgil: Objects on the head of a pin. In ACM SIGPLAN Notices, volume 41, pages 191--208. ACM, 2006.
[34]
N. Xu et al. A wireless sensor network for structural monitoring. In Proceedings of SenSys'04, pages 13--24. ACM, 2004.

Cited By

View all
  • (2024)Switching Mechanism for Update Timing of Time-Varying Values in an FRP Language for Small-Scale Embedded SystemsProceedings of the 2024 13th International Conference on Software and Computer Applications10.1145/3651781.3651789(45-54)Online publication date: 1-Feb-2024
  • (2023)Writing Internet of Things Applications with Task Oriented ProgrammingComposability, Comprehensibility and Correctness of Working Software10.1007/978-3-031-42833-3_1(3-52)Online publication date: 18-Oct-2023
  • (2020)LAURA architectureJournal of Systems and Software10.1016/j.jss.2019.110494161:COnline publication date: 1-Mar-2020
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SenSys '13: Proceedings of the 11th ACM Conference on Embedded Networked Sensor Systems
November 2013
443 pages
ISBN:9781450320276
DOI:10.1145/2517351
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 November 2013

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Funding Sources

Conference

Acceptance Rates

SenSys '13 Paper Acceptance Rate 21 of 123 submissions, 17%;
Overall Acceptance Rate 174 of 867 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)2
Reflects downloads up to 25 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Switching Mechanism for Update Timing of Time-Varying Values in an FRP Language for Small-Scale Embedded SystemsProceedings of the 2024 13th International Conference on Software and Computer Applications10.1145/3651781.3651789(45-54)Online publication date: 1-Feb-2024
  • (2023)Writing Internet of Things Applications with Task Oriented ProgrammingComposability, Comprehensibility and Correctness of Working Software10.1007/978-3-031-42833-3_1(3-52)Online publication date: 18-Oct-2023
  • (2020)LAURA architectureJournal of Systems and Software10.1016/j.jss.2019.110494161:COnline publication date: 1-Mar-2020
  • (2018)Transparent standby for low-power, resource-constrained embedded systems: a programming language-based approach (short WIP paper)ACM SIGPLAN Notices10.1145/3299710.321133753:6(94-98)Online publication date: 19-Jun-2018
  • (2018)A memory-bounded, deterministic and terminating semantics for the synchronous programming language CéuACM SIGPLAN Notices10.1145/3299710.321133453:6(1-18)Online publication date: 19-Jun-2018
  • (2018)Transparent standby for low-power, resource-constrained embedded systems: a programming language-based approach (short WIP paper)Proceedings of the 19th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems10.1145/3211332.3211337(94-98)Online publication date: 19-Jun-2018
  • (2018)A memory-bounded, deterministic and terminating semantics for the synchronous programming language CéuProceedings of the 19th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems10.1145/3211332.3211334(1-18)Online publication date: 19-Jun-2018
  • (2018)Structured Synchronous Reactive Programming for Game Development - Case Study: On Rewriting Pingus from C++ to Céu2018 17th Brazilian Symposium on Computer Games and Digital Entertainment (SBGames)10.1109/SBGAMES.2018.00036(240-24009)Online publication date: Oct-2018
  • (2017)The Design and Implementation of the Synchronous Language CÉUACM Transactions on Embedded Computing Systems10.1145/303554416:4(1-26)Online publication date: 13-Jul-2017
  • (2017)Function-Oriented Decomposition for Reactive Embedded Software2017 43rd Euromicro Conference on Software Engineering and Advanced Applications (SEAA)10.1109/SEAA.2017.42(288-295)Online publication date: Aug-2017
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media