Skip to main content

Part of the book series: Lecture Notes in Electrical Engineering ((LNEE,volume 125))

  • 154 Accesses

Abstract

Over the past two decades, the number of memory-managed programming languages has proliferated. Such languages use uniprocessormemorymanagement techniques to allocate and reclaim storage on behalf of programs. Multicores and other forms of multiprocessor systems have evolved to become common place. However, deployed memory management techniques largely have not taken advantage of the benefits ofmultiprocessor systems.We present a fully concurrent garbage collector that offers negligible synchronization cost and leverages the power, speed, and potential of multicores and other multiprocessor systems. This collector makes its best effort to avoid suspending application threads as many concurrent (and other on-the-fly) collectors do. Instead, it retrieves requisite data opportunistically from each thread to compute its view of the heap and perform garbage collection work. Our collector is an efficient, high performance garbage collector that yields features that are desirable for multiprocessor real-time systems.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 169.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 219.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 219.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aho, A.V., Kernighan, B.W., Weinberger, P.J.: The AWK Programming Language. Addison-Wesley (1988)

    Google Scholar 

  2. Appel, A.W., Ellis, J.R., Li, K.: Real-time concurrent collection on stock multiprocessors. SIGPLAN Notices 23(7), 11–20 (1988)

    Article  Google Scholar 

  3. Azatchi, H., Levanoni, Y., Paz, H., Petrank, E.: An on-the-fly mark and sweep garbage collector based on sliding views. SIGPLAN Notices 38, 269–281 (2003)

    Article  Google Scholar 

  4. Bacon, D.F., Richard Attanasio, C., Lee, H., Rajan, V.T., Smith, S.: Java without the coffee breaks: A nonintrusive multiprocessor garbage collector. In: SIGPLAN Conference on Programming Language Design and Implementation, pp. 92–103 (2001)

    Google Scholar 

  5. Bacon, D.F., Rajan, V.T.: Concurrent Cycle Collection in Reference Counted Systems. In: Lee, S.H. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 207–235. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  6. Collins, G.E.: A method for overlapping and erasure of lists. Communications of the ACM 3(12), 655–657 (1960)

    Article  Google Scholar 

  7. DeTreville, J.: Experience with concurrent garbage collectors for Modula-2+. Technical Report 64, Digital Equipment Corporation Systems Research Center (August 1990)

    Google Scholar 

  8. Peter Deutsch, L., Bobrow, D.G.: An efficient incremental automatic garbage collector. Communications of the ACM 19(9), 522–526 (1976)

    Article  MATH  Google Scholar 

  9. Dieckmann, S., Hölzle, U.: A study of the Allocation Behavior of the SPECjvm98 Java Benchmarks. The MIT Press (2001)

    Google Scholar 

  10. Doligez, D., Leroy, X.: A concurrent generational garbage collector for a multi-threaded implementation of ML. In: Conference Record of the Twentieth Annual ACM Symposium on Principles of Programming Languages, SIGPLAN Notices, pp. 113–123. Association for Computing Machinery (1993)

    Google Scholar 

  11. Free Software Foundation. GCC, the GNU Compiler Collection - GNU Project - Free Software Foundation, FSF (2007), http://gcc.gnu.org/

  12. Goldberg, A., Robson, D.: Smalltalk-80: the language and its implementation. Addison-Wesley Longman Publishing Co., Inc., Boston (1983)

    MATH  Google Scholar 

  13. Hartel, P.H.: Performance Analysis of Storage Management in Combinator Graph Reduction. PhD thesis, Department of Computer Systems, University of Amsterdam, Amsterdam (1988)

    Google Scholar 

  14. Jones, R., Lins, R.: Garbage collection: algorithms for automatic dynamic memory management. John Wiley & Sons, Ltd. (1996)

    Google Scholar 

  15. Levanoni, Y., Petrank, E.: An on-the-fly reference counting garbage collector for Java. In: Proceedings of the 16th ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages, and Applications, pp. 367–380. ACM Press (2001)

    Google Scholar 

  16. O’Toole, J.W., Nettles, S.M.: Concurrent replicating garbage collection. Technical Report MIT–LCS–TR–570 and CMU–CS–93–138, MIT and CMU (1993); Also LFP94 and OOPSLA93 Workshop on Memory Management and Garbage Collection

    Google Scholar 

  17. Steele, G.L.: Multiprocessing compactifying garbage collection. Communications of the ACM 18(9), 495–508 (1975)

    Article  MATH  Google Scholar 

  18. Wall, L., Schwartz, R.L.: Programming Perl. O’Reilly and Associates, Inc. (1991)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Delvin Defoe .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag GmbH Berlin Heidelberg

About this chapter

Cite this chapter

Defoe, D., Deters, M., Cytron, R.K. (2012). A Fully Concurrent Garbage Collector. In: Qian, Z., Cao, L., Su, W., Wang, T., Yang, H. (eds) Recent Advances in Computer Science and Information Engineering. Lecture Notes in Electrical Engineering, vol 125. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-25789-6_50

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-25789-6_50

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-25788-9

  • Online ISBN: 978-3-642-25789-6

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics