| L. Peter Deutsch and Daniel G. Bobrow: An Efficient, Incremental, Automatic Garbage Collector, Communications of the ACM, Vol. 19, No. 9, September 1976, pp. 522--526. |
....cons cell. In the example, all three lists are equal to the LISP list (a b) Reference counting s locality may be improved by separating counts from objects. This increases locality by concentrating count adjustments into a smaller section of memory. Transaction based reference count systems [DB76] can postpone count updating, allowing the count tables to be paged out until the transactions are processed. Delayed collection, however, will result in less e#cient use of memory and less locality because of external fragmentation. 2 The e#ect on garbage collection frequency can be quite ....
....combination of shared and unshared arguments, allowing direct reuse of memory with fewer references to the free list. The results are spectacular an average of 70 percent of the discarded cells are immediately reclaimed through the use of reference counts. 2. 11 Garbage collection in Interlisp [DB76] In this paper Deutsch and Bobrow describe a garbage collector for Interlisp based on reference counting. Their goal was to avoid long pauses caused by conventional garbage collectors, while also avoiding the high overhead associated with reference counting. Reference counting is incremental; ....
L. Peter Deutsch and Daniel G. Bobrow. An e#cient, incremental, automatic garbage collector. Communications of the ACM, 19(9):522--526, September 1976.
....refer to old objects much more often than old objects refer to young objects, and that most objects are referred to by only one object. These properties have been observed experimentally [Cla79, CG77] and inferred from the improved performance of collectors that exploit them [LH83, Moo84, SCN84, DB76, Rov85] It has also been observed that the sizes of objects are not distributed uniformly [BB77, Nie77] Reference counting Reference counting garbage collection identifies reusable objects by counting the number of pointers to an object [Col60] When this count reaches zero, the object is ....
....time to update all of the reference counts. These problems can be mitigated in several ways. Circular graphs can be collected with the use of an additional reference count [Bro85] or restricting the structure of the graphs produced [FW79] The use of hash links [Bob75] to store reference counts [DB76] makes possible the trick of not storing any count for the common (reference count equal to one) case and can also handle larger reference counts. References from activation records need not be counted; this avoids much of the expense associated with pointer manipulation, at the cost of less ....
[Article contains additional citation context not shown here]
L. Peter Deutsch and Daniel G. Bobrow. An e#cient, incremental, automatic garbage collector. Communications of the ACM, 19(9):522--526, September 1976. 105
....in the stack or registers. Second, CRC(e) does not account for references in the new versions of objects modified during a transaction until it commits, but accounts for the swizzled references in the objects copies in the undo log. The first feature is similar to what deferred reference counting [6] provides but the second is new. We now prove that the system preserves Invariant 1 by induction on the length of the execution, and simultaneously explain the various steps in our algorithm. The invariant holds vacuously for the base case because initially there are no objects in the cache. For ....
L. Deutsch and D Bobrow. An efficient, incremental, automatic garbage collector. Communications of the ACM, 19(9), October 1976.
....However, it has three main problems. First, it is inefficient: its cost is proportional to the amount of work done by the mutator because counters must be updated whenever references are assigned. This problem is addressed by variants of this algorithm such as Deferred Reference Counting [38]. The second problem is fragmentation: the free space recovered from reclaimed objects is interspersed with reachable objects. This reduces locality of reference because as new objects are allocated in the free space recovered from reclaimed objects, unrelated objects are interleaved in memory. ....
L. Peter Deutsch and Daniel G. Bobrow. An efficient, incremental, automatic garbage collector. Communications of the ACM, 19(9):522--526, September 1976.
.... collectors that investigate younger objects more often than older ones (since they are more likely to be reclaimed) 3] Incremental onthe fly collectors avoid long garbage collection phases by collecting unused memory constantly during (respectively concurrently with) the allocating program [5, 4]. Conservative collectors operate in contexts where references cannot be distinguished uniquely from plain integers [12] The design of parallel collectors [11, 9] is an active research topic. The algorithm described in this paper is rather simple but has to our knowledge not yet been described ....
Peter L. Deutsch and Daniel G. Bobrow. An Efficient, Incremental, Automatic Garbage Collector. Communications of the ACM, 19(9):522--526, September 1976.
....counts are incremented, and then decremented back to their original value very soon. It is desirable to optimize away most of these increments and decrements that cancel each other out. Deferred Reference Counting Much of this cost can be optimized away by special treatment of local variables [2]. Rather than always adjusting reference counts and reclaiming objects whose counts become zero, references from the local variables are not included in this bookkeeping most of the time. Usually, reference counts are only adjusted to reflect pointers from one heap object to another. This means ....
....are still zero may be safely reclaimed. The interval between these phases is generally chosen to be short enough that garbage is reclaimed often and quickly, yet still long enough that the cost of periodically updating counts (for stack references) is not high. The deferred reference counting [2] avoids adjusting reference counts for most short lived pointers from the stack, and greatly reduces the overhead of reference counting. When pointers from one heap object to another are created or destroyed, however, the reference counts must still be adjusted. This cost is still roughly ....
L. Peter Deutsch and Daniel G. Bobrow. An efficient, incremental, automatic garbage collector. Communications of the ACM, 19(9): 522 -- 526, September 1976.
....counts can impose considerable run time overhead, and ffl reference counting alone cannot reclaim cyclic garbage, so a full scale mark and sweep collection must be invoked occasionally. Conservative reference counting is based on one of the two essential ideas of deferred reference counting [7]. Both ideas are aimed at reducing the run time cost of maintaining reference counts. I borrow the idea of treating stack pointers conservatively: the reference counts stored in objects count only references from heap or global objects; an object s count does not include references from the stack. ....
L. Peter Deutsch and Daniel G. Bobrow. An efficient, incremental, automatic garbage collector. Communications of the ACM, 19(9):522--526, September 1976.
....garbage collection remains important to the algorithms below, where reference counting and garbage collection complement each other in several ways. Garbage collection is used behind reference counting after cyclic structures [17, 24, 26] leak away space, or after too small counters get stuck [4, 8]. Similarly, any counting that postpones garbage collection at the cost of a few local transactions makes collection more suitable to real time and parallel performance; it improves the amortized cost of memory cycles per allocated node by increasing the number of nodes reallocated without ....
L. P. Deutsch & D. G. Bobrow. An efficient, incremental, automatic garbage collector. Comm. ACM 19, 9 (September 1976), 522--526.
....of pages. Text.T (character string) constants are stored in the program s read only text section. Their layout is the same as if they were on the heap. 4.4 Collector operation The collector runs concurrently, triggered by program activity. The collector combines reference counting (following [5] and [13] and mark and sweep collection; the collector is described in detail in [4] Objects that are not referenced are reclaimed and returned to free lists. There is one free list per size of small object. Free entries for the same page are kept adjacent, to concentrate allocations on some ....
L. Peter Deutsch, and Daniel G. Bobrow. An efficient, incremental, automatic garbage collector. Communications of the ACM 19, 9 (Sept. 1976), 522-526.
....which were explicitly deallocated. 6. 3 Destructive Allocation One of the earliest examples of validating destructive allocation is the method described in [ 3 ] This method involves performing a global flow analysis of a program which uses the run time garbage collection method described in [ 4 ] . Information obtained by the global flow analysis is used to avoid redundant operations for run time garbage collection. For example, a deallocation followed by an allocation can be coalesced to give a destructive allocation instead. An analysis for determining when destructive operators can be ....
L.P. Deutsch and D.G. Bobrow. An efficient, incremental, automatic garbage collector. Communications of the ACM, 19(9):522--526, September 1976.
....bounds are improved by making it lazy, i.e. by breaking large units of work into smaller units of work and delaying the small units of work as long as possible. Mark sweep garbage collectors and reference counting garbage collectors can be made real time without any extra hardware support[DB76, Yua90]. However, the most efficient garbage collection algorithms are based on copying, so that instead of finding garbage objects and deallocating their storage, the garbage collector copies all non garbage objects to a new region of memory and then deallocates Author s Address: Department of Computer ....
L. Peter Deutsch and Daniel G. Bobrow. An efficient, incremental, automatic garbage collector. Communications of the ACM, 19(9):522--526, September 1976.
....to cells are pushed onto the to be decremented stack if they have a count of one that is due to be decremented. When cells are allocated from the stack their count is already one, so the scheme also manages to elide clearing and setting the count. 2.2. 3 Deferred Identification Deutsch and Bobrow [Deutsch, 1976] observe that, frequently, over a series of reference counting operations the net change in a cell s reference count will be small, if not nil. For example, when duplicating a cell reference as a stack parameter to a procedure call, the cell will acquire a reference that will be lost once the ....
Deutsch LP and Bobrow DG (1976) An efficient, incremental, automatic garbage collector, Comm ACM 19(9)522-26.
....is N. However, whenever a cell is on the stack, its refcount is zero, so we can thread the stack through the unused refcounts So we now have: Maximum RC Space Required 1.5 N Reference count systems have the drawback that directed cycles of pointers cannot be reclaimed. It has been suggested [15,22] that refcounts be used as the primary method of reclamation, using garbage collection (GC) as a fallback method when that fails. Since RC will not have to reclaim everything and since the average refcount is often very small, it has also been suggested that a truncated refcount (a bounded ....
Deutsch, L.P., and Bobrow, D.G. An efficient, incremental, automatic garbage collector. Comm. ACM 19, 9 (Sept. 1976), 522-526.
....garbage collection remains important to the algorithms below, where reference counting and garbage collection complement each other in several ways. Garbage collection is used behind reference counting after cyclic structures [19, 26, 28] leak away space, or after too small counters get stuck [5, 9]. Similarly, any counting that postpones garbage collection at the cost of a few local transactions makes collection more suitable to real time and parallel performance; it improves the amortized cost of memorycycles per allocated node by increasing the number of nodes reallocated without ....
....will merely nail down any structure at the moment it is first shared. Of what practical use, then, are one bit counts There have many been many efforts at several levels to answer this question. A common way to avoid premature nailing is to share a node via a dead pointer. Deutsch and Bobrow [9] use a run time table to track only nodes with counts above one. Nodes with momentary counts of two pass through their Multiple Reference Table (MRT) The first proposal for one bit reference counting [27] mentions a similar table, pointing to nodes whose count ought to be two, but this doesn t ....
L. P. Deutsch & D. G. Bobrow. An efficient, incremental, automatic garbage collector. Commun. ACM 19, 9 (September 1976), 522--526.
....effort. Reference counting [12] is an orthogonal strategy for storage management [11] that again is receiving attention in the context of parallel heap management because its transactions are all local [21, 30, 32] Reference counting is best used along with a garbage collector as a hybrid manager [28, 20, 13, 29]. Although counting is too weak to handle certain circular structures [20, 16] garbage collection can back it up. On the other hand, successful reference counting can postpone need for garbage collection, or accelerate that collection [3] Recovery of zero count objects is worthwhile only when ....
L.P. Deutsch & D.G. Bobrow. An efficient, incremental, automatic garbage collector. Comm. ACM 19, 9 (September 1976), 522--526.
....In particular, the information provided by the linear connectives concerns the reference counts of nodes in the memory graph, where the reference count of a node is the sum of the in degree of the node in the graph and the number of root elements mapped to it. Reference counting has a long [Col60, DB76], albeit controversial [WHHO92, Bak88, App92] history as a technique for avoiding garbage collection. But, aside from its direct use in managing memory, reference counting can offer a unifying view of many code optimizations, and various code generation strategies can be seen as attempts to ....
L. P. Deutsch and D. G. Bobrow. An efficient, incremental, automatic garbage collector. Communications of the ACM, 19(9):522--526, 1976.
....the ceiling, saturation, it is not altered and no longer accurately reflects the number of references to a cell. To cheapen the test for saturation a count is saturated if the signed byte is negative, allowing the count to record from 0 to 127 references. Clark s measurements of LISP programs (see [Deutsch and Bobrow, 1976; Field and Harrison, 1988] show that about 97 of list cells have a reference count of 1. This suggests an extreme form of saturation using a singlebit count [Friedman and Wise, 1977] A clear bit is used to indicate a single reference to cell. When a second reference to the cell is created the ....
....list. In this scheme cells are added to the to be decremented stack if they have a count of one which requires decrementing. When cells are allocated from the stack their count is already one, hence this scheme manages to elide many garbage identification operations. 52 Deutsch and Bobrow [Deutsch, 1976] observe that, frequently, over a series of reference counting operations the net change in a cell s count will be small, if not nil. For example, when duplicating a cell reference as a stack parameter to a procedure call, the cell will acquire a reference that will be lost once the procedure ....
Deutsch LP and Bobrow DG (1976) An efficient, incremental, automatic garbage collector. Comm ACM 19(9) 522-526.
....are incremented, and then decremented back to their original value very soon. It is desirable to optimize away most of these increments and decrements that cancel each other out. 2.1.3 Deferred Reference Counting. Much of this cost can be optimized away by special treatment of local variables [DB76, Bak93b] Rather than always adjusting reference counts and reclaiming objects whose counts become zero, references from the local variables are not included in this bookkeeping most of the time. Usually, reference counts are only adjusted to reflect pointers from one heap object to another. This ....
....are still zero may be safely reclaimed. The interval between these phases is generally chosen to be short enough that garbage is reclaimed often and quickly, yet still long enough that the cost of periodically updating counts (for stack references) is not high. This deferred reference counting [DB76] avoids adjusting reference counts for most short lived pointers from the stack, and greatly reduces the overhead of reference counting. When pointers from one heap object to another are created or destroyed, however, the reference counts must still be adjusted. This cost is still roughly ....
L. Peter Deutsch and Daniel G. Bobrow. An efficient, incremental, automatic garbage collector. Communications of the ACM, 19(9):522--526, September 1976.
....the to be decremented stack if they have a count of one that is due to be decremented. When cells are allocated from the stack their count is already one. This optimisation, hence, manages to elide clearing and setting the count. 2.2. 3 Deferred Identification Reference Counting Deutsch and Bobrow [Deutsch, 1976] observe that, frequently, over a series of reference counting operations the net change in a cell s reference count will be small, if not nil. For example, when duplicating a cell reference as a stack parameter to a procedure call, the cell will acquire a reference that will be lost once the ....
Deutsch LP and Bobrow DG: An e#cient, incremental, automatic garbage collector. Communications of the ACM 19(9) 522-526.
....of join nodes are never decremented 12 (i.e. join nodes never become simple) changing the reference count on a join node also requires no synchronization. 9 The reference counting scheme required by dynamic resolution is similar to that used for Deutsch Bobrow deferred reference counting [5]. 10 A program can have access to a node with a reference count of zero through pointers (e.g. from local variables) to that node since non link pointers are not included in the node s reference count. 11 [11] describes a method that uses the garbage collector to reconstitute a node s ....
L. P. Deutsch and D. G. Bobrow. An efficient, incremental, automatic garbage collector. Communications of the ACM, 19(7):522--526, July 1976.
....garbage collecting client server OODBMS for several reasons. First, as it is well known, reference counting schemes fail to reclaim circular structures [McBeth 1963] garbage objects that mutually reference one another will not be collected. Second, even under deferred reference counting (e.g. [Deutsch 1976]) the overhead of maintaining reference counts for the objects in a large database can be quite high [Yong 1994] and can require additional I O. Furthermore, the reference count structures must be fault tolerant, as reconstructing them as part of recovery from a system crash is prohibitively ....
L. Deutsch and D. Bobrow. An Efficient, Incremental, Automatic Garbage Collector. Com. of the ACM, 19(9):522--526, September 1976.
....for garbage collecting client server OODBMS for several reasons. First, as it is well known, reference counting schemes fail to reclaim circular structures [McB63] garbage objects that mutually reference one another will not be collected. Second, even under deferred reference counting (e.g. DB76] the overhead of maintaining reference counts for the objects in a large database can be quite high [YNY94] and can require additional I O. Furthermore, the reference count structures must be fault tolerant, as reconstructing them as part of recovery from a system crash is prohibitively ....
L. Deutsch and D. Bobrow. An Efficient, Incremental, Automatic Garbage Collector. Com. of the ACM, 19(9):522--526, September 1976.
No context found.
L. Peter Deutsch and Daniel G. Bobrow: An Efficient, Incremental, Automatic Garbage Collector, Communications of the ACM, Vol. 19, No. 9, September 1976, pp. 522--526.
No context found.
Deutsch, L.P., and Bobrow, D.G. An efficient, incremental, automatic garbage collector. Commun. ACM 19, 9 (Sept. 1976). 522-526.
No context found.
L. P. Deutsch and D. G. Bobrow: An Efficient, Incremental, Automatic Garbage Collector. Communication of the ACM, 19(9):522-526, September 1976
First 50 documents
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC