Monitoring Finite State Properties: Algorithmic Approaches and Their Relative Strengths

  • Rahul Purandare
  • Matthew B. Dwyer
  • Sebastian Elbaum
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7186)

Abstract

Monitoring complex applications to detect violations from specified properties is a promising field that has seen the development of many novel techniques and tools in the last decade. In spite of this effort, limiting, understanding, and predicting the cost of monitoring has been a challenge. Existing techniques primarily target the overhead caused by the large number of monitor instances to be maintained and the large number of events generated by the program that are related to the property. However, other factors, in particular, the algorithm used to process the sequence of events can significantly influence runtime overhead. In this work, we describe three basic algorithmic approaches to finite state monitoring and distill some of their relative strengths by conducting preliminary studies. The results of the studies reveal non-trivial differences in runtime overhead when using different monitoring algorithms that can inform future work.

Keywords

Algorithmic Approach Trap State Indexing Scheme Monitoring Approach Complete Match 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Adding trace matching with free variables to AspectJ. In: Conference on Object-oriented Programming, Systems, Languages, and Applications, pp. 345–364 (2005)Google Scholar
  2. 2.
    Arnold, M., Vechev, M., Yahav, E.: QVM: an efficient runtime for detecting defects in deployed systems. In: Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 143–162 (2008)Google Scholar
  3. 3.
    Avgustinov, P., Tibble, J., de Moor, O.: Making trace monitors feasible. In: Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 589–608 (2007)Google Scholar
  4. 4.
    Blackburn, S.M., Garner, R., Hoffman, C., Khan, A.M., McKinley, K.S., Bentzur, R., Diwan, A., Feinberg, D., Frampton, D., Guyer, S.Z., Hirzel, M., Hosking, A., Jump, M., Lee, H., Moss, J.E.B., Phansalkar, A., Stefanović, D., VanDrunen, T., von Dincklage, D., Wiedermann, B.: The DaCapo benchmarks: Java benchmarking development and analysis. In: Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 169–190 (2006)Google Scholar
  5. 5.
    Bodden, E.: Efficient hybrid typestate analysis by determining continuation-equivalent states. In: International Conference on Software Engineering, pp. 5–14 (2010)Google Scholar
  6. 6.
    Bodden, E., Hendren, L., Lhoták, O.: A Staged Static Program Analysis to Improve the Performance of Runtime Monitoring. In: Bateni, M. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 525–549. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  7. 7.
    Chen, F., Roşu, G.: Java-MOP: A Monitoring Oriented Programming Environment for Java. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 546–550. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  8. 8.
    Chen, F., Roşu, G.: Mop: an efficient and generic runtime verification framework. In: Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 569–588 (2007)Google Scholar
  9. 9.
    d’Amorim, M., Havelund, K.: Event-based runtime verification of Java programs. In: International Workshop on Dynamic Analysis, pp. 1–7 (2005)Google Scholar
  10. 10.
    Dwyer, M.B., Kinneer, A., Elbaum, S.: Adaptive online program analysis. In: International Conference on Software Engineering, pp. 220–229 (2007)Google Scholar
  11. 11.
    Flanagan, C., Freund, S.N.: FastTrack: efficient and precise dynamic race detection. In: Conference on Programming Language Design and Implementation, pp. 121–133 (2009)Google Scholar
  12. 12.
    Havelund, K., Roşu, G.: An overview of the runtime verification tool Java PathExplorer. Formal Methods in System Design 24(2), 189–215 (2004)MATHCrossRefGoogle Scholar
  13. 13.
    Kim, M., Viswanathan, M., Kannan, S., Lee, I., Sokolsky, O.V.: Java-MaC: A run-time assurance approach for Java programs. Formal Methods in System Design 24(2), 129–155 (2004)MATHCrossRefGoogle Scholar
  14. 14.
    Meredith, P., Jin, D., Chen, F., Roşu, G.: Efficient monitoring of parametric context-free patterns. Journal of Automated Software Engineering 17(2), 149–180 (2010)CrossRefGoogle Scholar
  15. 15.
    Purandare, R.: Exploiting Program and Property Structure for Efficient Runtime Monitoring. PhD thesis, University of Nebraska-Lincoln (May 2011)Google Scholar
  16. 16.
    Purandare, R., Dwyer, M.B., Elbaum, S.: Monitor optimization via stutter-equivalent loop transformation. In: Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 270–285 (2010)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Rahul Purandare
    • 1
  • Matthew B. Dwyer
    • 1
  • Sebastian Elbaum
    • 1
  1. 1.Department of Computer Science and EngineeringUniversity of Nebraska - LincolnLincolnUSA

Personalised recommendations