Increasing demand for more features and bigger roles of software makes software more and more complex. Unfortunately, increase in the logical and organizational complexity of software generally leads to more bugs. Real-time embedded systems are not exceptions. Hastily written buggy firmware burned into a TV may not be easily "patched" by consumers. A best selling smart phone may be recalled due to the software bugs. These systems cannot be developed like safety-critical systems due to far more limited time and budget.While many software engineering tools are useful in improving the quality of applications, the same tools are less efficient or inaccurate for system software. For controlling the residual software bugs in system software such as operating systems, we need more systematic enforcement in run-time. As a solution, we propose VEER, a Virtual Execution Environment for Robust real-time systems. VEER is based on a real-time virtual machine monitor (RT-VMM) and allows consolidation and partitioning of the subsystems of real-time embedded systems for better recoverability and service availability. Since RT-VMM has a complete control over the resource allocation, some of the important recovery can be made faster by appropriating resources for the process.The recovery time is reduced through fault-containment, which is achieved by the following:1) RT-VMM based partitioning: The temporal and spatial partitioning ensures certain execution faults are not propagated beyond the common execution boundaries.2) eSimplex, an analytic redundancy toolkit for embedded real-time systems: eSimplex enforces healthy component relations so that content errors are not propagated beyond component boundary, especially from less critical ones to more critical ones.For restart recovery, process resurrection is used for fast and predictable recovery.We examined the performance of VEER by comparing the existing real-time embedded systems and the migrated and reorganized version of the same systems. The performance overhead of RT-VMM is about 1.7 % if self-contained, or up to 4.7 % if networked in our experimental setup.
展开▼