|
ABSTRACT
Algorithms for a multiprocessing compactifying garbage collector are presented and discussed. The simple case of two processors, one performing LISP-like list operations and the other performing garbage collection continuously, is thoroughly examined. The necessary capabilities of each processor are defined, as well as interprocessor communication and interlocks. Complete procedures for garbage collection and for standard list processing primitives are presented and thoroughly explained. Particular attention is given to the problems of marking and relocating list cells while another processor may be operating on them. The primary aim throughout is to allow the list processor to run unimpeded while the other processor reclaims list storage The more complex case involving several list processors and one or more garbage collection processors are also briefly discussed.
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
|
Berkeley, E.C., and Bobrow, Daniel G. (Eds.) Tile Programming Language LISP: Its Operation and Applications. Information International, Inc., Cambridge, Mass., 1964.
|
| |
2
|
Bogen, R.A. MACSYMA Reference Manual. Project MAC, Mathlab Group, MIT, Cambridge, Mass., 1974.
|
| |
3
|
Conrad, W.R. A compaetifying garbage collector for ECL's non-homogeneous heap. Tech. Rep. 2-74, Center for Research in Computing Technology, Harvard U., Cambridge, Mass., Feb. 1974.
|
| |
4
|
Digital Equipment Corp. DecSystem 10 Assembly Language Handbook (third ed.). Maynard, Mass., 1973.
|
 |
5
|
|
 |
6
|
|
| |
7
|
Greenblatt, R. The LISP machine. MIT Artificial Intelligence Working Paper 79, MIT, Cambridge, Mass., Nov. 1974.
|
| |
8
|
Hart, T.P., and Evans, T.G. Notes on implementing LISP for the M-460 computer. Ref. {1}, 191-203.
|
| |
9
|
Knight, T. The CONS microprocessor. MIT Artificial Intelligence Working Paper 80, MIT, Cambridge, Mass., Nov. 1974.
|
| |
10
|
|
 |
11
|
|
 |
12
|
|
| |
13
|
|
| |
14
|
|
| |
15
|
Moon, D.A. MaeLISP Reference Manual. Project MAC, MIT, Cambridge, Mass., April 1974.
|
| |
16
|
Newell, A. Information Processing Language V Manual. Prentice-Hall, Englewood Cliffs, N.J., 1961.
|
| |
17
|
Saunders, R.A. The LISP system for the Q-32 computer. Ref. {1}, 220-231.
|
 |
18
|
|
| |
19
|
Teitelman, W. lnterLlSP Reference Manual. Xerox Corp., Palo Alto, Calif., 1974, 3.11-3.15.
|
| |
20
|
Wegbreit, B. A generalised compactifying garbage collector. Computer J. 15, 3 (Aug. 1972), 204-208.
|
| |
21
|
Wegbreit, B., et al. ECL Programmer's Manual. Tech. Rep. 21-72, Center for Research in Computing Technology, Harvard U., Cambridge, Mass., Sept. 1972.
|
 |
22
|
|
 |
23
|
|
 |
24
|
|
CITED BY 86
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
David L. Detlefs , Paul A. Martin , Mark Moir , Guy L. Steele, Jr., Lock-free reference counting, Proceedings of the twentieth annual ACM symposium on Principles of distributed computing, p.190-199, August 2001, Newport, Rhode Island, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
David F. Bacon , Perry Cheng , David Grove , Michael Hind , V. T. Rajan , Eran Yahav , Matthias Hauswirth , Christoph M. Kirsch , Daniel Spoonhower , Martin T. Vechev, High-level real-time programming in Java, Proceedings of the 5th ACM international conference on Embedded software, September 18-22, 2005, Jersey City, NJ, USA
|
|
|
Yoav Ossia , Ori Ben-Yitzhak , Irit Goft , Elliot K. Kolodner , Victor Leikehman , Avi Owshanko, A parallel, incremental and concurrent GC for servers, ACM SIGPLAN Notices, v.37 n.5, May 2002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Katherine Barabash , Ori Ben-Yitzhak , Irit Goft , Elliot K. Kolodner , Victor Leikehman , Yoav Ossia , Avi Owshanko , Erez Petrank, A parallel, incremental, mostly concurrent garbage collector for servers, ACM Transactions on Programming Languages and Systems (TOPLAS), v.27 n.6, p.1097-1146, November 2005
|
|
|
Katherine Barabash , Ori Ben-Yitzhak , Irit Goft , Elliot K. Kolodner , Victor Leikehman , Yoav Ossia , Avi Owshanko , Erez Petrank, A parallel, incremental, mostly concurrent garbage collector for servers, ACM Transactions on Programming Languages and Systems (TOPLAS), v.27 n.6, p.1097-1146, November 2005
|
|
|
|
|
|
Stephen M. Blackburn , Richard L. Hudson , Ron Morrison , J. Eliot B. Moss , David S. Munro , John Zigman, Starting with termination: a methodology for building distributed garbage collection algorithms, Australian Computer Science Communications, v.23 n.1, p.20-28, January-February 2001
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Christine H. Flood , David Detlefs , Nir Shavit , Xiaolan Zhang, Parallel garbage collection for shared memory multiprocessors, Proceedings of the JavaTM Virtual Machine Research and Technology Symposium on JavaTM Virtual Machine Research and Technology Symposium, p.21-21, April 23-24, 2001, Monterey, California
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Phil McGachey , Ali-Reza Adl-Tabatabai , Richard L. Hudson , Vijay Menon , Bratin Saha , Tatiana Shpeisman, Concurrent GC leveraging transactional memory, Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming, February 20-23, 2008, Salt Lake City, UT, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Filip Pizlo , Daniel Frampton , Erez Petrank , Bjarne Steensgaard, Stopless: a real-time garbage collector for multiprocessors, Proceedings of the 6th international symposium on Memory management, October 21-22, 2007, Montreal, Quebec, Canada
|
|
|
|
|
|
|
|
|
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
|
|
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.4
OPERATING SYSTEMS
D.4.1
Process Management
Subjects:
Multiprocessing/multiprogramming/multitasking
Additional Classification:
D.
Software
D.3
PROGRAMMING LANGUAGES
D.3.2
Language Classifications
Nouns:
LISP
D.3.3
Language Constructs and Features
Subjects:
Data types and structures
D.4
OPERATING SYSTEMS
D.4.2
Storage Management
Subjects:
Garbage collection;
Allocation/deallocation strategies
General Terms:
Design,
Languages,
Performance,
Theory
Keywords:
LISP,
compactification,
data structures,
free storage,
garbage collection,
gc processor,
list processing,
multiprocessing,
parallel processing,
pointers,
reclaimer,
relocation,
semaphores,
storage allocation,
storage reclamation,
synchronization
|