
|

Richard Jones
with a chapter on Distributed Garbage Collection by Rafael Lins
John Wiley & Sons, Ltd, ISBN 0-471-94148-4
403 pages, hardback
Table of Contents
- Preface.....xxiii
- Introduction.....1
- History of storage allocation.....2
- State, liveness and pointer reachability.....4
- Explicit allocation on the heap.....5
- Why garbage collect?.....8
- How costly is garbage collection?.....12
- Comparing garbage collection algorithms.....13
- Notation.....16
- Notes.....18
- The Classical Algorithms.....19
- The Reference Counting Algorithm.....19
- The Mark-Sweep Algorithm.....25
- The Copying Algorithm.....28
- Comparing mark-sweep and copying collection.....33
- Issues to consider.....36
- Notes.....39
- Reference Counting.....43
- Non-recursive freeing.....44
- Deferred reference counting.....45
- Limited-field reference counts.....50
- Hardware reference counting.....55
- Cyclic reference counting.....56
- Issues to consider.....69
- Notes.....72
- Mark-Sweep Garbage Collection.....75
- Comparisons with reference counting.....75
- Using a marking stack.....77
- Pointer reversal.....82
- Bitmap marking.....87
- Lazy sweeping.....88
- Issues to consider.....93
- Notes.....95
- Mark-Compact Garbage Collection.....97
- Fragmentation.....97
- Styles of compaction.....99
- The Two-Finger Algorithm.....101
- The Lisp 2 Algorithm.....103
- Table-based methods.....105
- Threaded methods.....107
- Issues to consider.....112
- Notes.....114
- Copying Garbage Collection.....117
- Cheney's copying collector.....118
- Cheap allocation.....124
- Multiple-area collection.....126
- Garbage collector efficiency.....128
- Locality issues.....129
- Regrouping strategies.....131
- Issues to consider.....137
- Notes.....140
- Generational Garbage Collection.....143
- The generational hypothesis.....143
- Generational garbage collection.....146
- Promotion policies.....152
- Generation organisation and age recording.....159
- Inter-generational pointers.....165
- Non-copying generational garbage collection.....174
- Scheduling garbage collections.....175
- Issues to consider.....179
- Notes.....180
- Incremental and Concurrent Garbage Collection.....183
- Synchronisation.....185
- Barrier methods.....187
- Mark-Sweep collectors.....188
- Concurrent Reference Counting.....200
- Baker's Algorithm.....202
- The Appel--Ellis--Li collector.....209
- Replication Copying Collectors.....213
- Baker's Treadmill collector.....218
- Hardware support for real-time garbage collection.....220
- Issues to consider.....222
- Notes.....223
- Garbage Collection for C.....227
- A taxonomy of ambiguous roots collection.....228
- Conservative garbage collection.....230
- Mostly Copying collection.....241
- The optimising compiler devil.....247
- Issues to consider.....249
- Notes.....251
- Garbage Collection for C++.....253
- Garbage collection for object-oriented languages.....254
- Requirements for a C++ garbage collector.....256
- In the compiler or in a library?.....257
- Conservative garbage collection.....258
- Mostly Copying collection.....258
- Smart pointers.....261
- Changes to C++ to support garbage collection.....269
- The Ellis--Detlefs proposal.....270
- Finalisation.....271
- Issues to consider.....273
- Notes.....274
- Cache-Conscious Garbage Collection.....277
- Modern processor architectures.....277
- Cache architectures .....279
- Patterns of memory access.....284
- Standard ways to improve cache performance.....287
- Miss rate and overall cache performance.....294
- Special purpose hardware.....296
- Issues to consider.....297
- Notes.....298
- Distributed Garbage Collection.....299
- Requirements.....300
- Virtually shared memory.....301
- Distributed garbage collection issues.....304
- Distributed mark-sweep.....307
- Distributed copying.....312
- Distributed reference counting.....313
- Garbage collecting actors.....317
- Notes.....318
- Glossary.....321
- Bibliography.....329
- Index.....365
Copyright ©1996, Richard Jones
|