第三章 虚拟化概述(I/O虚拟化)

本文详细介绍了虚拟化环境中的I/O虚拟化,包括概述、设备发现、访问截获、设备模拟和设备共享。通过VMM(虚拟机管理程序)拦截并模拟客户机操作系统对设备的访问,实现对有限外设资源的有效复用。讨论了I/O端口、MMIO和中断的拦截方法,以及如何模拟物理总线上的设备和完全虚拟的设备。I/O虚拟化利用处理器虚拟化技术,通过前端和后端驱动模型减少上下文切换,提高性能。文章还提到了IOMMU、Intel VT-d和PCI-SIG SR-IOV等技术在I/O虚拟化中的作用,实现了物理设备在不同虚拟机间的共享。
摘要由CSDN通过智能技术生成

        外设资源是有限的,为了满足多个客户机操作系统的需求,VMM必须通过I/O虚拟化的方式来复用有限的外部资源。VMM截获客户机操作系统对设备的访问请求,然后通过软件的方式来模拟真实设备的效果。从处理器角度看,外设是通过一组I/O资源(端口I/O或者是MMIO)来进行访问的,对设备相关的虚拟化又被称为I/O虚拟化。

一、概述

        首先分析一下没有虚拟化的情况。给定一个外设,定义有自己的一套供软件访问的接口,这些接口的属性可能是单向的,也可能是双向的。操作系统含有外设的驱动程序,它们接收来自其他模块(如用户进程)的请求,然后按照外设规定好的方式驱动外设完成特定的任务。由于处理器在计算机中的核心地位,因此外设的访问接口最终也会被映射到处理器所能认识的地址空间或者其他资源中。当驱动程序通过指令的方式访问外设接口时,处理器才能正确识别目标对象,然后将相关请求发送到系统总线上,最终由芯片组转发给目标外设。

        1、I/O端口寄存器。映射到I/O地址空间,通过in/out指令访问。当指令处于非最高特权级,只有通过I/O位图中的允许端口才可以访问。

        2、MMIO寄存器。映射到物理地址空间,通过页表的方式控制访问权限。

        3、中断。中断模块发出中断消息,通过芯片组中的中断控制器通知给处理器,最后处理器会中断当前指令流,跳到中断描述符表IDT中对应该向量的中断服务程序执行。

        I/O端口,MMIO与中断模块组成一个典型外设呈现给软件的基本资源。还有一个特殊模块DMA,它被映射到I/O端口或MMIO中。在虚拟环境中,I/O面临的问题是:现实中外设资源是有限的,为了满足多个客户机操作系统对外设访问的需求,VMM必须通过I/O虚拟化的方式复用有限的外设资源。在这种情况下,VMM所要做的还是模拟,即截获客户机操作系统对设备的访问请求,然后通过软件的方式模拟真实物理设备的效果。

        I/O虚拟化并不需要完整的虚拟化出所有外设的所有接口,究竟怎样做完全取决于设备与VMM的策略以及客户机操作系统的需求。

        1、虚拟芯片组。

        2、虚拟PCI总线布局。

        3、虚拟系统设备:PIC、IO-APIC、PIT、RTC

        4、虚拟基本输入输出设备:显卡、网卡、硬盘

        虚拟完毕后,只要客户操作系统中有驱动程序遵守该虚拟设备的接口定义,它就可以被客户操作系统所使用。

二、设备发现

        I/O虚拟化第一步,就是VMM提供一种方式,让客户机操作系统能够发现设备,这样客户机操作系统才能加载相关的驱动程序。设备被发现,取决于被虚拟的设备类型。

        模拟一个物理总线上的设备

        1、所处物理总线类型是不可枚举,而且设备本身所属的资源是硬编码固定下来的。例如:ISA设备、PS/2设备、

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值