27
An Overview of Virtual Machine Architectures H.L.S 2010-3-31

An overview of virtual machine architectures

Embed Size (px)

Citation preview

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