I. Introduction
Runtime monitoring and verification enables a system to monitor its own execution to support rapid in-situ failure detection and enables tracing a failure's root cause occurred by unknown environmental, physical, and operating conditions. However, embedded systems have unique requirements, including cost, size, area, and energy constraints, that limit which monitoring and verification approaches can be employed at runtime. A critical concern is the need to ensure the monitoring method does not change the observable system state and to avoid any timing changes. Such intrusive interactions could lead to synchronization and scheduling problems that then lead to catastrophic system failure. Thus, runtime monitoring and verification methods should be non-intrusive, especially for safety-critical and life-critical embedded systems.