Advanced Design and Implementation of Virtual Machines
- Length: 464 pages
- Edition: 1
- Language: English
- Publisher: CRC Press
- Publication Date: 2017-01-04
- ISBN-10: 146658260X
- ISBN-13: 9781466582606
- Sales Rank: #691407 (See Top 100 Books)
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.
Table of Contents
SECTION I: Basics of Virtual Machines
CHAPTER 1: Introduction of the Virtual Machine
CHAPTER 2: Inside of a Virtual Machine
CHAPTER 3: Data Structures in a Virtual Machine
SECTION II: Design of Virtual Machines
CHAPTER 4: Design of Execution Engine
CHAPTER 5: Design of Garbage Collection
CHAPTER 6: Design of Threading
SECTION III: Supports in Virtual Machine
CHAPTER 7: Native Interface
CHAPTER 8: Stack Unwinding
CHAPTER 9: Garbage Collection Support
CHAPTER 10: Runtime-Helpers
CHAPTER 11: Exception-Throwing
CHAPTER 12: Finalization and Weak References
CHAPTER 13: Modularity Design of VM
SECTION IV: Optimizations of Garbage Collection
CHAPTER 14: Optimizing GC for Throughput
CHAPTER 15: Optimizing GC for Scalability
CHAPTER 16: Optimizing GC for Responsiveness
CHAPTER 17: Concurrent Moving Collection
SECTION V: Optimizations of Thread Interactions
CHAPTER 18: Optimizing Monitor Performance
CHAPTER 19: Hardware Transactional Memory (HTM)-Based Design