DOI QR코드

DOI QR Code

Time-Predictable Java Dynamic Compilation on Multicore Processors

  • Sun, Yu (Mathworks) ;
  • Zhang, Wei (Department of Electrical and Computer Engineering, Virginia Commonwealth University)
  • 투고 : 2012.02.02
  • 심사 : 2012.02.17
  • 발행 : 2012.03.30

초록

Java has been increasingly used in programming for real-time systems. However, some of Java's features such as automatic memory management and dynamic compilation are harmful to time predictability. If these problems are not solved properly then it can fundamentally limit the usage of Java for real-time systems, especially for hard real-time systems that require very high time predictability. In this paper, we propose to exploit multicore computing in order to reduce the timing unpredictability that is caused by dynamic compilation and adaptive optimization. Our goal is to retain high performance comparable to that of traditional dynamic compilation, while at the same time, obtain better time predictability for Java virtual machine (JVM). We have studied pre-compilation techniques to utilize another core more efficiently, preoptimization on another core (PoAC) scheme to replace the adaptive optimization system (AOS) in Jikes JVM and the counter based optimization (CBO). Our evaluation reveals that the proposed approaches are able to attain high performance while greatly reducing the variation of the execution time for Java applications.

키워드

참고문헌

  1. J. Gosling, G. Bollella, P. Dibble, S. Furr, and M. Turnbull, The Real-time specication for Java, Boston, MA: Addison- Wesley, 2000.
  2. F. Pizlo, J. M. Fox, D. Holmes, and J. Vitek, "Real-time Java scoped memory: design patterns and semantics," Proceedings of the 7th IEEE International Symposium on Object- Oriented Real-Time Distributed Computing, Vienna, 2004, pp. 101-110.
  3. C. Andreae, Y. Coady, C. Gibbs, J. Noble, J. Vitek, and T. Zhao, "Scoped types and aspects for real-time Java memory management," Real-Time Systems, vol. 37, no. 1, pp. 1-44, 2007. https://doi.org/10.1007/s11241-007-9024-3
  4. W. S. Beebee and M. C. Rinard, "An implementation of scoped memory for real-time Java," Proceedings of the First International Workshop on Embedded Software, Tahoe City, CA, 2001, pp. 289-305.
  5. IBM, "WebSphere real time," http://www-01.ibm.com/software/ webservers/realtime/#.
  6. Oracle, "Sun Java real-time system," http://java.sun.com/javase/ technologies/realtime/index.jsp.
  7. Purdue University College of Science, "Open virtual machine (OVM)," http://www.cs.purdue.edu/homes/jv/soft/ovm/.
  8. D. F. Bacon, P. Cheng, and V. T. Rajan, "The metronome: a simpler approach to garbage collection in real-time systems," OTM Workshops, 2003, pp. 466-478.
  9. D. F. Bacon, P. Cheng, and V. T. Rajan, "A real-time garbage collector with low overhead and consistent utilization," Proceedings of the 30th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, New Orleans, LA, 2003, pp. 285-298.
  10. H. Cho, C. Na, B. Ravindran, and E. D. Jensen, "On scheduling garbage collector in dynamic real-time systems with statistical timing assurances," Real-Time Systems, vol. 36, no. 1-2, pp. 23-46, 2007. https://doi.org/10.1007/s11241-006-9011-0
  11. S. G. Robertz and R. Henriksson, "Time-triggered garbage collection: robust and adaptive real-time GC scheduling for embedded systems," ACM SIGPLAN Notices, vol. 38, no. 7, pp. 93-102, 2003. https://doi.org/10.1145/780731.780745
  12. M. Kero, J. Nordlander, and P. Lindgren, "A correct and useful incremental copying garbage collector," Proceedings of the 6th International Symposium on Memory Management, New York, NY, 2007, pp. 129-140.
  13. F. Siebert, "Hard real-time garbage-collection in the Jamaica virtual machine," Proceedings of the 6th International Conference on Real-Time Computing Systems and Applications, Hong Kong, 1999, pp. 96-102.
  14. J. M. Calandrino, J. H. Anderson, and D. P. Baumberger, "A hybrid real-time scheduling approach for large-scale multicore platforms," Proceedings of the 19th Euromicro Conference on Real-Time Systems, Washington, DC, 2007, pp. 247-258.
  15. R. Wilhelm, J. Engblom, A. Ermedahl, N. Holsti, S. Thesing, D. Whalley, G. Bernat, C. Ferdinand, R. Heckmann, T. Mitra, F. Mueller, I. Puaut, P. Puschner, J. Staschulat, and P. Stenstrom, "The worst-case execution-time problem: overview of methods and survey of tools," ACM Transactions on Embedded Computing Systems, vol. 7, no. 3, pp. 1-53, 2008.
  16. The Jikes RVM project, "Jikes RVM," http://www.jikesrvm.org/.
  17. Standard Performance Evaluation Corporation (SPEC), "SPEC JVM98 benchmarks," http://www.spec.org/jvm98/.
  18. A. Corsaro and D. C. Schmidt, "The design and performance of the jrate real-time Java implementation," On the Move to Meaningful Internet Systems, 2002: DOA/CoopIS/ODBASE 2002 Confederated International Conferences DOA, CoopIS and ODBASE 2002, Irvine, CA, 2002, pp. 900-921.
  19. H. G. Baker Jr, "List processing in real time on a serial computer," Communications of the ACM, vol. 21, no. 4, pp. 280- 294, 1978. https://doi.org/10.1145/359460.359470
  20. W. J. Schmidt and K. D. Nilsen, "Performance of a hardware- assisted real-time garbage collector," Proceedings of the 6th International Conference on Architectural support for Programming Languages and Operating Systems, New York, NY, 1994, pp. 76-85.
  21. P. Cheng and G. E. Blelloch, "A parallel, real-time garbage collector," Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation, New York, NY, 2001, pp. 125-136.
  22. G. E. Blelloch and P. Cheng, "On bounding time and space for multiprocessor garbage collection," ACM SIGPLAN Notices, vol. 34, no. 5, pp. 104-117, 1999.
  23. Y. Xian and G. Xiong, "Minimizing memory requirement of real-time systems with concurrent garbage collector," ACM SIGPLAN Notices, vol. 40, no. 3, pp. 40-48, 2005.
  24. R. L. Hudson and J. E. B. Moss, "Sapphire: copying GC without stoppingthe world," Proceedings of the 2001 joint ACM-ISCOPE Conference on Java Grande, New York, NY, 2001, pp. 48-57.
  25. F. Pizlo, E. Petrank, and B. Steensgaard, "A study of concurrent real-time garbage collectors," Proceedings of the 2008 ACM SIGPLAN Conference on Programming Language Design and Implementation, New York, NY, 2008, pp. 33-44.
  26. F. Pizlo, D. Frampton, E. Petrank, and B. Steensgaard, "Stopless: a real-time garbage collector for multiprocessors," Proceedings of the 6th International Symposium on Memory Management, New York, NY, 2007, pp. 159-172.
  27. U. Brinkschulte, C. Krakowski, J. Kreuzinger, and T. Ungerer, "A multithreaded Java microcontroller for threadoriented real-time event handling," Proceedings of the 1999 International Conference on Parallel Architectures and Compilation Techniques, Washington, DC, 1999, p. 34.
  28. J. Kreuzinger, U. Brinkschulte, M. Pfeer, S. Uhrig, and T. Ungerer, "Real-time event-handling and scheduling on a multithreaded java microcontroller," Microprocessors and Microsystems, vol. 27, no. 1, pp. 19-31, 2003. https://doi.org/10.1016/S0141-9331(02)00082-0
  29. M. Zabel, T. B. Preuber, P. Reichel, and R. G. Spallek, "Secure, real-time and multi-threaded general-purpose embedded Java microarchitecture," Proceedings of the 10th Euromicro Conference on Digital System Design Architectures, Methods and Tools, Washington, DC, 2007, pp. 59-62.
  30. M. Schoeberl, "JOP: a Java optimized processor for embedded real-time systems," Ph.D. dissertation, Vienna University of Technology, Vienna, 2005.
  31. M. Schoeberl, "A Java processor architecture for embedded real-time systems," Journal of Systems Architecture, vol. 54, no. 1-2, pp. 265-286, 2008. https://doi.org/10.1016/j.sysarc.2007.06.001
  32. M. Schoeberl and R. Pedersen, "WCET analysis for a Java processor," Proceedings of the 4th International Workshop on Java Technologies for Real-Time and Embedded Systems, New York, NY, 2006, pp. 202-211.
  33. Z. Chai, Z. Q. Tang, L. M. Wang, and S. L. Tu, "An effective instruction optimization method for embedded real-time Java processor," Proceedings of the 2005 International Conference on Parallel Processing Workshops, Washington, DC, 2005, pp. 225-231.
  34. Z. Chai, W. Zhao, and W. Xu, "Real-time Java processor optimized for RTSJ," Proceedings of the 2007 ACM Symposium on Applied Computing, New York, NY, 2007, pp. 1540-1544.
  35. T. Harmon and R. Klefstad, "Interactive back-annotation of worst-case execution time analysis for java microprocessors," Proceedings of the 13th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications, Washington, DC, 2007, pp. 209-216.
  36. P. Puschner and G. Bernat, "WCET analysis of reusable portable code," Proceedings of the 13th Euromicro Conference on Real-Time Systems, Washington, DC, 2001, p. 45.
  37. G. Bernat, A. Burns, and A. Wellings, "Portable worst-case execution time analysis using Java byte code," Proceedings of the 12th Euromicro Conference on Real-Time Systems, Stockholm, 2000, pp. 81-88.
  38. I. Bate, G. Bernat, and P. Puschner, "Java virtual-machine support for portable worst-case execution-time analysis," Proceedings of the 5th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, Washington, DC, 2002, pp. 83-90.
  39. "The Kaffe virtual machine," http://www.kaffe.org/.
  40. E. Y. Hu, A. Wellings, and G. Bernat, "XRTJ: an extensible distributed high-integrity real-time Java environment," Proceedings of the 9th International Conference on Real-Time and Embedded Computing Systems and Applications, Tainan, Taiwan, 2003, pp. 208-228.
  41. E. Y. Hu, G. Bernat, and A. Wellings, "Addressing dynamic dispatching issues in WCET analysis for object-oriented hard real-time systems," Proceedings of the Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, Washington, DC, 2002, pp. 109-116.
  42. T. Harmon and R. Klefstad, "Toward a unied standard for worst-case execution time annotations in real-time Java," Proceedings of IEEE International Parallel and Distributed Processing Symposium, Long Beach, CA, 2007, pp. 1-8.

피인용 문헌

  1. Overview of Real-Time Java Computing vol.7, pp.2, 2013, https://doi.org/10.5626/JCSE.2013.7.2.89