skip to main content
article

Hardware support for detecting illegal references in a multiapplication real-time Java environment

Published:01 November 2006Publication History
Skip Abstract Section

Abstract

Our objective is to adapt the Java memory management to an embedded system, e.g., a wireless PDA executing concurrent multimedia applications within a single JVM. This paper provides software, and hardware-based solutions detecting both illegal references across the application memory spaces and dangling pointers within an application space. We give an approach to divide/share the memory among the applications executing concurrently in the system. We introduce and define application-specific memory, building upon the real-time specification for Java (RTSJ) from the real-time Java expert group. The memory model used in RTSJ imposes strict rules for assignment between memory areas, preventing the creation of dangling pointers, and thus maintaining the pointer safety of Java. Our implementation solution to ensure the checking of these rules before each assignment inserts write barriers that use a stack-based algorithm. This solution adversely affects both the performance and predictability of the RTSJ applications, which can be improved by using an existing hardware support.

References

  1. Baker, H. G. 1991. The treadmill: Real-time garbage collection without motion sickness. In Proc. of Conference on Object and Oriented Programming, Systems Languages and Applications OOPSLA.Google ScholarGoogle Scholar
  2. Back, G., Tullmann, P., Stoller, L., Hesienh, W. C., and Lepreau, J. 1998. Java operating systems: Design and implementation. Technical rep. Department of Computer Science, University of Utah, http://www.cs.utah.edu/projects/flux (Aug).Google ScholarGoogle Scholar
  3. Bernadat, P., Lambright, D., and Travostino, F. 1998. Towards a resource safe Java for service guarantees in uncooperative environments. In Proceedings of the IEEE Workshop on Programming Languages for Real-Time Industrial Applications.Google ScholarGoogle Scholar
  4. Bollella, G., Gosling, J., Brosgol, B., Dibble, P., Furr, S., Hardin, D., and Mturnbull. (The Real-Time for Java Expert Group). Real-Time Specification for Java. RTJEG 2002. http://www.rtj.org. Google ScholarGoogle Scholar
  5. Czajkowki, G. 2000. Application isolation in the Java virtual machine. In Proc. of Conference on Object and Oriented Programming, Systems Languages and Applications pages 354--366. OOPSLA, ACM SIGPLAN (Oct.). Google ScholarGoogle Scholar
  6. Hardin, D. S. 2001. Real-time objects on the bare metal. An efficient hardware realization of the Java virtual machine. In Proceedings of the 4th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC). Google ScholarGoogle Scholar
  7. Higuera-Toledano, M. T., Issarny, V., Banatre, M., Cabillic, G., Lesot, J. P., and Parain, F. 2004. Memory management for real-time Java: An efficient solution using hardware support. Real-Time Systems Journal 26, 1. Google ScholarGoogle Scholar
  8. Higuera-Toledano, M. T. 2004. Illegal References in a real-time Java concurrent environment. In Proceedings of the 7th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC).Google ScholarGoogle Scholar
  9. Higuera-Toledano, M. T. 2003. Hardware-based solutions detecting illegal references in real-time Java”. In Proceedings of 15th Euromicro Conference on Real-Time Systems.Google ScholarGoogle Scholar
  10. Issarny, V., Banatre, M., Weiss, F., Weis, Cabillic, G., Courdec, P., Higuer-Toledano, M. T., and Parain, F. 2000. Providing an embedded software environment for wireless PDAs. In Proceegings of the Ninth ACM SIGOPS European Workshop---Beyond the PC: New Challenges for the Operating System (Sept.). Google ScholarGoogle Scholar
  11. Java Community Process. 2003. Application Isolation API Specification. http://jcp.org/jsr/detail/121.jsp.Google ScholarGoogle Scholar
  12. Jensen, D. W., Greve, D. A., and Wilding, M. M. Secure Reconfigurable Computing. Advanced Technology Center Advanced Technology Center. http://www.klabs.org/richcontent/MAPLDCon99, 1999.Google ScholarGoogle Scholar
  13. Kin, S. and Hsu, Y. 2000. Memory system behaviour of Java programs: Methodology and analysis. In Proceedings of the ACM Java Grande 2000 Conference.Google ScholarGoogle Scholar
  14. Palacz, K., Czajkowski, G., Daines, L., and Vitek, J. 2002. Incommunicado: Efficient communication for isolates. In Proceedings of the Conference on Object and Oriented Programming, Systems Languages and Applications ACM OOPSLA (Nov.). Google ScholarGoogle Scholar
  15. Petit-Bianco, A. and Tromey, T. 1998. Garbage collection for Java in embedded systems. In Proceedings of IEEE Workshop on Programming Languages for Real-Time Industrial Applications (Dec.).Google ScholarGoogle Scholar
  16. SPRECJVMS98. 1998. Standard Performance Evaluation Council. SPEC JVM98 benchmarks. Technical report. http://www.spec.org/osg/jvm98.Google ScholarGoogle Scholar
  17. Shoeberl, M. 2005. Design and implementation of an efficient stack machine. In Proceedings of the 12th IEEE Reconfigurable Architecture Workshop, RAW 2005, Denver, Colorado (Apr.).Google ScholarGoogle Scholar
  18. Sun Microsystems. 2000. picoJava-II Programmer's Reference Manual. Technical Report. Java Community Process (May). http://java.sun.com.Google ScholarGoogle Scholar
  19. Sun Microsystems. 2000. KVM Technical Specification. http://java.sun.com (May).Google ScholarGoogle Scholar
  20. Uhrig, S., Liemke, C., Pfeffer, M., Becker, J., Brinkschulte, U., and Ungerer, TH. 2002. Implementing real-time scheduling within a multithreaded Java microcontroller. In Proceedings of the 6th Workshop on Multithreaded Execution, Architecture and Compilation MTEAC-6.Google ScholarGoogle Scholar
  21. Whitaker, A., Shaw, M., and Gribble, S. D. 2002. A scalable isolation kernel. In Proceedings of the Tenth ACM SIGOPS European Workshop, Saint-Emilion, France (Sept.). Google ScholarGoogle Scholar
  22. Wilson, P. R. and Johnston, M. S. 1993. Real-time non-copying garbage collection. In Proc. of Conference on Object and Oriented Programming, Systems Languages and Applications ACM OOPSLA (Workshop on Garbage Collection and Memory Management.) (Sept.).Google ScholarGoogle Scholar
  23. Wong, B., Czajkowski, G., and Daymes, L. 2003. Dynamically loaded classes as shared libraries: An approach to improving virtual machine scalability. In Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS). Google ScholarGoogle Scholar

Index Terms

(auto-classified)
  1. Hardware support for detecting illegal references in a multiapplication real-time Java environment

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!