skip to main content
research-article

Garbage collection for monitoring parametric properties

Authors Info & Claims
Published:04 June 2011Publication History
Skip Abstract Section

Abstract

Parametric properties are behavioral properties over program events that depend on one or more parameters. Parameters are bound to concrete data or objects at runtime, which makes parametric properties particularly suitable for stating multi-object relationships or protocols. Monitoring parametric properties independently of the employed formalism involves slicing traces with respect to parameter instances and sending these slices to appropriate non-parametric monitor instances. The number of such instances is theoretically unbounded and tends to be enormous in practice, to an extent that how to efficiently manage monitor instances has become one of the most challenging problems in runtime verification. The previous formalism-independent approach was only able to do the obvious, namely to garbage collect monitor instances when all bound parameter objects were garbage collected. This led to pathological behaviors where unnecessary monitor instances were kept for the entire length of a program. This paper proposes a new approach to garbage collecting monitor instances. Unnecessary monitor instances are collected lazily to avoid creating undue overhead. This lazy collection, along with some careful engineering, has resulted in RV, the most efficient parametric monitoring system to date. Our evaluation shows that the average overhead of RV in the DaCapo benchmark is 15%, which is two times lower than that of JavaMOP and orders of magnitude lower than that of Tracematches.

References

  1. JavaMOP. http://javamop.com.Google ScholarGoogle Scholar
  2. SPECjvm 2008. http://www.spec.org/jvm2008/.Google ScholarGoogle Scholar
  3. Tracematches Benchmarks. http://abc.comlab.ox.ac.uk/tmahead.Google ScholarGoogle Scholar
  4. C. Allan, P. Avgustinov, A. S. Christensen, L. J. Hendren, S. Kuzins, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. Adding trace matching with free variables to AspectJ. In Object-Oriented Programming, Systems, Languages and Applications (OOPSLA'05), pages 345--364. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. Arnold, M. Vechev, and E. Yahav. Qvm: an efficient runtime for detecting defects in deployed systems. In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'08), pages 143--162. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. P. Avgustinov and C. Church. Trace Monitoring with Free Variables. PhD thesis, Oxford University, 2009.Google ScholarGoogle Scholar
  7. P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, J. Lhotak, O. Lhotak, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. ABC: an extensible AspectJ compiler. In Aspect-Oriented Software Development (AOSD'05), pages 87--98. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. P. Avgustinov, J. Tibble, and O. de Moor. Making trace monitors feasible. In Object Oriented Programming, Systems, Languages and Applications (OOPSLA'07), pages 589--608. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. H. Barringer, D. Rydeheard, and K. Havelund. Rule systems for run-time monitoring: from EAGLE to RULER. J. Logic Computation, November 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. VanDrunen, von Dincklage, and Wiedermann}DaCapo:paperS. M. Blackburn, R. Garner, C. Hoffman, A. M. Khan, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanović, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo benchmarks: Java benchmarking development and analysis. In Object-Oriented Programming, Systems, Languages and Applications (OOPSLA'06), pages 169--190. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. E. Bodden. J-LO, a tool for runtime-checking temporal assertions. Master's thesis, RWTH Aachen University, 2005.Google ScholarGoogle Scholar
  12. E. Bodden and V. Stolz. Tracechecks: Defining semantic interfaces with temporal logic. In Software Composition, pages 147--162, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. E. Bodden, L. Hendren, and O. Lhoták. A staged static program analysis to improve the performance of runtime monitoring. In European Conference on Object Oriented Programming (ECOOP'07), volume 4609 of LNCS, pages 525--549. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. E. Bodden, F. Chen, and G. Roşu. Dependent advice: A general approach to optimizing history-based aspects. In Aspect-Oriented Software Development (AOSD'09), pages 3--14. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. E. Bodden, P. Lam, and L. Hendren. Clara: A framework for partially evaluating finite-state runtime monitors ahead of time. In Runtime Verification (RV'10), volume 6418 of LNCS, pages 183--197. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. F. Chen and G. Roşu. Java-MOP: A monitoring oriented programming environment for Java. In Tools and Algorithms for the Construction and Analysis of Systems (TACAS'05), volume 3440 of LNCS, pages 546--550. Springer, 2005. Google ScholarGoogle Scholar
  17. F. Chen and G. Roşu. MOP: An efficient and generic runtime verification framework. In Object-Oriented Programming, Systems, Languages and Applications (OOPSLA'07), pages 569--588. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. F. Chen and G. Roşu. Parametric trace slicing and monitoring. In Tools and Algorithms for the Construction and Analysis of Systems (TACAS'09), volume 5505 of LNCS, pages 246--261. Springer, 2009. Google ScholarGoogle Scholar
  19. F. Chen, P. Meredith, D. Jin, and G. Roşu. Efficient formalism-independent monitoring of parametric properties. In Automated Software Engineering (ASE'09), pages 383--394. IEEE, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. d'Amorim and K. Havelund. Event-based runtime verification of Java programs. ACM SIGSOFT Software Engineering Notes, 30 (4): 1--7, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. Dwyer, R. Purandare, and S. Person. Runtime verification in context: Can optimizing error detection improve fault diagnosis. In Runtime Verification (RV'10), volume 6418 of LNCS, pages 36--50. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. U. Erlingsson and F. B. Schneider. Irm enforcement of java stack inspection. In Symposium on Security and Privacy (SP'00), pages 246--. IEEE, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. S. Goldsmith, R. O'Callahan, and A. Aiken. Relational queries over program traces. In Object-Oriented Programming, Systems, Languages and Applications (OOPSLA'05), pages 385--402. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. K. W. Hamlen and M. Jones. Aspect-oriented in-lined reference monitors. In Programming languages and analysis for security (PLAS'08), pages 11--20. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. D. Jin, P. O. Meredith, D. Griffith, and G. Roşu. Garbage collection for monitoring parametric properties. Technical Report http://hdl.handle.net/2142/18751, Department of Computer Science, University of Illinois at Urbana-Champaign, 2011.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In European Conference on Object Oriented Programming (ECOOP'01), volume 2072 of LNCS, pages 327--353. Springer, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. M. Martin, V. B. Livshits, and M. S. Lam. Finding application errors and security flaws using PQL: a program query language. In Object Oriented Programming, Systems, Languages and Applications (OOPSLA'07), pages 365--383. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. P. Meredith, D. Jin, F. Chen, and G. Roşu. Efficient monitoring of parametric context-free patterns. J. Automated Software Engineering, 17 (2): 149--180, June 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. L. A. Smith, J. M. Bull, and J. Obdrzálek. A parallel java grande benchmark suite. In Supercomputing (SC'01), pages 8--8. ACM, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. V. Stolz and E. Bodden. Temporal Assertions using AspectJ. In Runtime Verification (RV'05), volume 144 of ENTCS, pages 109--124. Elsevier, 2005. Google ScholarGoogle Scholar
  31. R. E. Strom and S. Yemeni. Typestate: A programming language concept for enhancing software reliability. IEEE Transactions on Software Engineering, 12: 157--171, January 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Garbage collection for monitoring parametric properties

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in

                Full Access

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader
                About Cookies On This Site

                We use cookies to ensure that we give you the best experience on our website.

                Learn more

                Got it!