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.
- JavaMOP. http://javamop.com.Google Scholar
- SPECjvm 2008. http://www.spec.org/jvm2008/.Google Scholar
- Tracematches Benchmarks. http://abc.comlab.ox.ac.uk/tmahead.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- P. Avgustinov and C. Church. Trace Monitoring with Free Variables. PhD thesis, Oxford University, 2009.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- H. Barringer, D. Rydeheard, and K. Havelund. Rule systems for run-time monitoring: from EAGLE to RULER. J. Logic Computation, November 2008. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- E. Bodden. J-LO, a tool for runtime-checking temporal assertions. Master's thesis, RWTH Aachen University, 2005.Google Scholar
- E. Bodden and V. Stolz. Tracechecks: Defining semantic interfaces with temporal logic. In Software Composition, pages 147--162, 2006. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- M. d'Amorim and K. Havelund. Event-based runtime verification of Java programs. ACM SIGSOFT Software Engineering Notes, 30 (4): 1--7, 2005. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- V. Stolz and E. Bodden. Temporal Assertions using AspectJ. In Runtime Verification (RV'05), volume 144 of ENTCS, pages 109--124. Elsevier, 2005. Google Scholar
- 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 Scholar
Digital Library
Index Terms
Garbage collection for monitoring parametric properties
Recommendations
Garbage collection for monitoring parametric properties
PLDI '11: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and ImplementationParametric 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 ...
Age-based garbage collection
Modern generational garbage collectors look for garbage among the young objects, because they have high mortality; however, these objects include the very youngest objects, which clearly are still live. We introduce new garbage collection algorithms, ...
Age-based garbage collection
OOPSLA '99: Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsModern generational garbage collectors look for garbage among the young objects, because they have high mortality; however, these objects include the very youngest objects, which clearly are still live. We introduce new garbage collection algorithms, ...







Comments