Scheduling Hard Real-time Garbage Collection
2009, Proceedings - Real-Time Systems Symposium
https://doi.org/10.1109/RTSS.2009.40Abstract
Managed languages such as Java and C# are increasingly being considered for hard real-time applications because of their productivity and software engineering advantages. Automatic memory management, or garbage collection, is a key enabler for robust, reusable libraries, yet remains a challenge for analysis and implementation of real-time execution environments. This paper comprehensively compares the two leading approaches to hard real-time garbage collection. While there are many design decisions involved in selecting a real-time garbage collection algorithm, for timebased garbage collectors researchers and practitioners remain undecided as to whether to choose periodic scheduling or slackbased scheduling. A significant impediment to valid experimental comparison is that the commercial implementations use completely different proprietary infrastructures. Here, we present Minuteman, a framework for experimenting with realtime collection algorithms in the context of a high-performance execution environment for real-time Java. We provide the first comparison of the two approaches, both experimentally using realistic workloads, and analytically in terms of schedulability.
References (30)
- G. Bollella, J. Gosling, B. Brosgol, P. Dibble, S. Furr, and M. Turnbull, The Real-Time Specification for Java. Addison- Wesley, 2000.
- A. Armbruster, J. Baker, A. Cunei, D. Holmes, C. Flack, F. Pizlo, E. Pla, M. Prochazka, and J. Vitek, "A Real- time Java virtual machine with applications in avionics," ACM Transactions in Embedded Computing Systems (TECS), vol. 7, no. 1, 2007.
- F. Pizlo and J. Vitek, "Memory management for real-time Java: State of the art," in Proceedings of the IEEE Sym- posium on Object-oriented Real-Time Distributed Computing (ISORC), 2008.
- J. Honig Spring, F. Pizlo, R. Guerraoui, and J. Vitek, "Reflexes: Abstractions for highly responsive systems," in Proceedings of the ACM/USENIX Conference on Virtual Execution Environments (VEE), 2007.
- T. Kalibera, M. Prochazka, F. Pizlo, M. Decky, J. Vitek, and M. Zulianello, "Real-time Java in space: Potential benefits and open challenges," in Proceedings of Data Systems in Aerospace (DASIA), 2009.
- D. F. Bacon, P. Cheng, and V. T. Rajan, "A real-time garbage collector with low overhead and consistent utilization," in Proceedings of the ACM Symposium on Principles of Pro- gramming Languages (POPL), 2003.
- R. Henriksson, "Scheduling garbage collection in embedded systems," Ph.D. dissertation, Lund University, 1998.
- G. Bollella, B. Delsart, R. Guider, C. Lizzi, and F. Parain, "Mackinac: Making hotspot real-time," in Proceedings of the Eighth IEEE Symposium on Object-Oriented Real-Time Distributed Computing (ISORC), 2005.
- J. Auerbach, D. F. Bacon, P. Cheng, D. Grove, B. Biron, C. Gracie, B. McCloskey, A. Micic, and R. Sciampacone, "Tax-and-spend: democratic scheduling for real-time garbage collection," in Proceedings of the ACM Conference on Em- bedded Software (EMSOFT), 2008.
- R. A. Brooks, "Trading data space for reduced time and code space in real-time garbage collection on stock hardware," in Proceedings of the ACM Symposium on Lisp and Functional Programming (LFP), 1984.
- S. Nettles and J. O'Toole, "Real-time replication garbage collection," in Proceedings of the ACM Conference on Pro- gramming Language Design and Implementation (PLDI), 1993.
- T. Yuasa, "Real-time garbage collection on general-purpose machines," Journal of Systems and Software, vol. 11, no. 3, 1990.
- J. Baker, A. Cunei, F. Pizlo, and J. Vitek, "Accurate garbage collection in uncooperative environments," Concurrency and Computation: Practice and Experience, 2009.
- M. Joseph and P. K. Pandya, "Finding response times in a real-time system," Computer Journal, vol. 29, no. 5, 1986.
- C. J. Fidge, "Real-time schedulability tests for preemptive multitasking," Real-Time Systems, vol. 14, no. 1, 1998.
- S. Gestegard Robertz and R. Henriksson, "Time-triggered garbage collection: robust and adaptive real-time GC schedul- ing for embedded systems," in Proceedings of the Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES), 2003.
- M. Schoeberl, "Real-time garbage collection for Java," in IEEE Symposium on Object-Oriented Real-Time Distributed Computing (ISORC), 2006.
- P. Cheng and G. E. Blelloch, "A parallel, real-time garbage collector," in Proceedings of the ACM Conference on Pro- gramming language design and implementation (PLDI), 2001.
- E. J. Bruno and G. Bollella, Real-Time Java Programming with Java RTS. Prentice Hall, 2009.
- T. Kalibera, J. Hagelberg, F. Pizlo, A. Plsek, B. Titzer, and J. Vitek, "CDx: A family of real-time Java benchmarks," in Workshop on Java Technologies for Real-time and Embedded Systems (JTRES), 2009.
- A. Burns, K. Tindell, and A. Wellings, "Effective analysis for engineering real-time fixed priority schedulers," IEEE Transactions on Software Engineering, vol. 21, no. 5, 1995.
- S. M. Blackburn, et al., "The DaCapo benchmarks: Java benchmarking development and analysis," in Proceedings of the ACM Conference on Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA), 2006.
- H. G. Baker, "List processing in real time on a serial computer," Communications of the ACM, vol. 21, no. 4, Apr. 1978.
- W. J. Schmidt and K. D. Nilsen, "Performance of a hardware- assisted real-time garbage collector," in Proceedings of the Conference on Architectural Support for Programming Lan- guages and Operating Systems, 1994.
- M. van Assche, J. Goossens, and R. Devillers, "Joint garbage collection and hard real-time scheduling," Journal on Embed- ded Computing, vol. 2, no. 3-4, 2006.
- J. Strosnider, J. Lehoczky, and L. Sha, "The deferrable server algorithm for enhanced aperiodic responsiveness in hard real-time environments," IEEE Transactions on Computers, vol. 44, no. 1, 1995.
- T. Kim, N. Chang, and H. Shin, "Joint scheduling of garbage collector and hard real-time tasks for embedded applications," Journal of Systems and Software, vol. 58, no. 3, 2001.
- D. F. Bacon, P. Cheng, and V. T. Rajan, "Controlling frag- mentation and space consumption in the Metronome, a real- time garbage collector for Java," in Proceedings of the ACM Conference on Language, Compiler, and Tool Support for Embedded Systems (LCTES), 2003.
- F. Siebert, "Real-time garbage collection in multi-threaded systems on a single processor," in IEEE Real-Time Systems Symposium (RTSS), 1999.
- D. Frampton, D. F. Bacon, P. Cheng, and D. Grove, "Gen- erational real-time garbage collection," in Proceedings of the European Conference on Object-Oriented Programming (ECOOP), 2007.