Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2151024.2151048acmconferencesArticle/Chapter ViewAbstractPublication PagesveeConference Proceedingsconference-collections
research-article

Unpicking the knot: teasing apart VM/application interdependencies

Published: 03 March 2012 Publication History

Abstract

Flexible and efficient runtime design requires an understanding of the dependencies among the components internal to the runtime and those between the application and the runtime. These dependencies are frequently unclear. This problem exists in all runtime design, and is most vivid in a metacircular runtime --- one that is implemented in terms of itself. Metacircularity blurs boundaries between application and runtime implementation, making it harder to understand and make guarantees about overall system behavior, affecting isolation, security, and resource management, as well as reducing opportunities for optimization. Our goal is to shed new light on VM interdependencies, helping all VM designers understand these dependencies and thereby engineer better runtimes. We explore these issues in the context of a high-performance Java-in-Java virtual machine. Our approach is to identify and instrument transition points into and within the runtime, which allows us to establish a dynamic execution context. Our contributions are: 1) implementing and measuring a system that dynamically maintains execution context with very low overhead, 2) demonstrating that such a framework can be used to improve the software engineering of an existing runtime, and 3) analyzing the behavior and runtime characteristics of our runtime across a wide range of benchmarks. Our solution provides clarity about execution state and allowable transitions, making it easier to develop, debug, and understand managed runtimes.

References

[1]
B. Alpern, C. R. Attanasio, A. Cocchi, D. Lieber, S. Smith, T. Ngo, J. J. Barton, S. F. Hummel, J. C. Sheperd, and M. Mergen. Implementing Jalapeno in Java. In Proceedings of the 14th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA '99, pages 314--324. ACM, 1999.
[2]
B. Alpern, M. Butrico, A. Cocchi, J. Dolby, S. Fink, D. Grove, and T. Ngo. Experiences Porting the Jikes RVM to Linux/IA32. In Proceedings of the 2nd Java(TM) Virtual Machine Research and Technology Symposium, JVM '02, pages 51--64. USENIX Association, 2002.
[3]
Apache. DRLVM -- Dynamic Runtime Layer Virtual Machine. http://harmony.apache.org/subcomponents/drlvm/.
[4]
G. Back, W. C. Hsieh, and J. Lepreau. Processes in KaffeOS: Isolation, Resource Management, and Sharing in Java. In In Proceedings of the 4th Symposium on Operating Systems Design and Implementation, OSDI 2000, pages 333--346, 2000.
[5]
S. M. Blackburn and K. S. McKinley. Immix: A Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance. In Proceedings of the 2008 ACM SIGPLAN conference on Programming Language Design and Implementation, PLDI '08, pages 22--32. ACM, 2008.
[6]
S. M. Blackburn, P. Cheng, and K. S. McKinley. Oil and Water? High Performance Garbage Collection in Java with MMTk. In Proceedings of the 26th International Conference on Software Engineering, ICSE '04, pages 137--146. IEEE Computer Society, 2004.
[7]
VanDrunen, von Dincklage, and Wiedermann}Blackburn:2006fkS. M. Blackburn, R. Garner, C. Hoffmann, A. M. Khang, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanović, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo Benchmarks: Java Benchmarking Development and Analysis. In Proceedings of the 21st annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA '06, pages 169--190. ACM, 2006.
[8]
S. M. Blackburn, S. I. Salishev, M. Danilov, O. A. Mokhovikov, A. A. Nashatyrev, P. A. Novodvorsky, V. I. Bogdanov, X. F. Li, and D. Ushakov. The Moxie JVM experience. Technical Report TR-CS-08-01, Australian National University, Department of Computer Science, May 2008.
[9]
D. R. Cheriton and K. J. Duda. A Caching Model of Operating System Kernel Functionality. In Proceedings of the First Symposium on Operating Systems Design and Implementation, pages 179--193. USENIX Association, 1994.
[10]
D. Frampton, S. M. Blackburn, P. Cheng, R. J. Garner, D. Grove, J. E. B. Moss, and S. I. Salishev. Demystifying Magic: High-level Low-level Programming. In Proceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, VEE '09, pages 81--90. ACM, 2009.
[11]
G. Hunt, J. Larus, M. Abadi, M. Aiken, P. Barham, M. Fahndrich, C. Hawblitzel, O. Hodson, S. Levi, N. Murphy, B. Steensgaard, D. Tarditi, T. Wobber, and B. Zill. An overview of the Singularity project. Technical Report MSR-TR-2005--135, Microsoft Research, 2005.
[12]
K. Ogata, D. Mikurube, K. Kawachiya, S. Trent, and T. Onodera. A Study of Java's non-Java Memory. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA '10, pages 191--204. ACM, 2010.
[13]
K. Palacz, J. Baker, C. Flack, C. Grothoff, H. Yamauchi, and J. Vitek. Engineering a Common Intermediate Representation for the Ovm Framework. Science of Computer Programming, 57: 357--378, September 2005.
[14]
E. Prangsma. Why Java is practical for modern operating systems, 2005. Presentation only. See http://www.jnode.org.
[15]
A. Rigo and S. Pedroni. PyPy's Approach to Virtual Machine Construction. In Companion to the 21st ACM SIGPLAN Symposium on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA '06, pages 944--953. ACM, 2006.
[16]
D. Simon, C. Cifuentes, D. Cleal, J. Daniels, and D. White. Java on the Bare Metal of Wireless Sensor Devices: The Squawk Java Virtual Machine. In Proceedings of the 2nd International Conference on Virtual Execution Environments, VEE '06, pages 78--88. ACM, 2006.
[17]
}Corporation:2006vnStandard Performance Evaluation Corporation. Specjvm98. http://www.spec.org/jvm98/.
[18]
Sun Microsystems. Maxine Research Project. http://research.sun.com/projects/maxine/.
[19]
D. Ungar, A. Spitz, and A. Ausch. Constructing a Metacircular Virtual Machine in an Exploratory Programming Environment. In Companion to the 20th annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA '05, pages 11--20. ACM, 2005.

Cited By

View all
  • (2015)Efficient Deterministic Replay of Multithreaded Executions in a Managed Language Virtual MachineProceedings of the Principles and Practices of Programming on The Java Platform10.1145/2807426.2807434(90-101)Online publication date: 8-Sep-2015
  • (2012)S-RVMProceedings of the sixth ACM workshop on Virtual machines and intermediate languages10.1145/2414740.2414745(13-22)Online publication date: 21-Oct-2012
  • (2015)Efficient Deterministic Replay of Multithreaded Executions in a Managed Language Virtual MachineProceedings of the Principles and Practices of Programming on The Java Platform10.1145/2807426.2807434(90-101)Online publication date: 8-Sep-2015

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
VEE '12: Proceedings of the 8th ACM SIGPLAN/SIGOPS conference on Virtual Execution Environments
March 2012
248 pages
ISBN:9781450311762
DOI:10.1145/2151024
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 47, Issue 7
    VEE '12
    July 2012
    229 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2365864
    Issue’s Table of Contents
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: 03 March 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. dependency
  2. isolation
  3. metacircular
  4. virtual machine

Qualifiers

  • Research-article

Conference

VEE '12

Acceptance Rates

Overall Acceptance Rate 80 of 235 submissions, 34%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)1
Reflects downloads up to 14 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2015)Efficient Deterministic Replay of Multithreaded Executions in a Managed Language Virtual MachineProceedings of the Principles and Practices of Programming on The Java Platform10.1145/2807426.2807434(90-101)Online publication date: 8-Sep-2015
  • (2012)S-RVMProceedings of the sixth ACM workshop on Virtual machines and intermediate languages10.1145/2414740.2414745(13-22)Online publication date: 21-Oct-2012
  • (2015)Efficient Deterministic Replay of Multithreaded Executions in a Managed Language Virtual MachineProceedings of the Principles and Practices of Programming on The Java Platform10.1145/2807426.2807434(90-101)Online publication date: 8-Sep-2015

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media