Abstract
Memory management is a critical issue for correctness and performance in real-time embedded systems. Recent work on real-time garbage collectors has shown that it is possible to provide guarantees on worst-case pause times and minimum mutator utilization time. This paper presents a new hierarchical real-time garbage collection algorithm for mixed-priority and mixed-criticality environments. With hierarchical garbage collection, real-time programmers can partition the heap into a number of heaplets and for each partition choose to run a separate collector with a schedule that matches the allocation behavior and footprint of the real-time task using it. This approach lowers worst-case response times of realtime applications by 26%, while almost doubling mutator utilization -all with only minimal changes to the application code.
References (24)
- Laurent Amsaleg, Olivier Gruber, and Michael Franklin. Efficient incremental garbage collection for workstation-server database systems. In Proceedings of the International Conference on Very Large Data Bases, pages 42-53. Morgan Kaufmann, 1995.
- Chris Andreae, Yvonne Coady, Celina Gibbs, James Noble, Jan Vitek, and Tian Zhao. Scoped Types and Aspects for Real-Time Java. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), pages 124-147, Nantes, France, July 2006. Springer.
- Austin Armbuster, Jason Baker, Antonio Cunei, David Holmes, Chapman Flack, Filip Pizlo, Edward Pla, Marek Prochazka, and Jan Vitek. A Real-time Java virtual machine with applications in avionics. ACM Transactions in Embedded Computing Systems (TECS), to appear.
- David F. Bacon, Perry Chang, and V.T. Rajan. A real-time garbage collector with low overhead and consistent utilization. In Conference Record of the ACM Symposium on Principles of Programming Languages, pages 285-298, New Orleans, Louisiana, January 2003.
- H. G. Baker. List processing in real time on a serial computer. Communications of the ACM, 21(4):280-294, April 1978.
- Peter B. Bishop. Computer Systems with a Very Large Address Space and Garbage Collection. PhD thesis, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1977.
- Greg Bollella, James Gosling, Benjamin Brosgol, Peter Dibble, Steve Furr, and Mark Turnbull. The Real-Time Specification for Java. Addison-Wesley, June 2000.
- Perry Cheng and Guy Blelloch. A parallel, real-time garbage collector. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 125-136, Snowbird, Utah, June 2001.
- Paulo Ferreira and Marc Shapiro. Garbage collection and DSM consistency. In Proceedings of the USENIX Symposium on Operating Systems Design and Implementation, pages 229-241, Monterey, California, November 1994.
- Roger Henriksson. Scheduling Garbage Colection in Embedded Systems. PhD thesis, Lund University, July 1998.
- Richard L. Hudson and J. Eliot B. Moss. Incremental collection of mature objects. In Proceedings of the International Workshop on Memory Management, pages 388-403. Springer-Verlag, 1992.
- Richard Jones and Andy C. King. A fast analysis for thread-local garbage collection with dynamic class loading. In Proceedings of the 5th IEEE International Workshop on Source Code Analysis and Manipulation (SCAM), pages 129-138, Budapest, Hungary, October 2005.
- Niels Christian Juul and Eric Jul. Comprehensive and robust garbage collection in a distributed system. In Proceedings of the International Workshop on Memory Management, volume 986 of Lecture Notes in Computer Science, pages 103-115, 1995.
- Arvind S. Krishna, Douglas C. Schmidt, and Raymond Klefstad. Enhancing Real-Time CORBA via Real-Time Java Features. In 24th International Conference on Distributed Computing Systems (ICDCS 2004), pages 66-73, Hachioji, Tokyo, Japan, March 2004.
- Bernard Lang, Christian Queinnec, and José M. Piquer. Garbage collecting the world. In Conference Record of the ACM SIGPLAN Symposium on Principles of Programming Languages, pages 39-50, Albuquerque, New Mexico, January 1992.
- Umesh Maheshwari and Barbara Liskov. Collecting cyclic distributed garbage by controlled migration. Distributed Computing, 10(2):79- 86, 1997.
- Umesh Maheshwari and Barbara Liskov. Partitioned garbage collection of a large object store. In Proceedings of the ACM International Conference on Management of Data, pages 313-323, June 1997.
- J. Eliot B. Moss, David S. Munro, and Richard L. Hudson. PMOS: A complete and coarse-grained incremental garbage collector for persistent object stores. In Proceedings of the Seventh International Workshop on Persistent Object Systems, pages 140-150. Morgan Kaufmann, 1997.
- Pekka Pirinen. Barrier techniques for incremental tracing. In Proceedings of the ACM International Symposium on Memory Management, pages 20-25. ACM, March 1999.
- Filip Pizlo, Jason Fox, David Holmes, and Jan Vitek. Real-time Java scoped memory: design patterns and semantics. In Proceedings of the IEEE International Symposium on Object-oriented Real-Time Distributed Computing (ISORC'04), Vienna, Austria, May 2004.
- Filip Pizlo and Jan Vitek. An empirical evalutation of memory management alternatives for Real-Time Java. In Proceedings of the 27th IEEE Real-Time Systems Symposium (RTSS), December 2006.
- William J. Schmidt and Kelvin D. Nilsen. Performance of a hardware- assisted real-time garbage collector. In Proceedings of the Sixth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pages 76-85, San Jose, California, October 1994.
- Fridtjof Siebert. Real-time garbage collection in multi-threaded systems on a single processor. In Proceedings of the 20th IEEE Real- Time Systems Symposium (RTSS), pages 277-278, Phoenix, Arizona, December 1999.
- Voon-Fee Yong, Jeffrey F. Naughton, and Jie-Bing Yu. Storage reclamation and reorganization in client-server persistent object stores. In Proceedings of the International Conference on Data Engineering, pages 120-131. IEEE Computer Society, 1994.