skip to main content
10.1145/1411732.1411749acmconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
research-article

Slim VM: optimistic partial program loading for connected embedded Java virtual machines

Published: 09 September 2008 Publication History

Abstract

Embedded systems are inherently limited in terms of local storage capacity. This limitation conflicts with the demands of modern virtual machine platforms, which require large amounts of library code to be present on each client device. These conflicting requirements are often resolved by providing specialized embedded versions of the standard libraries, but even these stripped down libraries consume significant resources.
We present a solution for "always connected" mobile devices that is based on a zero footprint paradigm. In our approach, all code resides on a remote host. Only those parts of applications and libraries that are likely to be needed are transferred to the mobile device. Since it is difficult to predict statically which library parts will be needed at runtime, we combine static analysis and lazy code loading to transfer code with a high likelihood of execution ahead of time while other code (such as exception code) remains on the remote host and is provided only on demand. This allows us to perform not only dead code elimination, but also aggressive elimination of cold (or potentially unused) code.
The granularity of our approach is flexible all the way down to individual basic blocks. Our method achieves total code size reductions of up to 95%.

References

[1]
D. N. Antonioli and M. Pilz. Analysis of the Java Class File Format. ifi-98.04, Department of Computer Science, University of Zurich, Apr.28 1998.
[2]
Q. Bradley, R. N. Horspool, and J. Vitek. JAZZ: An Efficient Compressed Format for Java Archive Files. In CASCON '98: Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research, page 7. IBM Press, 1998.
[3]
J. A. Butts and G. Sohi. Dynamic Dead-Instruction Detection and Elimination. In ASPLOS-X: Proceedings of the 10th international conference on Architectural support for programming languages and operating systems, pages 199--210, New York, NY, USA, 2002. ACM Press.
[4]
L. R. Clausen. A Java Bytecode Optimizer Using Side-Effect Analysis. Concurrency: Practice and Experience, 9(11):1031--1045, 1997.
[5]
L. R. Clausen, U. P. Schultz, C. Consel, and G. Muller. Java Bytecode Compression for Low-End Embedded Systems. ACM Trans. Program. Lang. Syst., 22(3):471--489, 2000.
[6]
M. Dahm. Byte Code Engineering Library (BCEL) http://jakarta.apache.org/bcel/, 2001.
[7]
J. Ernst, W. Evans, C. W. Fraser, T. A. Proebsting, and S. Lucco. Code Compression. In PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation, pages 358--365, New York, NY, USA, 1997. ACM Press.
[8]
M. Franz and T. Kistler. Slim Binaries. Communications of the ACM, 40(12):87--94, December 1997. Also published as Technical Report TR 96--24, Department of Information and Computer Science, University of California, Irvine, June 1996.
[9]
J. Gosling, B. Joy, and G. Stelle. The Java Language Specification. The Java Series, Reading, MA: Addison-Wesley, ---c1996, 1996.
[10]
W. P. John Rose, Kumar Srinivasan. JSR 200: Network Transfer Format for JavaTM Archives, September 2004.
[11]
C. Krintz, B. Calder, H. B. Lee, and B. G. Zorn. Overlapping Execution with Transfer Using Non-Strict Execution for Mobile Programs. In ASPLOS-VIII: Proceedings of the eighth international conference on Architectural support for programming languages and operating systems, pages 159--169, New York, NY, USA, 1998. ACM.
[12]
J. A. Mathew, P. D. Coddington, and K. A. Hawick. Analysis and Development of Java Grande Benchmarks. In Proc. of the ACM 1999 Java Grande Conference, San Francisco., 1999.
[13]
W. Pugh. Compressing Java Class Files. In PLDI '99: Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation, pages 247--258, New York, NY, USA, 1999. ACM Press.
[14]
D. Rayside and K. Kontogiannis. Extracting Java Library Subsets for Deployment on Embedded Systems. csmr, 00:102, 1999.
[15]
D. Rayside, E. Mamas, and E. Hons. Compact Java Binaries for Embedded Systems. In CASCON '99: Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research, page 9. IBM Press, 1999.
[16]
N. Richards. HelloWorld! in 70 Bytes http://www2.sys-con.com/ITSG/virtualcd/java/archives/0707/richards/index.html, 2004.
[17]
C. H. Stork. Well: A Language-Agnostic Foundation for Compact and Inherently Safe Mobile Code. PhD thesis, University of California, Irvine, School of Information and Computer Science, Irvine, CA, USA, 2006. Adviser-Michael Franz.
[18]
Sun Microsystems. KVM - Kilobyte Virtual Machine White Paper. http://java.sun.com/products/kvm/wp/. Palo Alto, CA, USA, 1999.
[19]
P. F. Sweeney and F. Tip. Extracting Library-Based Object-Oriented Applications. In SIGSOFT '00/FSE-8: Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering, pages 98--107, New York, NY, USA, 2000. ACM Press.
[20]
F. Tip, P. F. Sweeney, and C. Laffra. Extracting Library-Based Java Applications. Commun. ACM, 46(8):35--40, 2003.
[21]
F. Tip, P. F. Sweeney, C. Laffra, A. Eisma, and D. Streeter. Practical Extraction Techniques for Java. ACM Trans. Program. Lang. Syst., 24(6):625--666, 2002.
[22]
Y.-S. Yang, M. sik Jin, S.-I. Jun, and M.-S. Jung. A Study on an Efficient Pre-Resolution Method for Embedded Java System. Virtual Environments, Human-Computer Interfaces and Measurement Systems, pages 20--24, July 2004.

Cited By

View all
  • (2011)Efficient incremental information flow control with nested control regionsProceedings of the 1st ACM SIGPLAN international workshop on Programming language and systems technologies for internet clients10.1145/2093328.2093332(19-28)Online publication date: 24-Oct-2011
  • (2009)SlimVMProceedings of the 7th International Conference on Principles and Practice of Programming in Java10.1145/1596655.1596678(133-142)Online publication date: 27-Aug-2009

Index Terms

  1. Slim VM: optimistic partial program loading for connected embedded Java virtual machines

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      PPPJ '08: Proceedings of the 6th international symposium on Principles and practice of programming in Java
      September 2008
      198 pages
      ISBN:9781605582238
      DOI:10.1145/1411732
      • Conference Chairs:
      • Luis Veiga,
      • Vasco Amaral
      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]

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 09 September 2008

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. Java virtual machine
      2. cold code removal
      3. embedded connected devices
      4. just-in-time compilation

      Qualifiers

      • Research-article

      Conference

      PPPJ08
      Sponsor:

      Acceptance Rates

      Overall Acceptance Rate 29 of 58 submissions, 50%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)3
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 07 Mar 2025

      Other Metrics

      Citations

      Cited By

      View all
      • (2011)Efficient incremental information flow control with nested control regionsProceedings of the 1st ACM SIGPLAN international workshop on Programming language and systems technologies for internet clients10.1145/2093328.2093332(19-28)Online publication date: 24-Oct-2011
      • (2009)SlimVMProceedings of the 7th International Conference on Principles and Practice of Programming in Java10.1145/1596655.1596678(133-142)Online publication date: 27-Aug-2009

      View Options

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Figures

      Tables

      Media

      Share

      Share

      Share this Publication link

      Share on social media