虚拟化的三种方式

  • 2小时前

1.前言

Virtualization(虚拟化)是让公开的虚拟资源等同于被虚拟化的底层物理资源。虚拟化在各个领域应用很广泛,不局限于计算机科学领域。无论是在硬件软件还是在嵌入式子系统中,虚拟化总是使用或组合三种简单的技术来实现的:多路复用(Multiplexing)聚合(Aggregation)模拟(Emulation)

2.多路复用

多路复用目的是在多个虚拟实体之间复用物理资源。有两种类型的多路复用:空间复用时间复用

通过空间复用,物理资源(在空间上)被划分为多个虚拟实体。例如操作系统跨不同地址空间对物理内存的不同页面进行多路复用。为了实现这一目标,操作系统要统一管理虚拟到物理的地址映射,并依赖于MMU提供的体系结构支持。

通过时间复用,可以在虚拟实体之间分时调度相同的物理资源。例如,操作系统调度器将CPU内核和硬件线程多路复用到一组可运行的进程中。通过上下文切换操作将处理器寄存器文件的状态保存在与传出进程相关联的内存中,然后从与传入进程相关联的内存位置恢复该寄存器文件的状态。

图1 多路复用

3.聚合

聚合所做的与多路复用恰恰相反,它获取多个物理资源,把它们组合起来,并使它们看起来像是单个抽象。例如,RAID控制器将多个磁盘聚合成单个卷。在配置完成后,RAID控制器将确保对卷的所有读写操作都恰当分配到RAID组的各个磁盘上。

这样的话,操作系统将文件系统格式化到卷上,就不必担心布局和编码的细节。在不同的域中,处理器的内存控制器将多个DIMM的容量聚合到一个物理地址空间中,然后由操作系统统一管理。

图2 聚合

4.模拟

模拟依赖于软件中的间接层来搭建与物理设备相对应的虚拟化资源或设备,即使该虚拟资源实际不存在于当前的计算机物理系统中。跨架构模拟器是在一个处理器架构上运行另一个处理器架构,例如,Apple Rosetta在x86计算机上模拟PowerPC处理器以实现向后兼容,比如在图(c)中X是x86,Y是PowerPC。

图3 模拟

5.结语

多路复用、聚合和模拟可以自然地组合在一起,形成各种形式的虚拟化实现。特别是几乎所有的虚拟机管理程序(Hypervisor)都是多路复用和模拟的组合。

人工客服
(售后/吐槽/合作/交友)