Unpicking the knot: Teasing apart VM/application interdependencies

Yi Lin, Stephen M. Blackburn, Daniel Frampton

    Research output: Contribution to journalArticlepeer-review

    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.

    Original languageEnglish
    Pages (from-to)181-190
    Number of pages10
    JournalACM SIGPLAN Notices
    Volume47
    Issue number7
    DOIs
    Publication statusPublished - Sept 2012

    Fingerprint

    Dive into the research topics of 'Unpicking the knot: Teasing apart VM/application interdependencies'. Together they form a unique fingerprint.

    Cite this