Academia.eduAcademia.edu

Outline

Garbage collection for safety critical Java

2007, Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems - JTRES '07

https://doi.org/10.1145/1288940.1288953

Abstract

The Real-time Specification for Java and the upcoming, and more restricted, Safety Critical Java standard have been designed to allow programmers to avoid pauses caused by automatic memory management algorithms. Dynamic memory is user-managed using a region-based allocation scheme known as scoped memory areas. However, usage of those scoped memories is cumbersome and often leads to runtime errors. In this paper we focus on the safety critical subset of the Real-time Specification for Java and propose a real-time garbage collector that can be scheduled like a normal real-time thread with a deadline monotonic assigned priority. The restricted programming model offered by Safety Critical Java allows us to substantially simplify the collector. Our proposal has been implemented and evaluated in the context of the JOP project. JOP is a Java processor especially designed for embedded real-time systems. The architecture is optimized for worst-case execution time (WCET) instead of the usual optimization for average case execution time. Execution time of bytecodes is known cycle accurate.

References (29)

  1. REFERENCES
  2. 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 2006), pages 124-147, Nantes, France, July 2006. Springer.
  3. 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), 2007.
  4. N. C. Audsley, A. Burns, M. F. Richardson, and A. J. Wellings. Hard real-time scheduling: The deadline monotonic approach. In Proceedings 8th IEEE Workshop on Real-Time Operating Systems and Software, Atalanta, 1991.
  5. 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.
  6. Henry G. Baker. List processing in real time on a serial computer. Commun. ACM, 21(4):280-294, 1978.
  7. Jason Baker, Antonio Cunei, Filip Pizlo, and Jan Vitek. Accurate garbage collection in uncooperative environments with lazy pointer stacks. In International Conference on Compiler Construction (CC), 2007.
  8. Greg Bollella, James Gosling, Benjamin Brosgol, Peter Dibble, Steve Furr, and Mark Turnbull. The Real-Time Specification for Java. Java Series. Addison-Wesley, June 2000.
  9. Alan Burns, Brian Dobbing, and G. Romanski. The ravenscar tasking profile for high integrity real-time programs. In Proceedings of the 1998 Ada-Europe International Conference on Reliable Software Technologies, pages 263-275. Springer-Verlag, 1998.
  10. C. J. Cheney. A nonrecursive list compacting algorithm. Commun. ACM, 13(11):677-678, 1970.
  11. Edsger W. Dijkstra, Leslie Lamport, A. J. Martin, C. S. Scholten, and E. F. M. Steffens. On-the-fly garbage collection: an exercise in cooperation. Commun. ACM, 21(11):966-975, 1978.
  12. Chris Hawblitzel, Heng Huang, Lea Wittie, and Juan Chen. A garbage-collecting typed assembly language. In TLDI '07: Proceedings of the 2007 ACM SIGPLAN international workshop on Types in languages design and implementation, pages 41-52, 2007.
  13. Roger Henriksson. Scheduling Garbage Colection in Embedded Systems. PhD thesis, Lund University, July 1998.
  14. Java Expert Group. Java specification request JSR 302: Safety critical java technology. Available at http://jcp.org/en/jsr/detail?id=302.
  15. C. L. Liu and James W. Layland. Scheduling algorithms for multiprogramming in a hard-real-time environment. J. ACM, 20(1):46-61, 1973.
  16. Filip Pizlo, J. M. Fox, David Holmes, and Jan Vitek. Real-time java scoped memory: Design patterns and semantics. In Proceedings of the 7th IEEE International Symposium on, Object-Oriented Real-Time Distributed Computing (ISORC 2004), pages 101-110, 2004.
  17. Filip Pizlo, Antony L. Hosking, and Jan Vitek. Hierarchical real-time garbage collection. In LCTES '07: Proceedings of the 2007 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools, pages 123-133, New York, NY, USA, 2007. ACM Press.
  18. Peter Puschner and Andy Wellings. A profile for high integrity real-time Java programs. In 4th IEEE International Symposium on Object-oriented Real-time distributed Computing (ISORC), 2001.
  19. Sven Gestegard Robertz and Roger Henriksson. Time-triggered garbage collection: robust and adaptive real-time GC scheduling for embedded systems. In LCTES '03: Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems, pages 93-102, New York, NY, USA, 2003. ACM Press.
  20. RTCA/DO-178B. Software considerations in airborne systems and equipment certification. December 1992.
  21. Martin Schoeberl. JOP: A Java Optimized Processor for Embedded Real-Time Systems. PhD thesis, Vienna University of Technology, 2005.
  22. Martin Schoeberl. Real-time garbage collection for Java. In Proceedings of the 9th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC 2006), pages 424-432, Gyeongju, Korea, April 2006.
  23. Martin Schoeberl. Architecture for object oriented programming languages. In Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems (JTRES 2007), Vienna, Austria, September 2007. ACM Press.
  24. Martin Schoeberl. A Java processor architecture for embedded real-time systems. Journal of Systems Architecture, doi:10.1016/j.sysarc.2007.06.001, 2007.
  25. Martin Schoeberl, Hans Sondergaard, Bent Thomsen, and Anders P. Ravn. A profile for safety critical java. In 10th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC'07), pages 94-101, Santorini Island, Greece, May 2007. IEEE Computer Society.
  26. Fridtjof Siebert. Hard Realtime Garbage Collection in Modern Object Oriented Programming Languages. Number ISBN: 3-8311-3893-1. aicas Books, 2002.
  27. Jesper Honig Spring, Filip Pizlo, Rachid Guerraoui, and Jan Vitek. Reflexes: Abstractions for highly responsive systems. In To Appear in the Proceedings of the 2nd International Conference on Virtual Execution Environments (VEE), 2007.
  28. Martin T. Vechev, Eran Yahav, David F. Bacon, and Noam Rinetzky. Cgcexplorer: a semi-automated search procedure for provably correct concurrent collectors. In PLDI '07: Proceedings of the ACM SIGPLAN 2007 conference on Programming Language Design and Implementation, pages 456-467, 2007.
  29. Taichi Yuasa. Real-time garbage collection on general-purpose machines. Journal of Systems and Software, 11(3):181-198, 1990.