Seminar aus Softwareentwicklung: Garbage Collection

339.372 02 Mössenböck Block, Vorbesprechung 10.10., 16:30, HF9905

Allgemeines  ♦ Ablauf  ♦ Seminarvortrag  ♦ Seminararbeit  ♦ Themen  ♦ Termine  ♦ Benotung  ♦ Folien  ♦ Links

Allgemeines

Garbage-Collectoren sind heute Bestandteil jeder modernen Software-Umgebung. Neben den Grundalgorithmen, die seit vielen Jahren bekannt sind, wird heute intensiv daran geforscht, Garbage-Collectoren schneller zu machen und insbesondere die Pausen eines Collector-Laufs zu verkürzen.

In diesem Seminar wird klassische und aktuelle Literatur zum Thema Garbage Collection von den Teilnehmern aufgearbeitet und präsentiert, wobei das Hauptgewicht auf neueren Algorithmen liegt.

Teilnehmer dieses Seminars haben idealerweise bereits grobe Grundkenntnisse über Gargabe-Collection-Algorithmen, z.B. aus der Lehrveranstaltung "System Software", die im SS 2005 abgehalten wurde. Manche der angegebenen Papers beziehen sich zwar auf einen bestimmten Algorithmus, setzen aber Grundkenntnisse anderer Algorithmen voraus.


Ablauf

Jeder Teilnehmer (jede Teilnehmerin) wählt aus der unten angegebenen Liste ein Thema, studiert die dazu angegebene Literatur, sucht selbständig nach weiterer Literatur, bereitet einen 35-40 minütigen Seminarvortrag vor sowie einer etwa 15-20-seitigen Seminararbeit in Form eines wissenschaftlichen Papers.

Hauptliteratur jedes Themas sind die angegebenen Kapitel des Buchs
    [Jones96] Jones, R, Lins, R.: Garbage Collection:
    Algorithms for Automatic Dynamic Memory Management. John Wiley 1996

das am Institut für Systemsoftware verfügbar ist.

Sekundärliteratur sind neben den im Buch zitierten Papers auch die bei jedem Thema explizit angegeben Literaturstellen. Wegen der zeitlichen Beschränkung des Seminarvortrags auf 35-40 Minuten ist es nötig, auszuwählen, zu verdichten und nur das Wesentlichste zu bringen. Der schriftliche Seminarbericht kann dann etwas ausführlicher ausfallen.

Themen, die in mehrere Teile gegliedert sind (z.B. I + II) sind als Gemeinschaftsarbeit zu verstehen, für die nur ein einziger (dementsprechend längerer) Seminarbericht aber mehrere getrennte Vorträge zu liefern sind. Die Vorträge sind miteinander abzusprechen, damit Dinge nicht doppelt gebracht werden. Wer Teil II wählt, muß auch die für Teil I angegebenen Buchkapitel lesen und verstehen, damit sein Vortrag einen nahtlosen Anschluß an Teil I ergibt.

Im Seminar herrscht Anwesenheitspflicht, auch an den Tagen, an denen man keinen eigenen Vortrag hält. Außerdem wird erwartet, daß die Teilnehmer sich durch Fragen an der Diskussion der Themen beteiligen.


Seminarvortrag

  • 35-40 Minuten (14-18 Folien)
  • auf zentrale Ideen in Algorithmen konzentrieren
  • möglichst Bilder und Beispiele statt Textfolien

Seminararbeit

  • ca. 15-20 Seiten (wenn als Bakk-Arbeit mindestens 20 Seiten)
  • als PDF-Dokument
  • Sprache wahlweise Englisch oder Deutsch
  • möglichst diese Word-Vorlage verwenden (da sie Schriftgröße 10 verwendet, reduziert sich der geforderte Seitenumfang auf 12-16 Seiten)
  • möglichst diese Hinweise beachten

Themen

1. Reference Counting I 2. Reference Counting II
  • [Jones96], Kap. 3.5 - 3.7
  • [Bobrow80] Daniel G. Bobrow: Managing re-entrant structures using reference counts. ACM TOPLAS 2(3):269-273, 1980
  • [Jones92] Richard E. Jones, Rafael Lins. 1992. Cyclic weighted reference counting without delay. Computing Laboratory, The University of Kent at Canterbury. Technical Report 28-92.
  • [Bacon01] David F. Bacon, Clement R. Attanasio, Han B. Loc, and Stephen Smith. Java without the Coffee Breaks: A Nonintrusive Multiprocessor Garbage Collector. PLDI'01, SIGPLAN Notices, 2001
3. Mark & Sweep
  • [Jones96], Kap. 2.2, 4
  • [Schorr67] Schorr, Waite: An efficient machine-independent procedure for garbage collection in various list structures. Communications of the ACM (August 1967), 501-505
  • [Queinnec89] Christian Queinnec, Barbara Beaudoing, and Jean-Pierre Queille. Mark DURING Sweep rather than Mark THEN Sweep. Lecture Notes in Computer Science, 365:224-237, 1989
  • [Huelsbergen98] Lorenz Huelsbergen and Phil Winterbottom. Very concurrent mark-&-sweep garbage collection without fine-grain synchronization. Symposium on Memory Management, Vancouver, October 1998. ACM Press, pages 166-175
4. Copying Collectors
  • [Jones96], Kap. 2.3, 6
  • [Fenichel69] Robert R. Fenichel, Jerome C. Yochelson: A Lisp garbage collector for virtual memory computer systems. CACM 12(11):611-612, 1969
  • [Cheney70] C. J. Cheney. 1970. A non-recursive list compacting algorithm. CACM, 13(11):677-678, 1970
  • [Zorn90] Benjamin Zorn. Comparing Mark-and-sweep and Stop-and-copy Garbage Collection. ACM conference on LISP and functional programming, 1990
5. Generational Collectors I
  • [Jones96], Kap. 7.1 - 7.4
  • [Lieberman83] Lieberman, H, Hewitt, C. A real-time garbage collector based on the lifetimes of objects. Communications of the ACM 26, 6 (June 1983), 419-429.
  • [Ungar84] Ungar, D.: Generation scavenging: A nondisruptive high performance storage reclamation algorithm. ACM SIGPLAN Notices 19, 5 (May 1984)
  • [Appel88a] Appel A.W.: Simple Generational Garbage Collection and Fast Allocation. Software Practice and Experience, 1988
  • [Ungar92] Ungar, D., Jackson, F.: An adaptive tenuring policy for generation scavengers. ACM Transactions on Programming Languages and Systems 1, 1 (January 1992), 1-27
  • [Baker93] Henry G. Baker. 'Infant Mortality' and Generational Garbage Collection. SIGPLAN Notices 28(4), 1993
6. Generational Collectors II
  • [Jones96], Kap. 7.5 - 7.8
  • [Hosking93] Antony L. Hosking and Richard L. Hudson. Remembered sets can also play cards. In Eliot Moss, Paul R. Wilson, and Benjamin Zorn, editors. OOPSLA/ECOOP '93 Workshop on Garbage Collection in Object-Oriented Systems, October 1993
  • [Azagury98] Alain Azagury, Elliot K. Kolodner, Erez Petrank, Zvi Yehudai. 1998. Combining Card Marking with Remembered Sets: How to Save Scanning Time. ISMM'98 pp.10-19
  • [Wilson89] Paul R. Wilson and Thomas G. Moher. A card-marking scheme for controlling intergenerational references in generation-based garbage collection on stock hardware. ACM SIGPLAN Notices, 24(5):87-92, 1989
  • [Zorn90a] Benjamin Zorn. 1990. Barrier Methods for Garbage Collection. University of Colorado at Boulder. Technical Report CU-CS-494-90
  • [Hosking92] Antony L. Hosking, J. Eliot B. Moss, Darko Stefanovic. 1992. A comparative performance evaluation of write barrier implementations. OOPSLA'92 Conference Proceedings, ACM SIGPLAN Notices 27(10), pp 92-109
  • [Hoelzle93] Urs Hölzle. A fast write barrier for generational garbage collectors. In Eliot Moss, Paul R. Wilson, and Benjamin Zorn, editors. OOPSLA/ECOOP '93 Workshop on Garbage Collection in Object-Oriented Systems, October 1993
7. Mark & Compact + Measurements
  • [Jones96], Kap. 5
  • [Hicks97] Michael W. Hicks, Jonathan T. Moore, Scott M. Nettles: The measured cost of copying garbage collection mechanisms. ACM SIGPLAN conference on Functional programming, SIGPLAN Notices 32(8)
  • [Blackburn04] Stephen M. Blackburn, Perry Cheng, Kathryn S. McKinley: Myths and realities: the performance impact of garbage collection. ACM SIGMETRICS Performance Evaluation Review 32(1), 2004
8. Incremental Garbage Collection I
  • [Jones96], Kap. 8.1-8.5
  • [Deutsch76] Deutsch, L P., Bobrow, D. G.: An efficient incremental automatic garbage collector. Communications of the ACM 19,9 (Sept. 1976),522-526.
  • [Baker78] Henry G. Baker. List processing in real-time on a serial computer. CACM, 21(4):280-94, 1978
9. Incremental Garbage Collection II
  • [Jones96], Kap. 8.6-8.10
  • [Appel88] Andrew Appel, John R. Ellis, Kai Li.: Real-time Concurrent Collection on Stock Multiprocessors. ACM PLDI 88, SIGPLAN Notices 23, 7 (July 88), pp. 11-20
  • [Baker92] Henry G. Baker. The Treadmill: Real-Time Garbage Collection Without Motion Sickness. SIGPLAN Notices, 27(3), 192
  • [Lim98] Tian F. Lim, Przemyslaw Pardyak, and Brian N. Bershad. A memory-efficient real-time non-copying garbage collector. In Richard Jones, editor. Symposium on Memory management, Vancouver, October 1998. ACM Press, pages 118-129
10. Incremental Garbage Collection III (Train Algorithm)
  • [Grarup93] Steffen Grarup and Jacob Seligmann: Incremental Mature Garbage Collection. Dissertation, Department of Comp. Science, Aarhus University, 1993
    Verfügbar am Institut.
  • [Seligmann95] Jacob Seligmann and Steffen Grarup. Incremental mature garbage collection using the train algorithm.ECOOP'95, LNCS. Springer-Verlag, August 1995
  • [Hudson97] Richard L. Hudson, Ron Morrison, J. Eliot B. Moss, David S. Munro. 1997. Garbage Collecting the World: One Car at a Time. Proc. OOPSLA 97, pp.162-175
11. Hard Real-time Garbage Collection
12. Conservative Garbage Collection for C, Modula-3, ...
  • [Jones96], Kap. 9
  • [Boehm88] Boehm H.J., Weiser M.: 1988. Garbage collection in an uncooperative environment. Software -- Practice and Experience. 18(9):807-820
  • [Diwan92] Diwan A., Moss E., Hudson R.: Compiler Support for Garbage Collection in a Statically Typed Language. Proceedings PLDI'92, p. 273-282, San Francisco, CA, June 1992.
  • [Demers90] Alan Demers, Mark Weiser, Barry Hayes, Hans Boehm, Daniel G. Bobrow, and Scott Shenker. Combining generational and conservative garbage collection: Framework and implementations. POPL90, SIGPLAN Notices, San Francisco, CA, January 1990, pp 261-269
  • [Zorn93] Benjamin Zorn. 1993. The Measured Cost of Conservative Garbage Collection. Software -- Practice and Experience. 23(7):733-756.
13. Conservative Garbage Collection for C++; Java Safepoints
  • [Jones96], Kap. 10
  • [Agesen97] Agesen O., Detlefs D.L.: Finding References in Java Stacks. OOPSLA’97 Garbage Collection and Memory Management Workshop. Atlanta, GA, October 1997.
  • [Agesen98] Ole Agesen and David Detlefs. Garbage collection and live variable type-precision and liveness in Java Virtual Machines. PLDI'98, SIGPLAN Notices, Montreal, June 1998
  • [Stichnoth99] J.M. Stichnoth, G.Y. Lueh and M. Cierniak, Support for Garbage Collection at Every Instruction in a Java Compiler, PLDI'99, SIGPLAN Notices, May 1999
14. Cache-conscious Garbage Collection
  • [Jones96], Kap. 11
  • [Baker91] Henry G. Baker. 1991. Cache-Conscious Copying Collectors
  • [Zorn91] Benjamin Zorn. The effect of garbage collection on cache performance. Technical Report CU-CS-528-91, University of Colorado at Boulder, May 1991
  • [Wilson92] Paul R. Wilson, Michael S. Lam, and Thomas G. Moher. Caching consideration for generational garbage collection: A case study of large and set-associative caches. ACM Symposium on Lisp and Functional Programming, San Francisco, CA, June 1992
  • [Grunwald93] Dirk Grunwald, Benjamin Zorn, Robert Henderson: Improving the cache locality of memory allocation. PLDI'93, SIGPLAN Notices 28(6)
  • [Chilimbi98] Trishul M. Chilimbi and James R. Larus. Using generational garbage collection to implement cache-conscious data placement. In Richard Jones, editor. International Symposium on Memory Management, Vancouver, October 1998. ACM Press, pages 37-48
15. Parallel Garbage Collection
  • [Boehm91] Hans-J. Boehm, Alan J. Demers, Scott Shenker. 1991. Mostly Parallel Garbage Collection. ACM PLDI 91, SIGPLAN Notices 26, 6 (June 1991), pp. 157-164.
  • [Printezis00] Printezis T., Detlefs D.: A Generational Mostly-Concurrent Garbage Collector. Sun Labs TR-2000-88
16. Distributed Garbage Collection
  • [Jones96], Kap. 12

Termine

Datum Zeit Ort Themen
Mo 10.10.2005 16:30 - 17:00 HF9905 Vorbesprechung und Themenaufteilung
Do 12.1.2006 13:45 - 18:45 T 911 1. Reference Counting I (Negeli)
2. Reference Counting II (Loidl)
3. Mark & Sweep (Schartner)
4. Copying Collectors (Prinz)
5. Generational Collectors I (Welser)
6. Generational Collectors II (Wesp)
Fr 13.1.2006 13:45 - 18:00 T 041 7. Mark & Compact + Measuments (Prügl)
8. Incremental Garbage Collection I (Wirth)
9. Incremental Garbage Collection II (Schatz)
10. Incremental Garbage Collection III (Würthinger)
11. Hard Real-time Garbage Collection (Kelz)
Sa 14.1.2006 08:30 - 12:45 T 041 12. Conservative Garbage Collection for C (Höglinger)
13. Conservative Garbage Collection for C++ (Krebelder)
14. Cache-conscious Garbage Collection (Innthaler)
15. Parallel Garbage Colection (Gsenger)
16. Distributed Garbage Collection (Brunthaler)

Benotung

Die Note wird aus dem Seminarvortrag, dem schriftlichen Seminarbericht und der Mitarbeit (Diskussion) im Seminar gebildet.

Abzugeben sind die Folien des Seminarvortrags (in Powerpoint oder PDF) sowie der Seminarbericht (in Word oder PDF). Beides ist per Email bis spätestens 15.1. an den Seminarleiter zu senden.

Wer vorhat, das Seminar als Bakkalaureatsarbeit zu absolvieren, muß dies dem Seminarleiter zu Beginn des Semesters mitteilen. Es sind in diesem Fall außerdem die Richtlinien für die Form des Seminarberichts einzuhalten.


Seminarberichte und Folien

Thomas Negeli   Reference Counting I Seminarbericht Folien
Stefan Loidl   Reference Counting II Seminarbericht Folien
Eva Schartner   Mark & Sweep Seminarbericht Folien
Michael Print   Copying Collectors Seminarbericht Folien
Harald Welser   Generational Collectors I fehlt fehlt
Ingomar Wesp   Generational Collectors II fehlt fehlt
Bernhard Prügl   Mark & Compact + Measurements Seminarbericht Folien
Christian Wirth   Incremental Garbage Collection I
Roland Schatz   Incremental Garbage Collection II Seminarbericht Folien
Thomas Würthinger   Incremental Garbage Collection III Seminarbericht Folien
Rainer Kelz   Hard Real-time Garbage Collection Seminarbericht Folien
Christian Höglinger   Conservative Garbage Collection for C Seminarbericht Folien
Georg Krebelder   Conservative Garbage Collection for C++ fehlt fehlt
Gernot Innthaler   Cache-conscious Garbage Collection Seminarbericht Folien
Günther Gsenger   Parallel Garbage Collection Seminarbericht Folien
Stefan Brunthaler   Distributed Garbage Collection Seminarbericht Folien

Weitere Links

Bibliographien Konferenzen