SlideShare a Scribd company logo
An Overview of Virtual Machine Architectures H.L.S 2010-3-31
Organization of This PPT Standardized Computer System Components:  A Two-Edged Sword Virtual Machine Basics Process VMs System Virtual Machines Virtualization Summary and a Taxonomy
Standardized Computer System Components:  A Two-Edged Sword 优点 基本的系统设计任务相分离 软件和硬件设计人员的工作相对独立。 缺点 软件兼容性差 创新受到限制 难以通过接口优化系统性能 迫使用户使用单一 OS ,容易暴露系统安全漏洞
优点 软硬件开发人员的任务是相互分开的,甚至可以在相隔很远的时间里进行。 硬件设计人员不需要知道软件开发人员的工作,软件开发人员也只需要知道硬件的接口。 同一款软件可以跑在不同的硬件之上,只要硬件实现了同样的指令集架构。
缺点 兼容性问题:网络即计算机,但是不同的操作系统之间软件不兼容,因此无法实现这个想法。 为了支持老的硬件接口,实现新的软件的想法可能会受阻。设计新的硬件时,为了支持老的指令特性,新硬件的功能也可能受阻。 不同的开发人员需要不同的软硬件接口,当他们需要交流以优化性能时,问题出现了,因为他们平时谁也不了解谁的工作及各自使用的软硬件接口。 在传统的计算机上,通常很多用户共用一台机器,这是个分时系统。但,每个用户通常独立使用软件。这使得共享系统的软件很难满足条件,容易暴露出系统的安全漏洞。
 
Virtual Machine Basics 虚拟机能够将一种硬件系统的指令集架构转换成另一种指令集架构,使得系统能够运行为另一种硬件开发的软件。
四种虚拟机应用程序 (a) 在同一硬件平台上模拟另一种指令集架构 (b) 针对同一指令集架构优化应用程序 (c) 复制虚拟机,以支持多操作系统同步 (d) 前三种方式的组合,更复杂且更具有灵活性
Process VMs and System VMs Process VMs :使用内存空间,用户级寄存器和指令集;存储设备为授权访问的文件;通过系统调用与 I/O 接口交互。 System VMs :同时支持属于不同用户的多个进程,所有进程共享一个文件系统和其它 I/O 设备。系统为进程分配内存及其它 I/O 资源,允许系统通过 OS 使用资源交互。
虚拟机实现之系统接口 (a)Instruction Set Architecture(ISA) interface :包含系统和用户 ISA (b)Application Binary Interface(ABI) :包含用户 ISA ,应用程序要调用系统 ISA 只能通过操作系统的系统调用来完成
Process VMs Multiprogramming Emulation and Dynamic Binary Translators Dynamic Optimizers High Level VMs: Complete Platform Independence
Multiprogramming 多道程序设计给每个用户程序一种独立拥有整台机器的感觉。 从系统角度讲, OS 能够虚拟出无数个机器给用户。
Emulation and Dynamic Binary Translators Emulation:  Intel x86 平台上的 Windows 应用程序不能运行在 Alpha 平台上的 Windows 下。 FX!32 系统解决了此问题。 Dynamic Binary Translators: 解释型模拟方法:启动负载小,但是指令的模拟耗时。 二进制转换型模拟方法:启动负载大,指令的执行速度快。
Dynamic Optimizers 源代码转换成目标代码的时候,常常需要优化。 由于宿主系统和客户系统使用的指令集架构是一样的,优化程序时这种虚拟机的唯一目的。 实现优化的动态转换器跟起模拟作用的虚拟机非常相似,包括阶段性优化以及优化代码的缓存。
High Level VMs: Complete Platform Independence (a) 高级语言代码被编译成中间码 针对特定平台,中间码被编译成目标代码 目标代码在特定平台运行 (b) 高级语言被编译成可移植代码 虚拟机装载可移植代码 可移植代码被虚拟机解释或者编译成宿主机器指令
 
Advantages 只要虚拟机能够在目标平台上实现,软件可完全移植 比在每个平台上开发一个编译器,然后将高级语言代码移植到该平台上要简单的多。 比开发一个针对特定硬件平台指令集架构的常规实现模拟功能的进程虚拟机要简单的多。
Example: Java VM Java 语言代码转换成 Java 字节码。 Java 字节码只在 Java VM 虚拟机上执行,与底层软硬件平台是无关的。 只要在各种软硬件平台上实现了 Java VM ,编译成的 Java 字节码就可以被各种平台的 Java 虚拟机 ( 解释 ) 执行。
System VMs Implementation of System VMs Whole System VMs: Emulation Co-Designed VMs: Optimization
Implementation of System VMs System 虚拟机的功能大同小异,区别他们的较好的方法就是看实现它们的方式。 Virtual Machine Monitor(VMM) 直接放在硬件之上,客户 OS 可以完全透明的与硬件打交道。缺点有: 安装麻烦:即要从头至尾安装 VMM ,还要安装 N 个客户 OS I/O 设备的驱动程序需要在 VMM 层安装,因为直接与硬件打交道的是 VMM ,而非客户 OS 。 硬件上装有宿主 OS , VMM 安装在宿主 OS 里,然后再在 VMM 里安装若干客户 OS 。缺点是客户 OS 性能丢失。主要优点有: VMM 是宿主系统里的一个应用程序,容易安装。 客户 OS 通过宿主 OS 的 I/O 驱动程序与硬件交互, VMM 里不需要安装 I/O 驱动程序。
Whole System VMs: Emulation VM 支持运行整个操作系统及其应用程序。 在两种系统所需的底层硬件架构很不同的情况下不容易实现,因为 VM 不能直接控制底层硬件,只能使用宿主 OS 的系统调用。
Co-Designed VMs: Optimization 提升性能并不是目标,事实上,尽量减少性能损耗才是性能目标。 Co-Designed 虚拟机的目标是使用新的指令集架构及硬件来实现性能的提升以及能耗的有效利用。 从宿主系统看来,虚拟机软件是硬件的一部分。虚拟机的软件部分将隐藏一部分内存,使得系统及应用软件对这部分内存是不可见的。 任何时刻,隐藏在“不可见”内存部分的虚拟机软件都可以控制整个计算机硬件。因此,客户指令可以直接通过虚拟机直接转换成本地指令,也可以的达到优化性能的目的。 通过监视硬件中的数据,虚拟机还可以分析系统性能。通过重新配置资源,可以优化性格或者节省功耗。若某部分由错误,虚拟机还可以将其屏蔽,让客户系统感觉错误不存在一样。
Virtualization 硬件状态到指令状态的映射
Guest state  到  Host stage  的映射
Process VMs
System VMs
Summary and a Taxonomy

More Related Content

PPT
Jobforcompal
DOC
X86平台三种不同的虚拟化之路
PPT
Vcon90 Final
PPT
Hyper V Final
PPT
Infoship业务集成平台简介
PDF
On Optimization of Network-coded Scalable Multimedia Service Multicasting
PPTX
Optimal configuration of network coding in ad hoc networks
PPTX
Raptor codes
Jobforcompal
X86平台三种不同的虚拟化之路
Vcon90 Final
Hyper V Final
Infoship业务集成平台简介
On Optimization of Network-coded Scalable Multimedia Service Multicasting
Optimal configuration of network coding in ad hoc networks
Raptor codes

Similar to An overview of virtual machine architectures (20)

DOCX
zhuwenlongChinese
PPT
SWsoft_Prim@Telecom
PPTX
Windows Azure Virtual Machine Services for Developers
PDF
It基础架构的自动化编排
PPT
教學投影片01_Vb2005
PDF
Ezilla
PDF
[嵌入式系統] 嵌入式系統進階
PDF
IBM PureFlex (Traditional Chinese)
PDF
實踐 Clean Architecture(實作高可用性的軟件架構)
PPT
0506 Windows Server 2008 終端機服務
PPTX
Android JNI
PPT
PPTX
VCACICM6_M05_Blueprints_and_Catalog Services.pptx
PPT
1~60
PPT
虚拟化介绍201012
PDF
深入研究雲端應用程式平台-AppFabric
PDF
VSCode Remote Development 介紹
zhuwenlongChinese
SWsoft_Prim@Telecom
Windows Azure Virtual Machine Services for Developers
It基础架构的自动化编排
教學投影片01_Vb2005
Ezilla
[嵌入式系統] 嵌入式系統進階
IBM PureFlex (Traditional Chinese)
實踐 Clean Architecture(實作高可用性的軟件架構)
0506 Windows Server 2008 終端機服務
Android JNI
VCACICM6_M05_Blueprints_and_Catalog Services.pptx
1~60
虚拟化介绍201012
深入研究雲端應用程式平台-AppFabric
VSCode Remote Development 介紹
Ad

An overview of virtual machine architectures