The ESTEREL synchronous programming language: design, semantics, implementation
Science of Computer Programming
Agile application-aware adaptation for mobility
Proceedings of the sixteenth ACM symposium on Operating systems principles
Vibration-to-electric energy conversion
IEEE Transactions on Very Large Scale Integration (VLSI) Systems - Special issue on low power electronics and design
Coordination languages and their significance
Communications of the ACM
Wireless sensor networks for habitat monitoring
WSNA '02 Proceedings of the 1st ACM international workshop on Wireless sensor networks and applications
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
ECOSystem: managing energy as a first class operating system resource
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
The Personal Server: Changing the Way We Think about Ubiquitous Computing
UbiComp '02 Proceedings of the 4th international conference on Ubiquitous Computing
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
Self-tuning wireless network power management
Proceedings of the 9th annual international conference on Mobile computing and networking
An energy-aware data-centric generic utility based approach in wireless sensor networks
Proceedings of the 3rd international symposium on Information processing in sensor networks
Managing battery lifetime with energy-aware adaptation
ACM Transactions on Computer Systems (TOCS)
Managing battery lifetime with energy-aware adaptation
ACM Transactions on Computer Systems (TOCS)
A sensor network application construction kit (SNACK)
SenSys '04 Proceedings of the 2nd international conference on Embedded networked sensor systems
Versatile low power media access for wireless sensor networks
SenSys '04 Proceedings of the 2nd international conference on Embedded networked sensor systems
Heliomote: enabling long-lived sensor networks through solar energy harvesting
Proceedings of the 3rd international conference on Embedded networked sensor systems
SensEye: a multi-tier camera sensor network
Proceedings of the 13th annual ACM international conference on Multimedia
TinyNode: a comprehensive platform for wireless sensor network applications
Proceedings of the 5th international conference on Information processing in sensor networks
Proceedings of the 4th international conference on Mobile systems, applications and services
Harvesting aware power management for sensor networks
Proceedings of the 43rd annual Design Automation Conference
Telos: enabling ultra-low power wireless research
IPSN '05 Proceedings of the 4th international symposium on Information processing in sensor networks
eFlux: Simple Automatic Adaptation for Environmentally Powered Devices
WMCSA '06 Proceedings of the Seventh IEEE Workshop on Mobile Computing Systems & Applications
Decentralized, adaptive resource allocation for sensor networks
NSDI'05 Proceedings of the 2nd conference on Symposium on Networked Systems Design & Implementation - Volume 2
Fidelity and yield in a volcano monitoring sensor network
OSDI '06 Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation - Volume 7
Flux: a language for programming high-performance servers
ATEC '06 Proceedings of the annual conference on USENIX '06 Annual Technical Conference
Flask: staged functional programming for sensor networks
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Practical asynchronous neighbor discovery and rendezvous for mobile sensing applications
Proceedings of the 6th ACM conference on Embedded network sensor systems
Resource aware programming in the Pixie OS
Proceedings of the 6th ACM conference on Embedded network sensor systems
Into the wild: taming uncertainty in perpetual mobile networks
Proceedings of the 2009 MobiHoc S3 workshop on MobiHoc S3
Leakage-aware energy synchronization for wireless sensor networks
Proceedings of the 7th international conference on Mobile systems, applications, and services
SolarStore: enhancing data reliability in solar-powered storage-centric sensor networks
Proceedings of the 7th international conference on Mobile systems, applications, and services
On meeting lifetime goals and providing constant application quality
ACM Transactions on Sensor Networks (TOSN)
Mercury: a wearable sensor network platform for high-fidelity motion analysis
Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems
Programming storage-centric sensor networks with Squirrel
Proceedings of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks
Green: a framework for supporting energy-conscious programming using controlled approximation
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
IDEA: integrated distributed energy awareness for wireless sensor networks
Proceedings of the 8th international conference on Mobile systems, applications, and services
Design and field experimentation of an energy-efficient architecture for DTN throwboxes
IEEE/ACM Transactions on Networking (TON)
Adaptive spatiotemporal node selection in dynamic networks
Proceedings of the 19th international conference on Parallel architectures and compilation techniques
Peloton: coordinated resource management for sensor networks
HotOS'09 Proceedings of the 12th conference on Hot topics in operating systems
HotPower'08 Proceedings of the 2008 conference on Power aware computing and systems
Quanto: tracking energy in networked embedded systems
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
Revealing the hidden lives of underground animals using magneto-inductive tracking
Proceedings of the 8th ACM Conference on Embedded Networked Sensor Systems
Mementos: system support for long-running computation on RFID-scale devices
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
Dynamic knobs for responsive power-aware computing
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
Synchronous programming of device drivers for global resource control in embedded operating systems
Proceedings of the 2011 SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systems
Dewdrop: an energy-aware runtime for computational RFID
Proceedings of the 8th USENIX conference on Networked systems design and implementation
Toward a unified object model for cyber-physical systems
Proceedings of the 2nd Workshop on Software Engineering for Sensor Network Applications
Managing performance vs. accuracy trade-offs with loop perforation
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Ekho: bridging the gap between simulation and reality in tiny energy-harvesting sensors
HotPower '11 Proceedings of the 4th Workshop on Power-Aware Computing and Systems
Probabilistically accurate program transformations
SAS'11 Proceedings of the 18th international conference on Static analysis
MobiCon: a mobile context-monitoring platform
Communications of the ACM
Healthopia: towards your well-being in everyday life
Proceedings of the 4th International Symposium on Applied Sciences in Biomedical and Communication Technologies
Randomized accuracy-aware program transformations for efficient approximate computations
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
An efficient renewable energy management and sharing system for sustainable embedded devices
Journal of Electrical and Computer Engineering
Predicting the Long-Term Behavior of a Micro-Solar Power System
ACM Transactions on Embedded Computing Systems (TECS)
Exploring cross-layer power management for PGAS applications on the SCC platform
Proceedings of the 21st international symposium on High-Performance Parallel and Distributed Computing
CoMon: cooperative ambience monitoring platform with continuity and benefit awareness
Proceedings of the 10th international conference on Mobile systems, applications, and services
Flit: a bulk transmission protocol for RFID-scale sensors
Proceedings of the 10th international conference on Mobile systems, applications, and services
Evaluating solar panel-driven systems in the laboratory
Proceedings of the seventh ACM international workshop on Wireless network testbeds, experimental evaluation and characterization
A practical theory of micro-solar power sensor networks
ACM Transactions on Sensor Networks (TOSN)
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the 2012 ACM workshop on Relaxing synchronization for multicore and manycore scalability
Synchronous programming of device drivers for global resource control in embedded operating systems
ACM Transactions on Embedded Computing Systems (TECS) - Special section on ESTIMedia'12, LCTES'11, rigorous embedded systems design, and multiprocessor system-on-chip for cyber-physical systems
Application modes: a narrow interface for end-user power management in mobile devices
Proceedings of the 14th Workshop on Mobile Computing Systems and Applications
Energy-synchronized computing for sustainable sensor networks
Ad Hoc Networks
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Energy-efficient work-stealing language runtimes
Proceedings of the 19th international conference on Architectural support for programming languages and operating systems
Hi-index | 0.02 |
Embedded systems can operate perpetually without being connected to a power source by harvesting environmental energy from motion, the sun, wind, or heat differentials. However, programming these perpetual systems is challenging. In response to changing energy levels, programmers can adjust the execution frequency of energy-intensive tasks, or provide higher service levels when energy is plentiful and lower service levels when energy is scarce. However, it is often difficult for programmers to predict the energy consumption resulting from these adjustments. Worse, explicit energy management can tie a program to a particular hardware platform, limiting portability. This paper introduces Eon, a programming language and runtime system designed to support the development of perpetual systems. To our knowledge, Eon is the first energy-aware programming language. Eon is a declarative coordination language that lets programmers compose programs from components written in C or nesC. Paths through the program ("flows") may be annotated with different energy states. Eon's automatic energy management then dynamically adapts these states to current and predicted energy levels. It chooses flows to execute and adjusts their rates of execution, maximizing the quality of service under available energy constraints. We demonstrate the utility and portability of Eon by deploying two perpetual applications on widely different hardware platforms: a GPS-based location tracking sensor deployed on a threatened species of turtle and on automobiles, and a solar-powered camera sensor for remote, ad-hoc deployments. We also evaluate the simplicity and effectiveness of Eon with a user study, in which novice Eon programmers produced more efficient efficient energy-adaptive systems in substantially less time than experienced C programmers.