Reducing Monitoring Overhead by Integrating Event- and Time-Triggered Techniques

  • Chun Wah Wallace Wu
  • Deepak Kumar
  • Borzoo Bonakdarpour
  • Sebastian Fischmeister
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8174)


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, where the program invokes the monitor when the state of the program changes, and (2) time-triggered, where the monitor periodically preempts the program and reads its state. Realizing the former is straightforward, but the runtime behaviour of event-triggered monitors are difficult to predict. Time-triggered monitoring (designed for real-time embedded systems), on the other hand, provides predictable monitoring behavior and overhead 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 monitoring 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 experimental results validate the effectiveness of this approach.


Basic Block Monitoring Mode Linear Temporal Logic Execution Path Symbolic Execution 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
  2. 2.
    Bonakdarpour, B., Navabpour, S., Fischmeister, S.: Sampling-based runtime verification. In: Butler, M., Schulte, W. (eds.) FM 2011. LNCS, vol. 6664, pp. 88–102. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  3. 3.
    Bonakdarpour, B., Navabpour, S., Fischmeister, S.: Time-triggered runtime verification. Formal Methods in Systems Design (FMSD) 43(1), 29–60 (2013)CrossRefGoogle Scholar
  4. 4.
    Chang, E.Y., Manna, Z., Pnueli, A.: Characterization of Temporal Property Classes. In: Kuich, W. (ed.) ICALP 1992. LNCS, vol. 623, pp. 474–486. Springer, Heidelberg (1992)CrossRefGoogle Scholar
  5. 5.
    Colin, S., Mariani, L.: 18 Run-Time Verification. In: Broy, M., Jonsson, B., Katoen, J.-P., Leucker, M., Pretschner, A. (eds.) Model-Based Testing of Reactive Systems. LNCS, vol. 3472, pp. 525–555. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  6. 6.
    D’Amorim, M., Roşu, G.: Efficient Monitoring of omega-Languages. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 364–378. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  7. 7.
    Falcone, Y., Fernandez, J.-C., Mounier, L.: Runtime Verification of Safety-Progress Properties. In: Bensalem, S., Peled, D.A. (eds.) RV 2009. LNCS, vol. 5779, pp. 40–59. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  8. 8.
    Giannakopoulou, D., Havelund, K.: Automata-Based Verification of Temporal Properties on Running Programs. In: Automated Software Engineering (ASE), pp. 412–416 (2001)Google Scholar
  9. 9.
    GrammaTech Inc. CodeSurfer®,
  10. 10.
    Havelund, K., Rosu, G.: Monitoring Programs Using Rewriting. In: Automated Software Engineering (ASE), pp. 135–143 (2001)Google Scholar
  11. 11.
    Havelund, K., Roşu, G.: Synthesizing Monitors for Safety Properties. In: Katoen, J.-P., Stevens, P. (eds.) TACAS 2002. LNCS, vol. 2280, pp. 342–356. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  12. 12.
    Havelund, K., Rosu, G.: Monitoring Java Programs with Java PathExplorer. Electronic Notes in Theoretical Computer Science 55(2) (2001)Google Scholar
  13. 13.
    Huang, X., Seyster, J., Callanan, S., Dixit, K., Grosu, R., Smolka, S.A., Stoller, S.D., Zadok, E.: Software monitoring with controllable overhead. Software Tools for Technology Transfer, STTT (2011) (to appear)Google Scholar
  14. 14.
    Havelund, K., Rosu, G.: Efficient Monitoring of Safety Sroperties. Software Tools and Technology Transfer (STTT) 6(2), 158–173 (2004)CrossRefGoogle Scholar
  15. 15.
    Kim, M., Lee, I., Sammapun, U., Shin, J., Sokolsky, O.: Monitoring, Checking, and Steering of Real-Time Systems. Electronic Notes in Theoretical Computer Science 70(4) (2002)Google Scholar
  16. 16.
    Kim, M., Viswanathan, M., Kannan, S., Lee, I., Sokolsky, O.: Java-MaC: A Run-Time Assurance Approach for Java Programs. Formal Methods in System Design (FMSD) 24(2), 129–155 (2004)CrossRefzbMATHGoogle Scholar
  17. 17.
    Kupferman, O., Vardi, M.Y.: Model Checking of Safety Properties. In: Halbwachs, N., Peled, D.A. (eds.) CAV 1999. LNCS, vol. 1633, pp. 172–183. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  18. 18.
    Lattner, C., Adve, V.: LLVM: A compilation framework for lifelong program analysis and transformation. In: International Symposium on Code Generation and Optimization: Feedback Directed and Runtime Optimization, p. 75 (2004)Google Scholar
  19. 19.
    Leucker, M., Schallhart, C.: A Brief Account of Runtime Verification. Journal of Logic and Algebraic Programming (JLAP) 78, 293–303 (2009)CrossRefzbMATHGoogle Scholar
  20. 20.
    Manna, Z., Pnueli, A.: A Hierarchy of Temporal Properties. In: Principles of Distributed Computing (PODC), pp. 377–410 (1990)Google Scholar
  21. 21.
    Pnueli, A., Zaks, A.: PSL Model Checking and Run-Time Verification via Testers. In: Misra, J., Nipkow, T., Sekerinski, E. (eds.) FM 2006. LNCS, vol. 4085, pp. 573–586. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  22. 22.
    Roşu, G., Chen, F., Ball, T.: Synthesizing Monitors for Safety Properties: This Time with Calls and Returns. In: Leucker, M. (ed.) RV 2008. LNCS, vol. 5289, pp. 51–68. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  23. 23.
    SRI. Yices: An SMT Solver (1.0.34),
  24. 24.
    Stoller, S.D., Bartocci, E., Seyster, J., Grosu, R., Havelund, K., Smolka, S.A., Zadok, E.: Runtime verification with state estimation. In: Khurshid, S., Sen, K. (eds.) RV 2011. LNCS, vol. 7186, pp. 193–207. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  25. 25.
    Stolz, V., Bodden, E.: Temporal Assertions using Aspectj. Electronic Notes in Theoretical Computer Science 144(4) (2006)Google Scholar
  26. 26.
    Zee, K., Kuncak, V., Taylor, M., Rinard, M.: Runtime checking for program verification. In: Sokolsky, O., Taşıran, S. (eds.) RV 2007. LNCS, vol. 4839, pp. 202–213. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  27. 27.
    Zhou, W., Sokolsky, O., Loo, B.T., Lee, I.: MaC: Distributed Monitoring and Checking. In: Bensalem, S., Peled, D.A. (eds.) RV 2009. LNCS, vol. 5779, pp. 184–201. Springer, Heidelberg (2009)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Chun Wah Wallace Wu
    • 1
  • Deepak Kumar
    • 1
  • Borzoo Bonakdarpour
    • 2
  • Sebastian Fischmeister
    • 1
  1. 1.Department of Electrical and Computer EngineeringUniversity of WaterlooWest WaterlooCanada
  2. 2.School of Computer ScienceUniversity of WaterlooWest WaterlooCanada

Personalised recommendations