|
ABSTRACT
Reference-counting is traditionally considered unsuitable for multiprocessor systems. According to conventional wisdom, the update of reference slots and reference-counts requires atomic or synchronized operations. In this work we demonstrate this is not the case by presenting a novel reference-counting algorithm suitable for a multiprocessor system that does not require any synchronized operation in its write barrier (not even a compare-and-swap type of synchronization). A second novelty of this algorithm is that it allows eliminating a large fraction of the reference-count updates, thus, drastically reducing the reference-counting traditional overhead. This article includes a full proof of the algorithm showing that it is safe (does not reclaim live objects) and live (eventually reclaims all unreachable objects).We have implemented our algorithm on Sun Microsystems' Java Virtual Machine (JVM) 1.2.2 and ran it on a four-way IBM Netfinity 8500R server with 550-MHz Intel Pentium III Xeon and 2 GB of physical memory. Our results show that the algorithm has an extremely low latency and throughput that is comparable to the stop-the-world mark and sweep algorithm used in the original JVM.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
 |
2
|
|
 |
3
|
Hezi Azatchi , Yossi Levanoni , Harel Paz , Erez Petrank, An on-the-fly mark and sweep garbage collector based on sliding views, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
| |
4
|
Azatchi, H. and Petrank, E. 2003. Integrating generations with advanced reference counting garbage collectors. In International Conference on Compiler Construction (CC'2003). Lecture Notes in Computer Science, vol. 2622. Springer, Berlin, Germany, 185--199.
|
 |
5
|
David F. Bacon , Clement R. Attanasio , Han B. Lee , V. T. Rajan , Stephen Smith, Java without the coffee breaks: a nonintrusive multiprocessor garbage collector, Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation, p.92-103, June 2001, Snowbird, Utah, United States
|
| |
6
|
|
 |
7
|
|
 |
8
|
|
 |
9
|
|
 |
10
|
Stephen M. Blackburn , Kathryn S. McKinley, Ulterior reference counting: fast garbage collection without a long wait, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
 |
11
|
|
| |
12
|
Chikayama, T. and Kimura, Y. 1987. Multiple reference management in Flat GHC. In 4th International Conference on Logic Programming. MIT Press, Cambridge, MA, 276--293.
|
 |
13
|
|
| |
14
|
|
| |
15
|
DeTreville, J. 1990. Experience with concurrent garbage collectors for Modula-2+. Tech. rep. 64. DEC Systems Research Center, Palo Alto, CA.
|
 |
16
|
|
 |
17
|
|
 |
18
|
Damien Doligez , Georges Gonthier, Portable, unobtrusive garbage collection for multiprocessor systems, Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.70-83, January 16-19, 1994, Portland, Oregon, United States
[doi> 10.1145/174675.174673]
|
 |
19
|
|
| |
20
|
Domani, T., Kolodner, E. K., Lewis, E., Salant, E. E., Barabash, K., Lahan, I., Petrank, E., Yanover, I., and Levanoni, Y. 2000. Implementing an on-the-fly garbage collector for Java. See Hosking {2000}, 155--166.
|
 |
21
|
|
| |
22
|
Flood, C., Detlefs, D., Shavit, N., and Zhang, C. 2001. Parallel garbage collection for shared memory multiprocessors. In USENIX Java Virtual Machine Research and Technology Symposium (JVM '01, Monterey, CA). USENIX, Berkeley, CA.
|
 |
23
|
Paul R. Wilson , Barry Hayes, Garbage collection in object oriented systems, Addendum to the proceedings on Object-oriented programming systems, languages, and applications (Addendum), p.63-71, October 06-11, 1991, Phoenix, Arizona, United States
|
| |
24
|
|
 |
25
|
|
| |
26
|
Herlihy, M. and Moss, J. E. B. 1990. Non-blocking garbage collection for multiprocessors. Tech. rep. CRL 90/9. DEC Cambridge Research Laboratory, Cambridge, MA.
|
 |
27
|
Antony L. Hosking , J. Eliot B. Moss , Darko Stefanovic, A comparative performance evaluation of write barrier implementation, conference proceedings on Object-oriented programming systems, languages, and applications, p.92-109, October 18-22, 1992, Vancouver, British Columbia, Canada
|
| |
28
|
Hosking, T., Ed. 2000. ISMM 2000 Proceedings of the Second International Symposium on Memory Management. ACM Press, New York, NY.
|
| |
29
|
Hudson, R. L. and Moss, J. E. B. 2003. Copying garbage collection without stopping the world. Concurr. Computat.: Pract. Exp. 15, 3--5, 223--261.
|
| |
30
|
|
| |
31
|
Kolodner, E. K. and Petrank, E. 2004. Parallel copying garbage collection using delayed allocation. Parall. Process. Lett. 14, 2. To appear.
|
 |
32
|
Yossi Levanoni , Erez Petrank, An on-the-fly reference counting garbage collector for Java, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.367-380, October 14-18, 2001, Tampa Bay, FL, USA
|
| |
33
|
Lins, R. D. and Vasques, M. A. 1991. A comparative study of algorithms for cyclic reference counting. Tech. rep. 92. Computing Laboratory, The University of Kent at Canterbury. Canterbury, U.K.
|
 |
34
|
|
| |
35
|
|
| |
36
|
OOPSLA. 2003. Proceedings of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM Press, New York, NY.
|
 |
37
|
Yoav Ossia , Ori Ben-Yitzhak , Irit Goft , Elliot K. Kolodner , Victor Leikehman , Avi Owshanko, A parallel, incremental and concurrent GC for servers, Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation, June 17-19, 2002, Berlin, Germany
|
 |
38
|
|
| |
39
|
|
| |
40
|
Plakal, M. and Fischer, C. N. 2000. Concurrent garbage collection using program slices on multithreaded processors. See Hosking {2000}, 94--100.
|
| |
41
|
Printezis, T. and Detlefs, D. 2000. A generational mostly-concurrent garbage collector. See Hosking {2000}, 143--154.
|
| |
42
|
|
 |
43
|
|
| |
44
|
|
| |
45
|
SPEC Benchmarks. 2000. Standard Performance Evaluation Corporation. Available online at http://www.spec.org/.
|
 |
46
|
|
 |
47
|
W. R. Stoye , T. J. W. Clarke , A. C. Norman, Some practical methods for rapid combinator reduction, Proceedings of the 1984 ACM Symposium on LISP and functional programming, p.159-166, August 06-08, 1984, Austin, Texas, United States
[doi> 10.1145/800055.802032]
|
| |
48
|
|
 |
49
|
|
| |
50
|
|
| |
51
|
|
| |
52
|
Zorn, B. 1990. Barrier methods for garbage collection. Tech. rep. CU-CS-494-90. University of Colorado, Boulder, CO.
|
CITED BY 6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gabriel Kliot , Erez Petrank , Bjarne Steensgaard, A lock-free, concurrent, and incremental stack scanning for garbage collectors, Proceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, March 11-13, 2009, Washington, DC, USA
|
|