Garbage collection and local variable type-precision and liveness in Java virtual machines
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Java Virtual Machine Specification
Java Virtual Machine Specification
Maté: a tiny virtual machine for sensor networks
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Capriccio: scalable threads for internet services
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Contiki - A Lightweight and Flexible Operating System for Tiny Networked Sensors
LCN '04 Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks
VMSTAR: synthesizing scalable runtime environments for sensor networks
Proceedings of the 3rd international conference on Embedded networked sensor systems
Java™ on the bare metal of wireless sensor devices: the squawk Java virtual machine
Proceedings of the 2nd international conference on Virtual execution environments
Run-time dynamic linking for reprogramming wireless sensor networks
Proceedings of the 4th international conference on Embedded networked sensor systems
NSDI'05 Proceedings of the 2nd conference on Symposium on Networked Systems Design & Implementation - Volume 2
An optimising compiler for generated tiny virtual machines
EmNets '05 Proceedings of the 2nd IEEE workshop on Embedded Networked Sensors
Introducing TakaTuka: a Java virtualmachine for motes
Proceedings of the 6th ACM conference on Embedded network sensor systems
Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems
Run-time compilation of bytecode in wireless sensor networks
Proceedings of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks
eShare: a capacitor-driven energy storage and sharing network for long-term operation
Proceedings of the 8th ACM Conference on Embedded Networked Sensor Systems
Efficient incremental code update for sensor networks
ACM Transactions on Sensor Networks (TOSN)
Flash memory in embedded Java programs
Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems
Offline GC: trashing reachable objects on tiny devices
Proceedings of the 9th ACM Conference on Embedded Networked Sensor Systems
Reflex: using low-power processors in smartphones without knowing them
ASPLOS XVII Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
Optimized java binary and virtual machine for tiny motes
DCOSS'10 Proceedings of the 6th IEEE international conference on Distributed Computing in Sensor Systems
Stateful mobile modules for sensor networks
DCOSS'10 Proceedings of the 6th IEEE international conference on Distributed Computing in Sensor Systems
Achieving long-term operation with a capacitor-driven energy storage and sharing network
ACM Transactions on Sensor Networks (TOSN)
Rethinking Java call stack design for tiny embedded devices
Proceedings of the 13th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, Tools and Theory for Embedded Systems
A real-time virtual machine implementation for small microcontrollers
Innovations in Systems and Software Engineering
Managing software evolution in large-scale wireless sensor and actuator networks
ACM Transactions on Sensor Networks (TOSN)
CTP: An efficient, robust, and reliable collection tree protocol for wireless sensor networks
ACM Transactions on Sensor Networks (TOSN)
Idleness as a resource in energy-neutral WSNs
Proceedings of the 1st International Workshop on Energy Neutral Sensing Systems
Hi-index | 0.00 |
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.