Decreasing Memory Overhead in Hard Real-Time Garbage Collection

  • Tobias Ritzau
  • Peter Fritzson
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2491)

Abstract

Automatic memory management techniques eliminate many programming errors that are both hard to find and to correct. However, these techniques are not yet used in embedded systems with hard realtime applications. The reason is that current methods for automatic memory management have a number of drawbacks. The two major ones are: (1) not being able to always guarantee short real-time deadlines and (2) using large amounts of extra memory. Memory is usually a scarce resource in embedded applications.

In this paper we present a new technique, Real-Time Reference Counting (RTRC) that overcomes the current problems and makes automatic memory management attractive also for hard real-time applications. The main contribution of RTRC is that often all memory can be used to store live objects. This should be compared to a memory overhead of about 500% for garbage collectors based on copying techniques and about 50% for garbage collectors based on mark-and-sweep techniques.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    D. Bacon and V. Rajan. Concurrent cycle collection in reference counted systems. In Proceedings of the Fifteenth European Conference on Object-Oriented Programming (ECOOP), Lecture Notes in Computer Science, volume 2072. University Eötvös Loránd, Budapest, Hungary, Springer-Verlag, June 2001.Google Scholar
  2. 2.
    H. G. Baker. Minimising reference count updating with deferred and anchored pointers for functional data structures. A CM SIGPLAN Notices, 29(9), Sept. 1994.Google Scholar
  3. 3.
    J. M. Barth. Shifting garbage collection overhead to compile time. Communications of the ACM, 20(7):513–518, July 1977.Google Scholar
  4. 4.
    D. G. Bobrow. Managing re-entrant structures using reference counts. ACM Transactions on Programming Languages and Systems, 2(3):269–273, July 1980.Google Scholar
  5. 5.
    R. A. Brooks. Trading data space for reduced time and code space in real-time garbage collection on stock hardware. In G. L. Steele, editor, Conference Record of the 1984 ACM Symposium on Lisp and Functional Programming, pages 256–262, Austin, TX, Aug. 1984. ACM Press.Google Scholar
  6. 6.
    D. R. Brownbridge. Cyclic reference counting for combinator machines. In J.-P. Jouannaud, editor, Record of the 1985 Conference on Functional Programming and Computer Architecture, volume 201 of Lecture Notes in Computer Science, Nancy, France, Sept. 1985. Springer-Verlag.Google Scholar
  7. 7.
    J. M. Bull, L. A. Smith, M. D. Westhead, D. S. Henty, and R. A. Davey. A benchmark suite for high performance Java. Concurrency: Practice and Experience, (12):375–388, 2000.CrossRefGoogle Scholar
  8. 8.
    T. W. Christopher. Reference count garbage collection. Software Practice and Experience, 14(6):503–507, June 1984.Google Scholar
  9. 9.
    G. E. Collins. A method for overlapping and erasure of lists. Communications of the ACM, 3(12):655–657, Dec. 1960.Google Scholar
  10. 10.
    L. P. Deutsch and D. G. Bobrow. An efficient incremental automatic garbage collector. Communications of the ACM, 19(9):522–526, Sept. 1976.Google Scholar
  11. 11.
    R. R. Fenichel and J. C. Yochelson. A Lisp garbage collector for virtual memory computer systems. Communications of the ACM, 12(11):611–612, Nov. 1969.Google Scholar
  12. 12.
    R. Henriksson. Scheduling Garbage Collection in Embedded Systems. PhD thesis, Lund Institute of Technology, July 1998.Google Scholar
  13. 13.
    M. S. Johnstone and P. R. Wilson. The memory fragmentation problem: Solved? In P. Dickman and P. R. Wilson, editors, OOPSLA’ 97 Workshop on Garbage Collection and Memory Management, Oct. 1997.Google Scholar
  14. 14.
    T. Ritzau, M. Beemster, F. Liekweg, and C. Probst. JoC — the JOSES compiler. Presented at the Java for Embedded Systems Workshop, London, May 2000.Google Scholar
  15. 15.
    R. A. Saunders. The LISP system for the Q-32 computer. In E. C. Berkeley and D. G. Bobrow, editors, The Programming Language LISP: Its Operation and Applications, pages 220–231, Cambridge, MA, 1974. Information International, Inc.Google Scholar
  16. 16.
    F. Siebert. Guaranteeing non-disruptiveness and real-time deadlines in an incremental garbage collector. In R. Jones, editor, Proceedings of the First International Symposium on Memory Management, volume 34(3) of ACM SIGPLAN Notices, pages 130–137, Vancouver, Oct. 1998. ACM Press. ISMM is the successor to the IWMM series of workshops.Google Scholar
  17. 17.
    F. Siebert. Eliminating external fragmentation in a non-moving garbage collector for Java. In Proceedings of Compilers, Architectures and Synthesis for Embedded Systems (CASES’00), San Jose, November 2000.Google Scholar
  18. 18.
    A. Veen. The JOSES project-compiling Java for embedded systems. In D. U. Assmann, editor, Java Optimization Strategies for Embedded Systems Workshop at ETAPS 2001, Genova, Italy, Apr. 2001.Google Scholar
  19. 19.
    J. Weizenbaum. Symmetric list processor. Communications of the ACM, 6(9):524–544, Sept. 1963.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Tobias Ritzau
    • 1
  • Peter Fritzson
    • 1
  1. 1.Department of Computer and Information ScienceLinköping UniversityLinköpingSweden

Personalised recommendations