Static grouping of small objects to enhance performance of a paged virtual memory
ACM Transactions on Computer Systems (TOCS)
Compile-Time Program Restructuring in Multiprogrammed Virtual Memory Systems
IEEE Transactions on Software Engineering
Compiler optimization of data storage
Compiler optimization of data storage
Advanced compiler design and implementation
Advanced compiler design and implementation
Cache-conscious data placement
Proceedings of the eighth international conference on Architectural support for programming languages and operating systems
ACM Computing Surveys (CSUR)
System architecture directions for networked sensors
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
The design of an acquisitional query processor for sensor networks
Proceedings of the 2003 ACM SIGMOD international conference on Management of data
MANTIS: system support for multimodAl NeTworks of in-situ sensors
WSNA '03 Proceedings of the 2nd ACM international conference on Wireless sensor networks and applications
The dynamic behavior of a data dissemination protocol for network programming at scale
SenSys '04 Proceedings of the 2nd international conference on Embedded networked sensor systems
ELF: an efficient log-structured flash file system for micro sensor nodes
SenSys '04 Proceedings of the 2nd international conference on Embedded networked sensor systems
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
Nonintrusive precision instrumentation of microcontroller software
LCTES '05 Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
A dynamic operating system for sensor nodes
Proceedings of the 3rd international conference on Mobile systems, applications, and services
Algorithms and data structures for flash memories
ACM Computing Surveys (CSUR)
Proceedings of the 3rd international conference on Embedded networked sensor systems
System software techniques for low-power operation in wireless sensor networks
ICCAD '05 Proceedings of the 2005 IEEE/ACM International conference on Computer-aided design
Avrora: scalable sensor network simulation with precise timing
IPSN '05 Proceedings of the 4th international symposium on Information processing in sensor networks
t-kernel: providing reliable OS support to wireless sensor networks
Proceedings of the 4th international conference on Embedded networked sensor systems
Operating System Concepts
NSDI'05 Proceedings of the 2nd conference on Symposium on Networked Systems Design & Implementation - Volume 2
Accurate prediction of power consumption in sensor networks
EmNets '05 Proceedings of the 2nd IEEE workshop on Embedded Networked Sensors
FlexCup: a flexible and efficient code update mechanism for sensor networks
EWSN'06 Proceedings of the Third European conference on Wireless Sensor Networks
Enabling large-scale storage in sensor networks with the Coffee file system
IPSN '09 Proceedings of the 2009 International Conference on Information Processing in Sensor Networks
Programming storage-centric sensor networks with Squirrel
Proceedings of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks
Key-Study to execute code using demand paging and NAND flash at smart card scale
CARDIS'10 Proceedings of the 9th IFIP WG 8.8/11.2 international conference on Smart Card Research and Advanced Application
Hi-index | 0.01 |
Virtual memory has been successfully used in different domains to extend the amount of memory available to applications. We have adapted this mechanism to sensor networks, where, traditionally, RAM is a severely constrained resource. In this paper we show that the overhead of virtual memory can be significantly reduced with compile-time optimizations to make it usable in practice, even with the resource limitations present in sensor networks. Our approach, ViMem, creates an efficient memory layout based on variable access traces obtained from simulation tools. This layout is optimized to the memory access patterns of the application and to the specific properties of the sensor network hardware. Our implementation is based on TinyOS. It includes a pre-compiler for nesC code that translates virtual memory accesses into calls of ViMem's runtime component. ViMem uses flash memory as secondary storage. In order to evaluate our system we have modified nontrivial existing applications to make use of virtual memory. We show that its runtime overhead is small even for large data sizes.