1.7 The Rest of the Book
two major sections
- process virtual machines
- system virtual machines
instruction set emulation is an important enabling technology for many virtual machine implementations.
Chapter 2.
Emulation
- interpretation ( guest instructions are emulated one by one in a simple fashion )
- binary translation (blocks of guest instructions are translated to the ISA of the host platform and saved for multiple executions )
In many of the VM implementations, the need to use emulation is obvious ( even in cases where the guest and host ISAs are same).
** case study : the Shade simulation system
Chapter 3. uses emulation as a starting point and describes the overall architecture and implementation of process VMs.
- the management of cached binary translations
- the handling of complicating issues such as precise traps and self-modifying code.
** case study : DEC/Compaq FX!32 system
Chapter 4.
Performance is almost always an issue in VM implementations because performance is often lost during the emulation process. This loss can be mitigated by optimizing translated binaries.
Chapter 4 deals with ways of dynamically optimizing translated code.
- ways of increasing the size of translated code blocks are discussed,
- then specific code optimizations are covered.
Code optimizations
- reordering instructions ( to improve pipeline efficiency )
- a number of classical compiler optimizations
special-case features of same-ISA dynamic binary optimizers
**case study: HP Dynamo system
Chapter 5, 6 discuss high-level language VMs ( enable platform independence )
chapter5 : P-code , JVM, CLI
chapter6 : implementation of HLL VMs
basic implementation -> high performance implementation
**case study : IBM Jikes research virtual machine
Chapter 7.
Codesigned VMs ( special hardware support to enhance emulation performance )
- focused on hardware-based performance enhancements.
Chapter 4.
Performance is almost always an issue in VM implementations because performance is often lost during the emulation process. This loss can be mitigated by optimizing translated binaries.
Chapter 4 deals with ways of dynamically optimizing translated code.
- ways of increasing the size of translated code blocks are discussed,
- then specific code optimizations are covered.
Code optimizations
- reordering instructions ( to improve pipeline efficiency )
- a number of classical compiler optimizations
special-case features of same-ISA dynamic binary optimizers
**case study: HP Dynamo system
Chapter 5, 6 discuss high-level language VMs ( enable platform independence )
chapter5 : P-code , JVM, CLI
chapter6 : implementation of HLL VMs
basic implementation -> high performance implementation
**case study : IBM Jikes research virtual machine
Chapter 7.
Codesigned VMs ( special hardware support to enhance emulation performance )
- focused on hardware-based performance enhancements.
**case study : Transmeta Crusoe and IBM AS/400 system
Chapter 8. covers conventional system VMs ( support multiple operating systems simultaneously, primarily relying on software techniques )
discussed
- Basic mechanisms for implementing system VMs
- enhancing their performance
Some ISAs are easier to virtualize than others, so features of instruction sets that make them more efficiently virtualized are discussed
**case study: IBM 360-390+, VMware hosted virtual machine
Chapter 9.
Applying virtualization to multiprocessor systems.
Major interest : partitioning of resources in large shared-memory multiprocessors to form a number of smaller, virtual multiprocessors.
- implemented in a number of ways ( microcode support , purely software solutions )
ISA emulation in a multiprocessor context
- most emulation techniques are the same as with uniprocessors,
- But, memory-ordering(consistency) constraints pose some new problems.
**case study : LPAR ( IBM logical partitioning ) , Stanford Disco research VM
Chapter 10. looks toward the future and considers a number of evolving VM applications that hold promise. ( support for system security, grid computing, and virtual system portability )
Chapter 8. covers conventional system VMs ( support multiple operating systems simultaneously, primarily relying on software techniques )
discussed
- Basic mechanisms for implementing system VMs
- enhancing their performance
Some ISAs are easier to virtualize than others, so features of instruction sets that make them more efficiently virtualized are discussed
**case study: IBM 360-390+, VMware hosted virtual machine
Chapter 9.
Applying virtualization to multiprocessor systems.
Major interest : partitioning of resources in large shared-memory multiprocessors to form a number of smaller, virtual multiprocessors.
- implemented in a number of ways ( microcode support , purely software solutions )
ISA emulation in a multiprocessor context
- most emulation techniques are the same as with uniprocessors,
- But, memory-ordering(consistency) constraints pose some new problems.
**case study : LPAR ( IBM logical partitioning ) , Stanford Disco research VM
Chapter 10. looks toward the future and considers a number of evolving VM applications that hold promise. ( support for system security, grid computing, and virtual system portability )
ps. 스터디 방향을 잡는데 조금이나마 도움 되셨으면 합니다. :D
댓글 3
.
책의 구조를 한눈에 볼수 있는 깔끔한 정리입니다. 감사합니다.