1st Edition

Advanced Design and Implementation of Virtual Machines

By Xiao-Feng Li Copyright 2017
    464 Pages
    by CRC Press

    464 Pages 50 B/W Illustrations
    by CRC Press

    Along with the increasingly important runtime engines pervasive in our daily-life computing, there is a strong demand from the software community for a solid presentation on the design and implementation of modern virtual machines, including the Java virtual machine, JavaScript engine and Android execution engine. The community expects to see not only formal algorithm description, but also pragmatic code snippets; to understand not only research topics, but also engineering solutions. This book meets these demands by providing a unique description that combines high level design with low level implementations and academic advanced topics with commercial solutions.



    This book takes a holistic approach to the design of VM architecture, with contents organized into a consistent framework, introducing topics and algorithms in an easily understood step by step process. It focuses on the critical aspects of VM design, which are often overlooked in other works, such as runtime helpers, stack unwinding and native interface. The algorithms are fully illustrated in figures and implemented in easy to digest code snippets, making the abstract concepts tangible and programmable for system software developers.

    Basics of Virtual Machines: Introduction of the Virtual Machine. Inside of a Virtual Machine. Data Structures in a Virtual Machine.



    Design of Virtual Machines: Design of Execution Engine. Design of Garbage Collection. Design of Threading.



    Supports in Virtual Machine: Native Interface. Stack Unwinding. Garbage Collection Support. Runtime-Helpers. Exception-Throwing. Finalization and Weak References. Modularity Design of VM.



    Optimizations of Garbage Collection: Optimizing Garbage Collection for Throughput. Optimizing Garbage Collection for Scalability. Optimizing Garbage Collection for Responsiveness. Concurrent Moving Collection.



    Optimizations of Thread Interactions: Optimizing Monitor Performance. Hardware Transactional Memory (HTM)-Based Design.

    Biography

    Xiao-Feng Li has been working with Intel for 15 years, with extensive technical experience in parallel computing, operating system, compiler and runtime technologies. He was the major contributor to the JVM of Apache Harmony and the creator of a micro-kernel VM that later became Intel Micro Runtime. Xiao-Feng built and led a software lab on runtime technologies in Intel and published 20 academic papers in the related areas. Xiao-Feng holds a PhD degree in computer science.