The Community for Technology Leaders
RSS Icon
Issue No.11 - Nov. (2012 vol.61)
pp: 1611-1623
Shaoshan Liu , Microsoft, Redmond
Jie Tang , Beijing Institute of Technology, Beijing
Ligang Wang , Intel Research, Beijing
Xiao-Feng Li , Intel Research, Beijing
Jean-Luc Gaudiot , University of California, Irvine
The fundamental challenge of garbage collector (GC) design is to maximize the recycled space with minimal time overhead. For efficient memory management, in many GC designs the heap is divided into large object space (LOS) and normal object space (non-LOS). When either space is full, garbage collection is triggered even though the other space may still have plenty of room, thus leading to inefficient space utilization. Also, space partitioning in existing GC designs implies different GC algorithms for different spaces. This not only prolongs the pause time of garbage collection, but also makes collection inefficient on multiple spaces. To address these problems, we propose Packer, a parallel garbage collection algorithm based on the novel concept of virtual spaces. Instead of physically dividing the heap into multiple spaces, Packer manages multiple virtual spaces in one physical space. With multiple virtual spaces, Packer offers efficient memory management. With one physical space, Packer avoids the problem of an inefficient space utilization. To reduce the garbage collection pause time, we also propose a novel parallelization method that is applicable to multiple virtual spaces. Specifically, we reduce the compacting GC parallelization problem into a discreted acyclic graph (DAG) traversal parallelization problem, and apply it to both normal and large object compaction.
Resource management, Algorithm design and analysis, Compaction, Memory management, Aerospace electronics, Partitioning algorithms, Synchronization, Java virtual machine, Resource management, Algorithm design and analysis, Compaction, Memory management, Aerospace electronics, Partitioning algorithms, Synchronization, memory management, Resource management, Algorithm design and analysis, Compaction, Memory management, Aerospace electronics, Partitioning algorithms, Synchronization, parallel systems, Garbage collection
Shaoshan Liu, Jie Tang, Ligang Wang, Xiao-Feng Li, Jean-Luc Gaudiot, "Packer: Parallel Garbage Collection Based on Virtual Spaces", IEEE Transactions on Computers, vol.61, no. 11, pp. 1611-1623, Nov. 2012, doi:10.1109/TC.2011.193
[1] P.J. Caudill and A. Wirfs-Brock, “A Third Generation Smalltalk-80 Implementation,” Proc. Conf. Object-Oriented Programming Systems, Languages and Applications, 1986.
[2] M. Hicks, L. Hornof, J.T. Moore, and S.M. Nettles, “A Study of Large Object Spaces,” Proc. First Int'l Symp. Memory Management (ISMM), 1998.
[3] S. Soman, C. Krintz, and D.F. Bacon, “Dynamic Selection of Application-Specific Garbage Collectors,” Proc. Fourth Int'l Symp. Memory Management (ISMM), 2004.
[4] D. Barrett and B.G. Zorn, “Garbage Collection Using a Dynamic Threatening Boundary,” Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation (PLDI), 1995.
[5] R.E. Jones, “Distributed Garbage Collection,” Garbage Collection: Algorithms for Automatic Dynamic Memory Management, Wiley, July 1996.
[6] C. Flood, D. Detlefs, N. Shavit, and C. Zhang, “Parallel Garbage Collection for Shared Memory Multiprocessors,” Proc. USENIX Java Virtual Machine (JVM) Research and Technology Symp., 2001.
[7] D. Abuaiadh, Y. Ossia, E. Petrank, and U. Silbershtein, “An Efficient Parallel Heap Compaction Algorithm,” Proc. ACM Conf. Object-Oriented Systems, Languages and Applications, 2004.
[8] H. Kermany and E. Petrank, “The Compressor: Concurrent, Incremental and Parallel Compaction,” Proc. Conf. Programming Language Design and Implementation (PLDI), 2006.
[9] M. Wegiel and C. Krintz, “The Mapping Collector: Virtual Memory Support for Generational, Parallel, and Concurrent Compaction,” Proc. 13th Int'l Conf. Architectural Support for Programming Languages and Operating Systems (ASPLOS '08), Mar. 2008.
[10] Apache Harmony: Open-Source Java SE, http:/harmony., 2011.
[11] Spec: The Standard Performance Evaluation Corporation, http:/, 2011.
[12] Dacapo Project: The DaCapo Benchmark Suite, http://www-ali. , 2011.
[13] M. Wu and X.-F. Li, “Task-Pushing: A Scalable Parallel GC Marking Algorithm without Synchronization Operations,” Proc. IEEE Int'l Parallel and Distributed Processing Symp. (IPDPS), 2007.
[14] T. Endo, K. Taura, and A. Yonezawa, “A Scalable Mark-Sweep Garbage Collector on Large-Scale Shared-Memory Machines,” Proc. ACM/IEEE Conf. Supercomputing (SC '97), 1997.
[15] P. Cheng, G.E. Blelloch, and A. Parallel, “Real Time Garbage Collector,” ACM SIGPLAN Notices, vol. 36, 2001.
[16] R.H. Halstead, “Multilisp: A Language for Concurrent Symbolic Computation,” ACM Trans. Programming Languages and Systems, vol. 7, pp. 501-538, 1985.
[17] The Mono Project,, 2011.
[18] W. Appel, “Simple Generational Garbage Collection and Fast Allocation,” Software, Practice & Experience, vol. 19, pp. 171-183, 1989.
[19] R.R. Fenichel and J.C. Yochelson, “A Lisp Garbage-Collector for Virtual-Memory Computer Systems,” Comm. the ACM, vol. 12, no. 11, pp. 611-612, 1969.
[20] H.G. Baker, “List Processing in Real-Time on a Serial Computer,” Comm. the ACM, vol. 21, no. 4, pp. 280-94, 1978.
[21] R.A. Brooks, “Trading Data Space for Reduced Time and Code Space in Real-Time Garbage Collection on Stock Hardware,” Proc. ACM Symp. Lisp and Functional Programming, pp. 256-262, Aug. 1984.
[22] R.L. Hudson and J.E.B. Moss, “Incremental Garbage Collection for Mature Objects,” Proc. Int'l Workshop Memory Management, pp. 16-18, Sept. 1992.
[23] H.J Boehm, A.J. Demers, and S. Shenker, “Mostly Parallel Garbage Collection,” ACM SIGPLAN Notices, vol. 26, pp. 157-164, 1991.
[24] A. Appel, J.R. Ellis, and K. Li, “Real-Time Concurrent Collection on Stock Multiprocessors,” ACM SIGPLAN Notices, vol. 23, pp. 11-20, 1988.
[25] A. Demers, M. Weiser, B. Hayes, H. Boehm, D. Bobrow, and S. Shenker, “Combining Generational and Conservative Garbage Collection: Framework and Implementations,” Proc. 17th Ann. ACM Symp. Principles of Programming Languages, pp. 261-269, Jan. 1990.
[26] J. DeTreville, “Experience with Concurrent Garbage Collectors for Modula-2+,” Proc. Workshop Garbage Collection in Object-Oriented Systems, 1990.
[27] R.H. Halstead, “Implementation of Multilisp: Lisp on a Multiprocessor,” Proc. ACM Symp. LISP and Functional Programming, 1984.
[28] B. Steensgaard, “Thread-Specific Heaps for Multi-Threaded Programs,” ACM SIGPLAN Notices, vol. 36, pp. 18-24, Jan. 2001.
[29] C.J. Cheney, “A Non-Recursive List Compacting Algorithm,” Comm. the ACM, vol. 13, no. 11, pp. 677-678, Nov. 1970.
28 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool