ABSTRACT
Concurrent garbage collectors are notoriously hard to design, implement, and verify. We present a framework for the automatic exploration of a space of concurrent mark-and-sweep collectors. In our framework, the designer specifies a set of "building blocks" from which algorithms can be constructed. These blocks reflect the designer's insights about the coordination between the collector and the mutator. Given a set of building blocks, our framework automatically explores a space of algorithms, using model checking with abstraction to verify algorithms in the space.
We capture the intuition behind some common mark-and-sweep algorithms using a set of building blocks. We utilize our framework to automatically explore a space of more than 1,600,000 algorithms built from these blocks, and derive over 100 correct fine-grained algorithms with various space, synchronization, and precision tradeoffs.
- Bar-David, Y., and Taubenfeld, G. Automatic discovery of mutual exclusion algorithms. In Proceedings of the 22nd Annual Symposium on Principles of Distributed Computing (2003). Google Scholar
Digital Library
- Barabash, K., Ossia, Y., and Petrank, E. Mostly concurrent garbage collection revisited. In Proceedings of the 18th ACM conference on Object-oriented programing, systems, languages, and applications (2003). Google Scholar
Digital Library
- Ben-Ari, M. Algorithms for on-the-fly garbage collection. ACM Trans. Program. Lang. Syst. 6, 3 (1984). Google Scholar
Digital Library
- Birkedal, L., Torp-Smith, N., and Reynolds, JC. Local reasoning about a copying garbage collector. In Proceedings of the 31st ACM Symposium on Principles of Programming Languages (2004). Google Scholar
Digital Library
- Bowman, H., Derrick, J., and Jones, RE. Modelling garbage collection algorithms. In Proceedings of International Computing Symposium (1994).Google Scholar
- Burdy, L. B vs. Coq to prove a garbage collector. In the 14th International Conference on Theorem Proving in Higher Order Logics: Supplemental Proceedings (2001).Google Scholar
- Das, M., Lerner, S., and Seigle, M. ESP: Path-sensitive program verification in polynomial time. In Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation (2002). Google Scholar
Digital Library
- Demmers, A., Weiser, M., Hayes, B., Boehm, H., Bobrow, D., and Shenker, S. Combining generational and conservative garbage collection: framework and implementations. In Proceedings of the 17th ACM symposium on Principles of programming languages (1990). Google Scholar
Digital Library
- Dewar, R. BK., Shirar, M., and Weixelbaum, E. Transformational derivation of a garbage collection algorithm. ACM Trans. Program. Lang. Syst. 4, 4 (1982). Google Scholar
Digital Library
- Dijkstra, EW., Lamport, L., Martin, AJ., Scholten, CS., and Steffens, E. FM. On-the-fly garbage collection: an exercise in cooperation. Commun. ACM 21, 11 (1978). Google Scholar
Digital Library
- Gries, D. An exercise in proving parallel programs correct. Commun. ACM 20, 12 (1977). Google Scholar
Digital Library
- Gries, D. Corrigendum. Commun. ACM 21, 12 (December 1978), 1048. Google Scholar
Digital Library
- Hackett, B., and Rugina, R. Region-based shape analysis with tracked locations. In Proceedings of the 32nd ACM Symposium on Principles of Programming Languages (2005), ACM. Google Scholar
Digital Library
- Havelund, K. Mechanical verification of a garbage collector. In Fourth International Workshop on Formal Methods for Parallel Programming: Theory and Applications (1999).Google Scholar
Digital Library
- Jackson, PB. Verifying a garbage collection algorithm. In Theorem Proving in Higher Order Logics, 11th International Conference (1998). Google Scholar
Digital Library
- Massalin, H. Superoptimizer: a look at the smallest program. In the 2nd International Conference on Architectural Support for Programming Languages and Operating Systems (1987). Google Scholar
Digital Library
- Paulson, L. Isabelle: A Generic Theorem Prover, vol828 of Lecture Notes in Computer Science. 1994.Google Scholar
- Prensa Nieto, L., and Esparza, J. Verifying single and multi-mutator garbage collectors with Owicki/Gries in Isabelle/HOL. In Mathematical Foundations of Computer Science (2000). Google Scholar
Digital Library
- Russinoff, DM. A mechanically verified incremental garbage collector. Formal Aspects of Computing 6, 4 (1994).Google Scholar
Cross Ref
- Sagiv, M., Reps, T., and Wilhelm, R. Parametric shape analysis via 3-valued logic. ACM Trans. on Prog. Lang. and Systems 24, 3 (2002). Google Scholar
Digital Library
- Solar-Lezama, A., Rabbah, RM., Bodík, R., and Ebcioglu, K. Programming by sketching for bit-streaming programs. In Proceedings of the ACM Conference on Programming Language Design and Implementation (2005). Google Scholar
Digital Library
- Takahashi, K. Abstraction and Search in Verification by State Exploration. PhD thesis, University of Tokyo, Jan. 2002.Google Scholar
- Vechev, M. Derivation And Evaluation Of Concurrent Collectors. PhD thesis, University of Cambridge, 2007.Google Scholar
- Vechev, MT., Yahav, E., and Bacon, DF. Correctness-preserving derivation of concurrent garbage collection algorithms. In Proceedings of the ACM Conference on Programming Language Design and Implementation/ (2006). Google Scholar
Digital Library
- Yahav, E., and Ramalingam, G. Verifying safety properties using separation and heterogeneous abstractions. In Proceedings of the ACM conference on Programming language design and implementation/ (2004). Google Scholar
Digital Library
Index Terms
CGCExplorer: a semi-automated search procedure for provably correct concurrent collectors
Recommendations
CGCExplorer: a semi-automated search procedure for provably correct concurrent collectors
Proceedings of the 2007 PLDI conferenceConcurrent garbage collectors are notoriously hard to design, implement, and verify. We present a framework for the automatic exploration of a space of concurrent mark-and-sweep collectors. In our framework, the designer specifies a set of "building ...
Simple concurrent garbage collection almost without synchronization
We present two simple mark and sweep algorithms, A and B, for concurrent garbage collection by a single collector running concurrently with a number of mutators that concurrently modify shared data. Both algorithms are based on the ideas of Ben-Ari's ...
Correctness-preserving derivation of concurrent garbage collection algorithms
Proceedings of the 2006 PLDI ConferenceConstructing correct concurrent garbage collection algorithms is notoriously hard. Numerous such algorithms have been proposed, implemented, and deployed - and yet the relationship among them in terms of speed and precision is poorly understood, and the ...







Comments