虚拟化的三种方式:多路复用、聚合和模拟
虚拟化的三种方式:多路复用、聚合和模拟
虚拟化技术是现代计算机科学领域的重要组成部分,它通过让公开的虚拟资源等同于被虚拟化的底层物理资源,实现了资源的高效利用和管理。虚拟化技术在硬件、软件和嵌入式子系统中都有广泛的应用,其核心实现方式主要包括三种:多路复用、聚合和模拟。本文将详细介绍这三种虚拟化技术的基本原理和应用场景。
多路复用
多路复用技术的主要目的是在多个虚拟实体之间共享物理资源。根据复用方式的不同,可以将其分为空间复用和时间复用两种类型。
空间复用:通过将物理资源在空间上划分为多个虚拟实体来实现复用。例如,操作系统通过跨不同地址空间对物理内存的不同页面进行多路复用。为了实现这一目标,操作系统需要统一管理虚拟到物理的地址映射,并依赖于内存管理单元(MMU)提供的体系结构支持。
时间复用:通过在虚拟实体之间分时调度相同的物理资源来实现复用。例如,操作系统调度器将CPU内核和硬件线程多路复用到一组可运行的进程中。通过上下文切换操作将处理器的寄存器文件的状态保存在与传出进程相关联的内存中,然后从与传入进程相关联的内存位置恢复该寄存器文件的状态。
图1 多路复用
聚合
聚合技术与多路复用恰恰相反,它获取多个物理资源,将它们组合起来,并使它们看起来像是单个抽象资源。例如,RAID控制器将多个磁盘聚合成单个卷。在配置完成后,RAID控制器将确保对卷的所有读写操作都恰当分配到RAID组的各个磁盘上。这样的话,操作系统将文件系统格式化到卷上,就不必担心布局和编码的细节。在不同的域中,处理器的内存控制器将多个DIMM的容量聚合到一个物理地址空间中,然后由操作系统统一管理。
图2 聚合
模拟
模拟技术依赖于软件中的间接层来搭建与物理设备相对应的虚拟化资源或设备,即使该虚拟资源实际不存在于当前的计算机物理系统中。跨架构模拟器是在一个处理器架构上运行另一个处理器架构,例如,Apple Rosetta在x86计算机上模拟PowerPC处理器以实现向后兼容,比如在图(c)中X是x86,Y是PowerPC。
图3 模拟
结语
多路复用、聚合和模拟可以自然地组合在一起,形成各种形式的虚拟化实现。特别是几乎所有的虚拟机管理程序(Hypervisor)都是多路复用和模拟的组合。这些技术的结合使用,使得虚拟化技术在现代计算机系统中发挥着越来越重要的作用。