Information Technology Reference
In-Depth Information
Reducing Monitoring Overhead by Integrating
Event- and Time-Triggered Techniques
Chun Wah Wallace Wu 1 , Deepak Kumar 1 ,
Borzoo Bonakdarpour 2 , and Sebastian Fischmeister 1
1 Department of Electrical and Computer Engineering
University of Waterloo
200 University Avenue West
Waterloo, Ontario, Canada, N2L 3G1
{ cwwwu,d6kumar,sfischme } @uwaterloo.ca
2 School of Computer Science
University of Waterloo
200 University Avenue West
Waterloo, Ontario, Canada, N2L 3G1
borzoo@cs.uwaterloo.ca
Abstract. Runtime verification is a formal technique used to check
whether a program under inspection satisfies its specification by using
a runtime monitor. Existing monitoring approaches use one of two ways
for evaluating a set of logical properties: (1) event-triggered ,wherethe
program invokes the monitor when the state of the program changes,
and (2) time-triggered , where the monitor periodically preempts the pro-
gram and reads its state. Realizing the former is straightforward, but the
runtime behaviour of event-triggered monitors are dicult to predict.
Time-triggered monitoring (designed for real-time embedded systems),
on the other hand, provides predictable monitoring behavior and over-
head bounds at run time. Our previous work shows that time-triggered
monitoring can potentially reduce the runtime overhead provided that
the monitor samples the program state at a low frequency.
In this paper, we propose a hybrid method that leverages the benefits
of both event- and time-triggered methods to reduce the overall monitor-
ing overhead. We formulate an optimization problem, whose solution is a
set of instrumentation instructions that switches between event-triggered
and time-triggered modes of monitoring at run time; the solution may
indicate the use of exactly one mode or a combination of the two modes.
We fully implemented this method to produce instrumentation schemes
for C programs that run on an ARM Cortex-M3 processor, and experi-
mental results validate the effectiveness of this approach.
1 Introduction
Runtime verification [5, 19, 26] is a technique, where a monitor checks at run
time whether or not the execution of a system under inspection satisfies a given
correctness property. The main challenge in augmenting a system with runtime
 
Search WWH ::




Custom Search