skip to main content
10.1145/997163.997186acmconferencesArticle/Chapter ViewAbstractPublication PagescpsweekConference Proceedingsconference-collections
Article

Adaptive code unloading for resource-constrained JVMs

Authors Info & Claims
Published:11 June 2004Publication History

ABSTRACT

Compile-only JVMs for resource-constrained embedded systems have the potential for using device resources more efficiently than interpreter-only systems since compilers can produce significantly higher quality code and code can be stored and reused for future invocations. However, this additional storage requirement for reuse of native code bodies, introduces memory overhead not imposed in interpreter-based systems.In this paper, we present a Java Virtual Machine (JVM) extension for adaptive code unloading that significantly reduces the memory requirements imposed by a compile-only JVM. The extension features an unloader that uses execution behavior to adaptively determine when to unload as well as what code to unload. We implement and empirically identify a set of unloading strategies that enable significant code size reduction (43%-61%). This reduction translates into significant execution time benefits for the benchmarks and JVM configurations that we studied. As such, by using adaptive code unloading, we make compile-only JVMs for embedded devices more feasible.

References

  1. A. Acuaviva, L. Benini, and B. Riccó. Energy characterization of embedded real-time operating systems. In Workshop on Compilers and Operating Systems for Low Power (COLP), pages 13--18, September 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Agarwal, J. Hennessy, and M. Horowitz. Cache performance of operating system and multiprogramming workloads. ACM Transactions on Computer Systems, 7(2):184--215, May 1989.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. Alt, C. Ferdinand, F. Rartin, and R. Wilhelm. Cache behavior prediction by abstract interpretation. Static Analysis Symposium, 1145:51--66, September 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. T. E. Andersson, H. M. Levy, B. N. Bershad, and E. D. Lazowska. The interaction of architecture and operating system design. In 4th International Conference on Architectural Support for Programming Languages and Operating Systems, April 1991.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. T. M. Austen, E. Larson, and D. Ernst. Simplescalar: An infrastructure for computer system modeling. IEEE Computer, 35(2):59--67, February 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. O. Avissar and R. Barua. An optimal memory allocation scheme for scratch-pad-based embedded systems. ACM Transactions on Embedded Computing Systems (TECS), 1(1), November 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. Campoy, A. P. Ivars, and J. V. B. Mataix. Static use of locking caches in multitask preemptive real-time systems. In Proceedings of the IEEE/IEE Real-Time Embedded System Workshop, December 2001.]]Google ScholarGoogle Scholar
  8. M. Corti, R. Brega, and T. Gross. Approximation of worst-case execution time for preemptive multitasking system. In Proceedings of the ACM SIGPLAN 2000 Workshop on Languages, Compilers, and Tools for Embedded Systems, June 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. R. P. Dick, G. Lakshminaryana, A. Ranghunathan, and N. K. Jha. Power analysis of embedded operating systems. In Proceedings of the 37th Conference on Design Automation, pages 312--315, June 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. EEMBC, the embedded microprocessor benchmark consortium. http://www.eembc.org/.]]Google ScholarGoogle Scholar
  11. M. R. Gathaus, J. S. Ringenberg, D. Ernst, T. M. Austen, T. Mudge, and R. B. Brown. Mibench: A free commercially representative embedded benchmark suite. In Proceedings of the IEEE 4th Annual Workshop on Workload Characterization, December 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. D. K.astner and S. Thesing. Cache aware pre-runtime scheduling. Journal of Real-Time Systems, 17:235--256, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. D. B. Kirk. Smart (strategic memory allocation for real-time) cache design. In Proceedings of 10th Real-Time Systems Symposium (RTSS), pages 229--237, December 1989.]]Google ScholarGoogle ScholarCross RefCross Ref
  14. C.-G. Lee, J. Hahn, Y.-M. Seo, S. L. Min, R. Ha, S. Hong, C. Y. Park, M. Lee, and C. S. Kim. Analysis of cache-related preemption delay in xed-priority preemptive scheduling. IEEE Transactions on Computers, 47(6), June 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. T. Li and L. K. John. Run-time modeling and estimation of operating system power consumption. In International Conference on Measurements and Modeling of Computer Systems, June 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Y.-T. Li and S. Malik. Performance analysis of embedded software using implicit path enumeration. In ACM SIGPLAN Workshop on Languages, Compilers and Tools for Real-Time Systems, June 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. T. Lundqvist and P. Stenstr. om. An integrated path and timing analysis method based on cache-level symbolic execution. Real-Time Systems, 17(2/3):183--207, November 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. C. Mogul and A. Borg. The effect of context switches on cache performance. In Proceedings of the 4th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 75--84, April 1991.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. F. Mueller. Timing analysis for instruction caches. Real-Time Systems, 18(2/3):209--239, May 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Newlib. http://sources.redhat.com/newlib/.]]Google ScholarGoogle Scholar
  21. J. K. Ousterhout. Why arent operating systems getting faster as fast as hardware? In USENIX summer conference, June 1990.]]Google ScholarGoogle Scholar
  22. I. Puaut and D. Decotigny. Low-complexity algorithms for static cache locking in multitasking hard real-time systems. In Proceedings of the 23rd real-time systems symposium, December 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. uC/OS-II RTOS. http://www.ucos-ii.com/.]]Google ScholarGoogle Scholar
  24. X. Vera and B. Lisper. Data cache locking for higher program predictability. In International Conference on Measurement and Modelling of Computer Systems, pages 272--282, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. K. Weiss, T. Steckstor, and W. Rosentiel. Performance analysis of a rtos by emulation of an embedded system. In Tenth IEEE International Workshop on Rapid System Prototyping, June 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. A. Wolfe. Software-based cache partitioning for real-time applications. In Proceedings of the 3rd international workshop on responsive computer systems, September 1993.]]Google ScholarGoogle Scholar

Index Terms

  1. Adaptive code unloading for resource-constrained JVMs

      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
      • Published in

        cover image ACM Conferences
        LCTES '04: Proceedings of the 2004 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
        June 2004
        276 pages
        ISBN:1581138067
        DOI:10.1145/997163
        • cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 39, Issue 7
          LCTES '04
          July 2004
          265 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/998300
          Issue’s Table of Contents

        Copyright © 2004 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 11 June 2004

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        Overall Acceptance Rate116of438submissions,26%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader