ABSTRACT
Multiprocessors often feature weaker memory models than sequential consistency. Relaxed memory models can be implemented more efficiently and allow more optimizations. The Java memory model is a relaxed memory model that is a natural choice for a Java processor. In this paper, we show that a data cache that obeys the restrictions of the Java memory model can be implemented efficiently. The proposed implementation requires only local actions to ensure data consistency and is therefore timing analysis friendly.
Furthermore, we investigate the impact of the proposed data cache design on the correctness of real-time garbage collection. Relaxed memory models must to be taken into account when initializing and moving objects during heap compaction. Also, write barriers and the start of a garbage collection cycle require careful design under the Java memory model.
- S. V. Adve and K. Gharachorloo. Shared memory consistency models: A tutorial. Computer, 29(12):66--76, 1996. Google ScholarDigital Library
- 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 7th ACM International Conference on Embedded software, pages 245--254, Atlanta, GA, 2008. Google ScholarDigital Library
- H. Azatchi, Y. Levanoni, H. Paz, and E. Petrank. An on-the-fly mark and sweep garbage collector based on sliding view. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, Anaheim, CA, USA, Nov. 2003. Google ScholarDigital Library
- D. F. Bacon, P. Cheng, and V. Rajan. A real-time garbage collecor with low overhead and consistent utilization. In Conference Record of the Thirtieth Annual ACM Symposium on Principles of Programming Languages, ACM SIGPLAN Notices 38(1), New Orleans, LA, USA, Jan. 2003. Google ScholarDigital Library
- K. Barabash, O. Ben-Yitzhak, I. Goft, E. K. Kolodner, V. Leikehman, Y. Ossia, A. Owshanko, and E. Petrank. A parallel, incremental, mostly concurrent garbage collector for servers. ACM Transactions on Programming Languages and Systems, 27(6): 1097--1146, Nov. 2005. Google ScholarDigital Library
- P. Cenciarelli, A. Knapp, and E. Sibilio. The Java memory model: Operationally, denotationally, axiomatically. Lecture Notes in Computer Science, 4421:331, 2007. Google ScholarDigital Library
- P. Cheng. Scalable Real-Time Parallel Garbage Collection for Symmetric Multiprocessors. PhD thesis, Carnegie Mellon University, 2001. Google ScholarDigital Library
- E. W. Dijkstra, L. Lamport, A. J. Martin, C. S. Scholten, and E. F. M. Steffens. On-the-fly garbage collection: An exercise in cooperation. Communications of the ACM, 21(11):965--975, Nov. 1978. Google ScholarDigital Library
- D. Doligez and G. Gonthier. Portable, unobtrusive garbage collection for multiprocessor systems. In Conference Record of the Twenty-First Annual ACM Symposium on Principles of Programming Languages, Portland, OR, USA, Jan. 1994. ACM Press. Google ScholarDigital Library
- D. Doligez and X. Leroy. A concurrent generational garbage collector for a multi-threaded implementation of ML. In Conference Record of the Twentieth Annual ACM Symposium on Principles of Programming Languages, pages 113--123, Charleston, SC, USA, Jan. 1993. ACM Press. Google ScholarDigital Library
- K. Gharachorloo, D. Lenoski, J. Laudon, P. Gibbons, A. Gupta, and J. Hennessy. Memory consistency and event ordering in scalable shared-memory multiprocessors. SIGARCH Comput. Archit. News, 18(3a):15--26, 1990. Google ScholarDigital Library
- J. Gosling, B. Joy, G. Steele, and G. Bracha. The Java Language Specification, Third Edition. The Java Series. Addison-Wesley Professional, Boston, Mass., 2005. Google ScholarDigital Library
- R. Heckmann, M. Langenbach, S. Thesing, and R. Wilhelm. The influence of processor architecture on the design and results of WCET tools. Proceedings of the IEEE, 91(7): 1038--1054, Jul. 2003.Google ScholarCross Ref
- Intel Corporation. Intel 64 and IA-32 Architectures Software Developer's Manual - Volume 3A: System Programming Guide, Part 1, March 2009.Google Scholar
- P. Keleher, A. L. Cox, and W. Zwaenepoel. Lazy release consistency for software distributed shared memory. In ISCA '92: Proceedings of the 19th annual international symposium on Computer architecture, pages 13--21, New York, NY, USA, 1992. ACM. Google ScholarDigital Library
- D. Lea. The JSR-133 cookbook for compiler writers. Available at http://gee.cs.oswego.edu/dl/jmm/cookbook.html. Accessed June 24, 2009.Google Scholar
- Y. Levanoni and E. Petrank. An on-the-fly reference counting garbage collector for Java. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, ACM SIGPLAN Notices 36(11), Tampa, FL, USA, Nov. 2001. Google ScholarDigital Library
- J. Manson. The Java memory model. PhD thesis, University of Maryland, College Park, MD, USA, 2004. Google ScholarDigital Library
- C. Pitter. Time-Predictable Java Chip-Multiprocessor. PhD thesis, Vienna University of Technology, Austria, 2009.Google Scholar
- W. Puffitsch and M. Schoeberl. Non-blocking root scanning for real-time garbage collection. In Proceedings of the 6th International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES 2008), September 2008. Google ScholarDigital Library
- J. Reineke, D. Grand, C. Berg, and R. Wilhelm. Timing predictability of cache replacement policies. Journal of Real-Time Systems, 37(2):99--122, Nov. 2007. Google ScholarDigital Library
- M. 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, Apr. 2006. Google ScholarDigital Library
- M. Schoeberl. A Java processor architecture for embedded real-time systems. Journal of Systems Architecture, 54/1--2:265--286, 2008. Google ScholarDigital Library
- M. Schoeberl. Time-predictable cache organization. In Proceedings of the First International Workshop on Software Technologies for Future Dependable Distributed Systems (STFSSD 2009), Tokyo, Japan, March 2009. IEEE Computer Society. Google ScholarDigital Library
- J. Sevcik and D. Aspinall. On validity of program transformations in the Java memory model. In Ecoop 2008-Object-Oriented Programming: 22nd European Conference Paphos, Cyprus, July 7--11, 2008, Proceedings, page 27. Springer, 2008. Google ScholarDigital Library
- F. Siebert. Hard Realtime Garbage Collection in Modern Object Oriented Programming Languages. aicas Books, 2002.Google Scholar
- T. Yuasa. Real-time garbage collection on general-purpose machines. Journal of Systems and Software, 11(3):181--198, 1990. Google ScholarDigital Library
Index Terms
- Data caching, garbage collection, and the Java memory model
Recommendations
Controlling garbage collection and heap growth to reduce the execution time of Java applications
In systems that support garbage collection, a tension exists between collecting garbage too frequently and not collecting it frequently enough. Garbage collection that occurs too frequently may introduce unnecessary overheads at the risk of not ...
Age-based garbage collection
Modern generational garbage collectors look for garbage among the young objects, because they have high mortality; however, these objects include the very youngest objects, which clearly are still live. We introduce new garbage collection algorithms, ...
Age-based garbage collection
OOPSLA '99: Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsModern generational garbage collectors look for garbage among the young objects, because they have high mortality; however, these objects include the very youngest objects, which clearly are still live. We introduce new garbage collection algorithms, ...
Comments