Virtual Machine Monitors Current Technology And Future Trends虚拟机监控当前技术与未来趋势.pptVIP

  • 14
  • 0
  • 约 60页
  • 2017-03-09 发布于上海
  • 举报

Virtual Machine Monitors Current Technology And Future Trends虚拟机监控当前技术与未来趋势.ppt

Virtual Machine Monitors Current Technology And Future Trends虚拟机监控当前技术与未来趋势

Example: Disable Interrupts [1] If a guest OS tries to disable interrupts, the instruction is trapped by the VMM which makes a note that interrupts are disabled for that virtual machine If interrupts arrive for that machine, they are buffered at the VMM layer until the guest OS enables interrupts. Other interrupts are directed to VMs that have not disabled them. Direct Execution Not Always Possible Modern CPUs, esp. x86 architectures, have not been designed for virtualization. Example: POPF (pop CPU flags from stack) If executed in user mode, no trap – it’s just ignored by the hardware In this case, direct execution fails – Guest OS assumes flags have been popped, but they haven’t been because the VMM isn’t notified. Two Ways to Handle Non-virtualizable Instructions Paravitualization Xen, Denali Binary Translation VMware Both use the same basic approach: catch non-virtualizable instructions and emulate them in software at the VMM level. Paravirtualization Rewrite portions of the guest OS to replace non-virtualizable instructions with a trap the VMM, which emulates the instruction on behalf of the guest OS e.g., remove POPFs; substitute something else Paravirtualization affects the guest OS, but not applications that run on it – the API is unchanged Paravirtualization is also used sometimes to replace inefficient operations with more efficient ones. Binary Translation Instead of modifying the OS, detect these instructions at runtime. VMware’s approach: The DBT (dynamic binary translator) controls execution of kernel code - replaces non-virtualizable instructions with equivalent code that can be virtualized. Once translated, code is saved and used again if needed. Comparison Paravirtualization changes the source code of a guest OS; binary translation changes the binary code as it executes. Paravirtualization is more efficient, but requires modification to the guest OS Paravirtualization also allows more efficient interfaces, in some cases Binary translation is b

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档