Date of Award


Document type


Access Type

Open Access Dissertation

Degree Name

Doctor of Philosophy (PhD)

Degree Program

Computer Science

First Advisor

Mark D. Corner

Second Advisor

Emery D. Berger

Third Advisor

Deepak Ganesan

Subject Categories

Computer Sciences


Recent advances in low-power electronics, energy harvesting, and sensor technologies are poised to revolutionize mobile and embedded computing, by enabling networks of mobile sensor devices that are long-lived and self-managing. When realized, this new generation of perpetual systems will have a far-reaching and transformative impact, improving scientists’ ability to observe natural phenomena, and enabling many ubiquitous computing applications for which regular maintenance is not feasible. In spite of these benefits, perpetual systems face many programming and deployment challenges. Conditions at runtime are unknown and highly variable. Variations in harvested energy and energy consumption, as well as mobility-induced changes in network connectivity and bandwidth require systems that are able to adapt gracefully at run-time to meet different circumstances. However, when programmers muddle adaptation details with application logic, the resulting code is often difficult to both understand and maintain. Relying on system designers to correctly reason about energy fluctuations and effectively harness opportunities for cooperation among mobile nodes, is not a viable solution. This dissertation demonstrates that perpetual systems can be designed and deployed without sacrificing programming simplicity. We address the challenges of perpetual operation and energy-aware data delivery in the context of several applications, including in situ wildlife tracking and vehicular networks. Specifically, we focus on two specific systems. Eon, the first energy-aware programming language, allows programmers to simply express application specific energy policies and then delegate the complexities of energy-aware adaptation to the underlying system. Eon automatically manages application energy in order to indefinitely extend a device’s operating lifetime, requiring only simple annotations from the programmer. The second system, Tula, is a system that automatically balances the inherently dependent activities of data collection and data delivery, while also ensuring that devices have fair access to network resources. In our experiments, Tula performs within 75% of the optimal max-min fair rate allocation.