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.
Table of Contents
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.
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.