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

Darjeeling, a feature-rich VM for the resource poor

Published: 04 November 2009 Publication History

Abstract

The programming and retasking of sensor nodes could benefit greatly from the use of a virtual machine (VM) since byte code is compact, can be loaded on demand, and interpreted on a heterogeneous set of devices. The challenge is to ensure good programming tools and a small footprint for the virtual machine to meet the memory constraints of typical WSN platforms. To this end we propose Darjeeling, a virtual machine modelled after the Java VM and capable of executing a substantial subset of the Java language, but designed specifically to run on 8- and 16-bit microcontrollers with 2--10 KB of RAM.
The Darjeeling VM uses a 16- rather than a 32-bit architecture, which is more efficient on the targeted platforms. Darjeeling features a novel memory organisation with strict separation of reference from non-reference types which eliminates the need for run-time type inspection in the underlying compacting garbage collector. Darjeeling uses a linked stack model that provides light-weight threads, and supports synchronisation.
The VM has been implemented on three different platforms and was evaluated with micro benchmarks and a real-world application. The latter includes a pure Java implementation of the collection tree routing protocol conveniently programmed as a set of cooperating threads, and a reimplementation of an existing environmental monitoring application. The results show that Darjeeling is a viable solution for deploying large-scale heterogeneous sensor networks.

References

[1]
Connected, limited device configuration specification version 1.0a. May 2000.
[2]
Virtual machine specification, Java Card platform, v2.2.2, 2006.
[3]
O. Agesen, D. Detlefs, J. Eliot, and B. Moss. Garbage collection and local variable type-precision and liveness in Java virtual machines. In SIGPLAN Conf. on Prog. Lang. Design and Impl, pages 269--279, 1998.
[4]
F. Aslam, C. Schindelhauer, G. Ernst, D. Spyra, J. Meyer, and M. Zalloom. Introducing TakaTuka: A Java virtual machine for motes. In SenSys '08: 6th ACM conf. on Embedded network sensor systems, pages 399--400, New York, NY, 2008.
[5]
A. Butters. Total cost of ownership: A comparison of C/C++ and Java, 2007.
[6]
P. Corke. FOS: A new operating system for sensor networks. In 5th European Conference on Wireless Sensor Networks (EWSN08) (Poster), 2008.
[7]
A. Dunkels, N. Finne, J. Eriksson, and T. Voigt. Run-time dynamic linking for reprogramming wireless sensor networks. In 4th int. conf. on Embedded networked sensor systems, pages 15--28. ACM New York, NY, 2006.
[8]
A. Dunkels, B. Grnvall, and T. Voigt. Contiki - a lightweight and flexible operating system for tiny networked sensors. In First IEEE Workshop on Embedded Networked Sensors (Emnets-I), Tampa, FL, Nov. 2004.
[9]
R. Fonseca, O. Gnawali, K. Jamieson, S. Kim, P. Levis, and A. Woo. The collection tree protocol (CTP). TEP 123 Draft, 2006.
[10]
O. Gnawali, R. Fonseca, K. Jamieson, D. Moss, and P. Levis. Collection tree protocol. In SenSys '09: 7th int. conf. on Embedded networked sensor systems, Berkeley, CA, 2009.
[11]
J. Koshy and R. Pandey. VMSTAR: Synthesizing scalable runtime environments for sensor networks. In SenSys '05: 3rd int. conf. on Embedded networked sensor systems, pages 243--254, New York, NY, 2005.
[12]
E. Lafortune. http://proguard.sourceforge.net/.
[13]
P. Levis and D. Culler. Maté: A tiny virtual machine for sensor networks. SIGOPS Oper. Syst. Rev., 36(5):85--95, 2002.
[14]
P. Levis, D. Gay, and D. Culler. Active sensor networks. In NSDI'05: 2nd Symposium on Networked Systems Design&Implementation, pages 343--356, Berkeley, CA, 2005.
[15]
P. Levis, S. Madden, J. Polastre, R. Szewczyk, K. Whitehouse, A. Woo, D. Gay, J. Hill, M. Welsh, et al. TinyOS: An operating system for sensor networks. Ambient Intelligence, pages 115--148, 2005.
[16]
T. Lindholm and F. Yellin. The Java#8482; Virtual Machine Specification (2nd Edition). Prentice Hall PTR, Apr. 1999.
[17]
T. Lindholm and F. Yellin. Java Card#8482; 2.2 off-card verifier, 2005.
[18]
D. Palmer, P. Sikka, P. Valencia, and P. Corke. An optimising compiler for generated tiny virtual machines. In 2nd IEEE Workshop on Embedded Networked Sensors (EmNetS-II), pages 161--162, May 2005.
[19]
Sentilla. http://www.sentilla.com.
[20]
D. Simon, C. Cifuentes, D. Cleal, J. Daniels, and D. White. Java#8482; on the bare metal of wireless sensor devices: The squawk Java virtual machine. In VEE '06: 2nd int. conf. on Virtual Execution Environments, pages 78--88, New York, NY, 2006.
[21]
J. Solorzano. leJOS: Java based OS for Lego RCX.
[22]
R. von Behren, J. Condit, F. Zhou, G. C. Necula, and E. Brewer. Capriccio: Scalable threads for internet services. In SOSP '03: 19th ACM Symposium on Operating Systems Principles, pages 268--281, New York, NY, 2003.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SenSys '09: Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems
November 2009
438 pages
ISBN:9781605585192
DOI:10.1145/1644038
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 ACM 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: 04 November 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Java
  2. virtual machines
  3. wireless sensor networks

Qualifiers

  • Research-article

Funding Sources

Conference

Acceptance Rates

Overall Acceptance Rate 174 of 867 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)1
Reflects downloads up to 06 Nov 2024

Other Metrics

Citations

Cited By

View all

View Options

Get Access

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