Non-Intrusive Program Tracing of Non-Preemptive Multitasking Systems Using Power Consumption

Kamal Lamichhanea, Carlos Morenob and Sebastian Fischmeisterc
University of Waterloo Waterloo, Canada
aklamichh@uwaterloo.ca
bcmoreno@uwaterloo.ca
csfischme@uwaterloo.ca

ABSTRACT


System tracing, runtime monitoring, execution reconstruction are useful techniques for protecting the safety and integrity of systems. Furthermore, with time-aware or overheadaware techniques being available, these techniques can also be used to monitor and secure production systems. As operating systems gain in popularity, even in deeply embedded systems, these techniques face the challenge to support multitasking. In this paper, we propose a novel non‐intrusive technique, which efficiently reconstructs the execution trace of nonpreemptive multitasking system by observing power consumption characteristics. Our technique uses the control‐flow graph (CFG) of the application program to identify the most likely block of code that the system is executing at any given point in time. For the purpose of the experimental evaluation, we first instrument the source code to obtain power consumption information for each basic block, which is used as the training data for our Dynamic Time Warping and k‐Nearest Neighbours (k-NN) classifier. Once the system is trained, this technique is used to identify live code‐block execution (LCBE). We show that the technique can reconstruct the execution flow of programs in a multi‐tasking environment with high accuracy.

Keywords: Power tracing, System tracing, Runtime monitoring, Scheduling, Operating system, Embedded software.



Full Text (PDF)