Reliability and Optimization for Resource-Constrained Embedded Systems
Smith, Rebecca Jane
Master of Science
Embedded systems are ubiquitous, powering countless devices ranging from cars to appliances. As the software requirements of these systems grow increasingly complex, it is necessary to develop new approaches to simplify embedded systems programming. Recently, managed run-time systems have emerged as a means of increasing the productivity of writing embedded applications. Along with increased productivity, these run-time systems bring an intrinsic structure which provides new opportunities for addressing fundamental challenges faced by resource-constrained embedded systems. This thesis presents novel mechanisms which utilize the structure imposed by managed run-time systems to address two key challenges of embedded systems programming: reliability and memory management. Though a wealth of past work explores these challenges in the context of conventional computing systems, the stringent resource constraints of embedded systems demand a more economical approach. Therefore, this thesis presents new techniques designed to accommodate the unique properties of embedded systems. First, this thesis presents Phoenix, a semi-automated system for recovering from hardware peripheral failures that is integrated into the run-time system. The design of Phoenix is uniquely tailored to embedded systems, inspired by novel insights into the characteristics of these systems as they pertain to reliability. Second, this thesis proposes a new technique for memory optimization andanalysis in embedded systems that capitalizes on the structure of a managed run-time system. It presents GEM, an extensible framework that implements this technique, and highlights the versatility of this framework through the implementation and evaluation of four use cases. Through these two systems, this thesis demonstrates the power of managed run-time systems to improve the future of developing safe and efficient embedded applications.
embedded systems; run-time systems; reliability; memory visualization; memory transformation