skip to main content
10.1145/1806651.1806664acmconferencesArticle/Chapter ViewAbstractPublication PagesismmConference Proceedingsconference-collections
research-article

Improved replication-based incremental garbage collection for embedded systems

Authors Info & Claims
Published:05 June 2010Publication History

ABSTRACT

We have developed an incremental compacting garbage collector for embedded Java systems. The collector divides the heap into equal sized pages and uses the segregated free lists for fast allocation. Collectors that have such a heap layout have a problem of fragmentation in allocating objects larger than the page size. We solve this problem by using the replication-based incremental compaction. The compactor evacuates all objects in one area, the evacuation area, of the heap, thereby creating a large chunk of free space. We developed an algorithm for choosing the evacuation area that effectively cures fragmentation. The compactor does not use any read-barriers. Instead, it uses a technique similar to the replication-based incremental copying collection. This needs forwarding pointers for all evacuated objects. Rather than introducing an extra field for each object, we use a hash table to store forwarding pointers.

Evaluation of this garbage collector implemented in Sun's J2ME Java Virtual Machine showed that all the benchmarks used were able to run without memory starvation using the heap sizes of only 151%-286% of the maximum amount of live data plus 8 KB of the hash table. Experiments on a desktop computer, though it is not a platform for embedded systems, showed that the maximum pause time was shorter than 200 μs, which was comparable to that of our implementation of the snapshot-at-the-beginning collector without compaction. On an ARM processor, the runtime overhead was 1%-16% with 8.0% on average compared to the mark-sweep collector.

References

  1. B. Alpern et al. The jalapeño virtual machine. IBM System Journal, 39(1):211--238, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. D. F. Bacon, P. Cheng, and V. Rajan. A real-time garbage collector with low overhead and consistent utilization. In Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on principles of programming languages (POPL '03), pages 285--298, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. D. F. Bacon, P. Cheng, and V. Rajan. Controlling fragmentation and space consumption in the metronome, a real-time garbage collector for Java. In Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems (LCTES '03), pages 81--92, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. D. F. Bacon, P. Cheng, and D. Grove. Garbage collection for embedded systems. In Proceedings of the 4th ACM international conference on embedded software (EMSOFT '04), pages 125--136, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. O. Ben-Yitzhak, I. Goft, E. K. Kolodner, K. Kuiper, and V. Leikehman. An algorithm for parallel incremental compaction. In Proceedings of the 3rd international symposium on Memory management (ISMM'02), pages 100--105, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Bentley. Programming Pearls Second Edition. Addison-Wesley, 2000.Google ScholarGoogle Scholar
  7. S. M. Blackburn and K. S. McKinley. Immix: a mark-region garbage collector with space efficiency, fast collection, and mutator performance. In Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementaion (PLDI '08), pages 22--32, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. G. Bollella, B. Brosgol, J. Gosling, P. Dibble, S. Furr, and M. Turnbull. The Real-Time Specification for Java. Addison Wesley Longman, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. R. A. Brooks. Trading data space for reduced time and code space in real-time garbage collection on stock hardware. In Proceedings of the 1984 ACM Symposium on LISP and functional programming, pages 256--262, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Embedded Microprocessor Benchmark Consortium. Java Grinder-Bench version 1.0. http://www.eembc.org.Google ScholarGoogle Scholar
  11. R. Gabriel. Performance and Evaluation of Lisp Systems. MIT Press, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. R. L. Hudson and J. E. B. Moss. Sapphire: Copying GC without stopping the world. In Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande, pages 48--57, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. T. Kalibera. Replicating real-time garbage collector for Java. In Proceedings of the 7th International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES '09), pages 100--109, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. B. Lang and F. Dupont. Incremental incrementally compacting garbage collection. In Papers of the Symposium on Interpreters and interpretive techniques, pages 253--263, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. S. Nettles and J. O'Toole. Real-time replication garbage collection. In Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation (PLDI '93), pages 217--226, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. F. Pizlo, D. Frampton, E. Petrank, and B. Steensgaard. A real-time garbage collector for multiprocessors. In Proceedings of the 6th international symposium on Memory management (ISMM '07), pages 159--172, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. N. Sachindran, J. E. B. Moss, and E. D. Berger. MC2: High-performance garbage collection for memory-constrained environments. In Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (OOPSLA '04), pages 81--98, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. H. Saiki, Y. Konaka, T. Komiya, M. Yasugi, and T. Yuasa. Real-time GC in JeRTy VM using the return-barrier method. In 8th IEEE International Symposium on Object-oriented Real-time distributed Computing (ISORC 2005), pages 140--148, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. F. Siebert. Hard real-time garbage-collection in the Jamaica virtual machine. In Proceedings of the 6th International Conference on Real-Time Computing Systems and Applications (RTCSA '99), page 96, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. D. Simon, C. Cifuentes, D. Cleal, J. Daniels, and D. White. Java on the bare metal of wireless sensor devices: the squawk Java virtual machine. In Proceedings of the 2nd international conference on Virtual execution environments, pages 78--88, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. Stanchina and M. Meyer. Mark-sweep or copying? a "best of both worlds" algorithm and a hardware-supported real-time implementation. In Proceedings of the 6th international symposium on memory management (ISMM '07), pages 173--182, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Sun mycrosystems, Inc. J2ME CLDC HotSpot implementation virtual macine - white paper. http://java.sun.com/j2me/docs/pdf/CLDC-HI_whitepaper-February_2005.pdf, 2005.Google ScholarGoogle Scholar
  23. Sun mycrosystems, Inc. The K virtual machine - white paper. http://java.sun.com/products/kvm/wp, 2000.Google ScholarGoogle Scholar
  24. T. Ugawa, M. Yasugi, and T. Yuasa. Replication-based incremental compaction. In Proceedings of the 12th IEEE International Symposium on Object/Component/Service-oriented Real-Time Distributed Computing (ISORC '08), pages 516--524, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. P. R. Wilson, M. S. Jonstone, M. Neely, and D. Boles. Dynamic storage allocation: A survey and critical review. In Proceedings of the international workshop on memory management (IWMM '95), pages 1--116, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. T. Yuasa. A Lisp driver to be embedded in Java applications. http://www.yuasa.kuis.kyoto-u.ac.jp/yuasa/jakld.index.html.Google ScholarGoogle Scholar
  27. T. Yuasa. Real-time garbage collection on general-purpose machines. Journal of Software and Systems, 11(3):181--198, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Improved replication-based incremental garbage collection for embedded systems

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        ISMM '10: Proceedings of the 2010 international symposium on Memory management
        June 2010
        140 pages
        ISBN:9781450300544
        DOI:10.1145/1806651
        • General Chair:
        • Jan Vitek,
        • Program Chair:
        • Doug Lea
        • cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 45, Issue 8
          ISMM '10
          August 2010
          129 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/1837855
          Issue’s Table of Contents

        Copyright © 2010 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 5 June 2010

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate72of156submissions,46%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!