home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / compiler / 1463 < prev    next >
Encoding:
Text File  |  1992-08-29  |  7.4 KB  |  206 lines

  1. Path: sparky!uunet!gatech!rutgers!faatcrl!iecc!compilers-sender
  2. From: pardo@cs.washington.edu (David Keppel)
  3. Newsgroups: comp.compilers
  4. Subject: Re: Large-space GC
  5. Keywords: GC, storage, summary
  6. Message-ID: <92-08-165@comp.compilers>
  7. Date: 27 Aug 92 01:24:25 GMT
  8. Sender: compilers-sender@iecc.cambridge.ma.us
  9. Reply-To: pardo@cs.washington.edu (David Keppel)
  10. Organization: Computer Science & Engineering, U. of Washington, Seattle
  11. Lines: 192
  12. Approved: compilers@iecc.cambridge.ma.us
  13.  
  14. I promised to summarize responses to my question: ``Has anybody looked at
  15. garbage collection in very large address spaces.''  In particular, I was
  16. interested in cases where the GCable space is large enough that it cannot
  17. be scanned by a tracing collector in a reasonable time.
  18.  
  19. Thanks to:
  20. moss@cs.umass.edu (Eliot Moss)
  21. Scott Draves <spot@HOPELESS.MESS.CS.CMU.EDU>
  22. kandt@ai-titania.Jpl.Nasa.Gov (kirk kandt)
  23. jyl@Eng.Sun.COM (Jacob Levy)
  24. hosking@kiwi.cs.umass.edu (Tony Hosking)
  25. hisgen@src.dec.com (Andy Hisgen)
  26. Gordon Russell gor@computer-science.strathclyde.ac.uk
  27. detlefs@src.dec.com (Dave Detlefs)
  28. cliffc@cs.rice.edu (Cliff Click)
  29. chambers@klamath (Craig Chambers)
  30. bruce@ugcs.caltech.edu (Bruce J Bell)
  31.  
  32. Probably the original reference that dealt with this problem is Bishop's
  33. MIT Ph.D dissertation.  Of the ideas I originally mentioned, his work is
  34. closest to "Keep summary info for a segment, where the summary info says
  35. what other segments have pointers in to the segment and what other
  36. segments are pointed to by the segment."  Or as another respondent put it,
  37. "indirection tables that track all pointers into and out of an area."
  38.  
  39. Andy Hisgen notes that some segments will be large and contribute no
  40. references.  For example, images & sound.  The garbage collector can skip
  41. tracing such objects, and reference counting will work on them since they
  42. can't possibly be part of a cycle.
  43.  
  44. He also suggested an incremental scheme having `anchor pointers', where
  45. removing the anchor pointer puts the object on a GC candidate list.  If
  46. the collector finds it dead, great.  If the collector finds it live, it
  47. promotes a new anchor and the object need not be examined again until the
  48. new anchor is discarded.  He suggests the anchor might tend to migrate to
  49. stable objects, further reducing the frequency of consideration.  He
  50. suggests the effective size of a pointer would double or triple.
  51.  
  52. Several respondents noted locality must be important in large spaces.
  53.  
  54. Somebody asked if my posting was bait.  I wish it were :-) Sorry, I have
  55. not already done work on GC in systems with single-level stores.  Seems to
  56. me like an interesting area...
  57.  
  58. Gordon Russell suggests reference counting probably has too much
  59. incremental overhead to be useful, which sounds like he's hopeful there
  60. are efficient solutions even for large-space GC.  He also points out that
  61. my suggestion of marking memory segments non-GC'able only works
  62. automatically in general up to a write to the segment.  Detecting writes
  63. is easy for a single machine, but for his work in networked GC, that won't
  64. work.  He has a paper on distributed references and another on
  65. gang-deallocation of groups of objects, but I didn't get a citation.  He
  66. also votes that my security concerns point out a corruption of the idea of
  67. a uniform object heap.
  68.  
  69. Rick Hudson notes conservative GC is really great partly because the range
  70. of addresses where there is heap-allocated data is small compared to the
  71. values of random integers (floating-point numbers, strings, ...) found on
  72. the stack (in the heap, ...).  He suggests that write barriers techniques
  73. for GC are similar to those for persistant stores [Hosking91] and that
  74. write barriers are not all that expensive [HMS92].  He also mentions that
  75. Modula-3 qualifies objects and types as reference-contributing or not.
  76.  
  77. Citations:
  78.  
  79. @PhDThesis{BishopPhd,
  80.     Key = "Bishop",
  81.     Author = "Bishop, Peter B.",
  82.     Title = "Computer Systems with Very Large Address Spaces and
  83. Garbage Collection",
  84.     School = "MIT",
  85.     Year =  "1977",
  86.     Month = "May",
  87.     Address = "Cambridge, MA",
  88.     Annote = "Available as MIT TR MIT/LCS/TR-178"
  89. }
  90.  
  91. @PhdThesis(Detlefs90b,
  92.     Author = "Detlefs, David L.",
  93.     Key = "Detlefs",
  94.     Title = "Concurrent, Atomic Garbage Collection",
  95.     Schule = "Carnegie-Mellon University",
  96.     Year = "1990",
  97.     Annote = "Available as CMU TR CMU-CS-90-119",
  98. )
  99.  
  100. @INPROCEEDINGS{garbage:hayes91,
  101.     AUTHOR    =  "Barry Hayes",
  102.     TITLE     =  "Using Key Objects Opportunism to Collect Old Objects",
  103.     BOOKTITLE =  "OOPSLA'91",
  104.     PAGES     =  "33--46",
  105.     YEAR      =  "1991"
  106. }
  107.  
  108. @Misc{Hosking91,
  109.     author =    "Antony L. Hosking",
  110.     title =        "Main Memory Management for Persistence",
  111.     year =        1991,
  112.     month =        oct,
  113.     note =        "Position paper presented at the OOPSLA '91
  114. Workshop on Garbage Collection",
  115.     howpublished =    "anon ftp ibis.cs.umass.edu
  116. pub/papers/oopsla91gc.ps.Z"
  117. }
  118.  
  119. @InProceedings{HMS92,
  120.     author =    "Antony L. Hosking and J. Eliot B. Moss and
  121. Darko Stefanovi{\'c}",
  122.     title =        "A Comparative Performance Evaluation of Write
  123. Barrier Implementations",
  124.     crossref =    "oopsla92",
  125.     note =        "To appear.",
  126. }
  127.  
  128. @Misc{HuMo92,
  129.     author =    "Richard L. Hudson and J. Eliot B. Moss",
  130.     title =        "Incremental collection of mature objects",
  131.     howpublished =    "International Workshop on Memory Management",
  132.     year =        1992,
  133.     month =        sep,
  134.     note =        "To appear"
  135.     Abstract =    "We present a garbage collection algorithm
  136. that extends generational scavenging to collect large older
  137. generations ({\em mature objects}) non-disruptively.  The algorithm's
  138. approach is to process bounded-size pieces of mature object space at
  139. each collection; the subtleties lie in guaranteeing that it eventually
  140. collects any and all garbage. The algorithm does not assume any
  141. special hardware or operating system support, e.g., for forwarding
  142. pointers or protection traps. The algorithm copies objects, so it
  143. naturally supports compaction and reclustering."
  144. }
  145.  
  146. @Misc{Moss90c,
  147.     author =    "J. Eliot B. Moss",
  148.     title =        "Garbage Collecting Persistent Object Stores",
  149.     year =        1990,
  150.     month =        oct,
  151.     note =        "Position paper for OOPSLA/ECOOP '90 workshop on
  152. garbage collection",
  153.     howpublished =    "anon ftp ibis.cs.umass.edu
  154. pub/papers/oopsla90gc.ps.Z"
  155. }
  156.  
  157. @article{WhiteLFP,
  158.     Author = "Jon L. White",
  159.     Key = "White",
  160.     Title = "?",
  161.     Journal = "Proceedings of the first Lisp and Functional
  162. Programming Conference",
  163.     Year = "1979 or 1980",
  164. }
  165.  
  166. @article{Hawaii,
  167.     Journal = "Proceeedings of the Hawaii International Conference
  168. on System Sciences",
  169.     Year = "1992"
  170. }
  171.  
  172. @book{Canada,
  173.     Booktitle = "Distributed Object Management",
  174.     Editor = "Ozsu",
  175.     Publisher = "Morgan-Kaufman",
  176.     Year = "1992 (in preparation)",
  177.     Note = "From a workshop `in Canada'"
  178. }
  179.  
  180. See also anonymous ftp:
  181. ibis.cs.umass.edu pub/papers/dbpl89.ps.Z
  182.  
  183. And somebody mentioned Paul Wilson's paper on pointer swizzling,
  184. "Operating System Support for Small Objects", but I don't have a handy
  185. reference (so to speak...)  If you write to Paul
  186. (wilson@edu.utexas.cs) I'm confident he'll provide you with a
  187. reference.
  188.  
  189. Finally, it's always dangerous to ask for references in the field of
  190. garbage collection:
  191.  
  192. >>If you can dig up a reference -- even a partial one -- I would
  193. >>certainly like it, and I will include it in my summary.
  194.  
  195. > I suppose you mean the collecting of objects together into blocks
  196. > for garbage collection purposes paper? If so, that would be [list of
  197. > citations]
  198.  
  199. But I suppose it's equally risky to ask for citations when you're
  200. studying law :-)
  201.  
  202.           ;-D on  ( A two-bit reference )  Pardo
  203. -- 
  204. Send compilers articles to compilers@iecc.cambridge.ma.us or
  205. {ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.
  206.