A Fully Concurrent Garbage Collector
Over the past two decades, the number of memory-managed programming languages has proliferated. Such languages use uniprocessormemorymanagement techniques to allocate and reclaim storage on behalf of programs. Multicores and other forms of multiprocessor systems have evolved to become common place. However, deployed memory management techniques largely have not taken advantage of the benefits ofmultiprocessor systems.We present a fully concurrent garbage collector that offers negligible synchronization cost and leverages the power, speed, and potential of multicores and other multiprocessor systems. This collector makes its best effort to avoid suspending application threads as many concurrent (and other on-the-fly) collectors do. Instead, it retrieves requisite data opportunistically from each thread to compute its view of the heap and perform garbage collection work. Our collector is an efficient, high performance garbage collector that yields features that are desirable for multiprocessor real-time systems.
Unable to display preview. Download preview PDF.
- 1.Aho, A.V., Kernighan, B.W., Weinberger, P.J.: The AWK Programming Language. Addison-Wesley (1988)Google Scholar
- 4.Bacon, D.F., Richard Attanasio, C., Lee, H., Rajan, V.T., Smith, S.: Java without the coffee breaks: A nonintrusive multiprocessor garbage collector. In: SIGPLAN Conference on Programming Language Design and Implementation, pp. 92–103 (2001)Google Scholar
- 7.DeTreville, J.: Experience with concurrent garbage collectors for Modula-2+. Technical Report 64, Digital Equipment Corporation Systems Research Center (August 1990)Google Scholar
- 9.Dieckmann, S., Hölzle, U.: A study of the Allocation Behavior of the SPECjvm98 Java Benchmarks. The MIT Press (2001)Google Scholar
- 10.Doligez, D., Leroy, X.: A concurrent generational garbage collector for a multi-threaded implementation of ML. In: Conference Record of the Twentieth Annual ACM Symposium on Principles of Programming Languages, SIGPLAN Notices, pp. 113–123. Association for Computing Machinery (1993)Google Scholar
- 11.Free Software Foundation. GCC, the GNU Compiler Collection - GNU Project - Free Software Foundation, FSF (2007), http://gcc.gnu.org/
- 13.Hartel, P.H.: Performance Analysis of Storage Management in Combinator Graph Reduction. PhD thesis, Department of Computer Systems, University of Amsterdam, Amsterdam (1988)Google Scholar
- 14.Jones, R., Lins, R.: Garbage collection: algorithms for automatic dynamic memory management. John Wiley & Sons, Ltd. (1996)Google Scholar
- 15.Levanoni, Y., Petrank, E.: An on-the-fly reference counting garbage collector for Java. In: Proceedings of the 16th ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages, and Applications, pp. 367–380. ACM Press (2001)Google Scholar
- 16.O’Toole, J.W., Nettles, S.M.: Concurrent replicating garbage collection. Technical Report MIT–LCS–TR–570 and CMU–CS–93–138, MIT and CMU (1993); Also LFP94 and OOPSLA93 Workshop on Memory Management and Garbage CollectionGoogle Scholar
- 18.Wall, L., Schwartz, R.L.: Programming Perl. O’Reilly and Associates, Inc. (1991)Google Scholar