`
izuoyan
  • 浏览: 8935126 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

虚拟化的内存和中断

阅读更多

我个人以为,在一台物理机器上运行虚拟机器,并且虚拟机器还和物理机器公用一套硬件,最复杂的东西只有两个,那就是内存管理和中断管理,对于内存管理,影子叶表已经解决了绝大多数的问题,对于中断问题,还有很多的不同的解决方案有待选择。
以x86系列处理器为例,当中断发生的时候,总是会有intr信号发送到cpu的,如果此时正在运行的是guest os的话既然guest os运行在ring1,那么很显然vmm会捕获到这个信号,那么既然vmm捕获到了这个信号,那么它肯定有办法将此信号转交于host os的中断处理程序,至于怎么转发,我想这不是问题,因为每一个设计者都会很好的处理这个问题的,有时间的话看看《设计原本》这本书吧!具体的技术细我我们不需要关注,最重要的是我们必须有一种我们自己的风格,这就是设计!,ring0可以捕获到ring1的操作,那么ring0就可以模拟ring1的任何操作。

下面是自我构思的一个vmm处理硬件中断的过程。设起初,机器在guest os中的用户态执行,突然间来了中断:
1.机器进入ring0,由于涉及了ring的切换,ss,esp,cs,eip均进行了切换,从guest os切换到了vmm
2.由于vmm映射了自己的idt,跳转到了vmm的中断处理程序
3.在vmm的中断处理程序中,将中断号记录在了vmm和host os共享的cross page中。
4.在host os的idt中查找中断向量n对应的处理地址,并且设置host os的cs,eip为此处理程序,并且将原始的host os保存的上下文(cs,eip,ss,esp)压入保存的host os的内核堆栈
5.切换回host os,自然跳入host os的中断处理程序
6.中断处理完毕,iret返回之前,决策调度,如需调度,则下列序列执行延迟,再次调度于此时执行,若否,则继续
7.iret返回,由于第四步压入堆栈的上下文,返回host os继续执行,vmx86run返回到host os vmware-vmx的用户空间,以后进入传统的轨道。
8.如再次切换到guest os,那么从2,3处的guest os上下文开始执行

由此可见,中断执行涉及的上下文切换异常消耗巨大,然而,如果不理清这个处理过程,再高效的事情又从何谈起呢?

分享到:
评论

相关推荐

    Xen虚拟化技术

    CPU虚拟化子系统主要包括虚拟CPU原理和结构、新架构下中断和异常处理机制的变化、时间和计时器相关操作,以及虚拟CPU的调度原理等;内存虚拟化子系统主要包括分页分段机制、内存分配和地址转换等;I/O设备虚拟化子...

    服务器虚拟化部署方案.doc

    虚拟化的建设方案相比以往传统建设思路需满足以下要求: 1) 减少计划内停机时间 通过使用虚拟机自动迁移功能 ,在进行计划内服务器维护以至跨服务器的虚拟机实时迁移时,将不再需要为这些活动 安排应用程序停机,...

    服务器虚拟化-&-超融合.docx

    服务器虚拟化 三大特性 提高利用率 通过将服务器物理资源抽象成逻辑资源,让一台服务器变成若干台相互隔离的虚拟服务器,或者让几台服务器变成一台服务器来用,不再受限于物理上的界限,而是让CPU、内存、磁盘、I/O...

    虚拟化平台\LINUX 查看MAC

    cat /proc/interrupts // 显示中断 cat /proc/meminfo //校验内存使用 cat /proc/swaps //显示哪些swap被使用 cat /proc/version //显示内核的版本 cat /proc/net/dev //显示网络适配器及统计 cat /proc/...

    服务器虚拟化部署方案(1).doc

    虚拟化的建设方案相比以往传统建设思路需满足以下要求: 1) 减少计划内停机时间 通过使用虚拟机自动迁移功能 ,在进行计划内服务器维护以至跨服务器的虚拟机实时迁移时,将不再需要为这些活动 安排应用程序停机,...

    java实现LRU虚拟内存替换算法.zip

    裸机硬件的仿真包括CPU、内存Memory、硬盘Disk、时钟、中断和MMU地址变换部件等设计与实现。其中CPU包含PC寄存器、PSW 寄存器、IR 寄存器等。内存Memory大小为32KB,每个物理块大小512B,共64个物理块。硬盘Disk大小...

    服务器虚拟化部署方案教程文件.doc

    虚拟化的建设方案相比以往传统建设思路需满足以下要求: 1) 减少计划内停机时间 通过使用虚拟机自动迁移功能 ,在进行计划内服务器维护以至跨服务器的虚拟机实时迁移时,将不再需要为这些活动 安排应用程序停机,...

    内存管理内存管理内存管理

    将是初始化内存分配程序的函数。它要完成以下三件事:将分配程序标识为已经初始化,找到系统中最后一个有效内存地址,然后建立起指向我们管理的内存的指针。这三个变量都是全局变量: 清单 1. 我们的简单分配...

    12丨内存虚拟化:云原生时代的奠基者1

    以 0x80 号中断为例,在第 2 节课里,我们使用 0x80 号中断,调用了 write 这个系统调用,在控制台上打印文字。"int 0x80"这条指令就是一

    基于硬件虚拟化的虚拟机内核完整性保护

    针对虚拟机内核完整性保护问题,提出了一种被动保护的方式,利用硬件虚拟化扩展机制截获特权指令、敏感指令和中断。为了保护内核数据、代码以及关键寄存器方面为关键的内核数据与代码创建隔离的IEPT页表并设置页表...

    游戏画面就弹出内存不能为read修复工具

    解决方法:Win XP的“预读取”技术这种最佳化技术也被用到了应用程序上,系统对每一个应用程序的前几次启动情况进行分析,然后新增一个描述套用需求的虚拟“内存映像”,并把这些信息储存到WindowsPrefetch文件夹。...

    操作系统(内存管理)

    malloc_init 将是初始化内存分配程序的函数。它要完成以下三件事:将分配程序标识为已经初始化,找到系统中最后一个有效内存地址,然后建立起指向我们管理的内存的指针。这三个变量都是全局变量: 清单 1. 我们的...

    幻想:通过异步预取基于低延迟虚拟化的容错

    为了在虚拟化环境中实现实际的低延迟容错能力,我们首先确定现有方法中的两个瓶颈,即在软件中跟踪脏页的开销和在检查点系统状态下的长顺序依赖性。 为了解决这些瓶颈,我们设计了一种新颖的机制来异步预取脏页,而...

    一种基于硬件的虚拟化设计简化多核处理器的方案

    引言今天的SoC(系统单芯片)处理器都集成了一系列的核心、加速器和其它处理单元。这些异质的多核架构提供了更多的计算能力,但其复杂性也为各种应用中...显然,设计人员用于提高网络效率的带宽管理技术(如虚拟化)也

    高可用白皮书.pdf

    Hyper-V负责帮助您简化服务器虚拟化流 程,而IBM BladeCenter服务器则提供卓越的处理性能、大容量内 存、高内存带宽和高速I/O ,为您构建虚拟化环境奠定坚实基础。高 可用性参考架构将IBM和Microsoft技术结合在一起...

    KVM虚拟化基本原理

    Ring是指CPU的运行级别,Ring0是最高级别,Ring1次之,Ring2更次之……就Linux+x86来说,操作系统(内核)需要直接访问硬件和内存,因此它的代码需要运行在最高运行级别Ring0上,这样它可以使用特权指令,控制中断、...

    云平台服务器存储应急预案.doc

    适用范围 本规范适用于提供云计算虚拟化平台服务的服务器、存储管理,应对发生和可能发生 的故障。 规范内容 服务器运维和应急处理应包括风险评估,检测体系和应急处理三个环节,合理有效的 执行控制将防止故障影响...

    疯狂内核之——内核初始化

    5.4 初始化内存管理区列表 211 5.5 利用early_res分配内存 214 5.6 触碰虚拟文件系统 223 5.7 初始化异常服务 224 5.8 初始化内存管理 230 5.8.1 启用伙伴算法 230 5.8.2 初始化slab分配器 241 5.8.3 初始化非连续...

    OSEK-VDX标准协议

    VDX(嵌入式虚拟化扩展)是对OSEK标准的扩展,提供了更强大的功能和灵活性。 在OSEK_VDX标准协议中,资源描述是指对系统中可用资源的定义和描述。这些资源可以是处理器、内存、任务、中断、事件、消息队列、定时器等...

    2014 英特尔® 64 和 IA-32 架构软件开发人员手册合并版

    介绍英特尔 64 和 iA-32 架构的操作系统支持环境,其中包括:内存管理、保护、任务管理、中断和异常处理、多处理器支持、散热和电源管理特性、调试、性能监控、系统管理模式、 VMX 指令,和英特尔® 虚拟化技术。

Global site tag (gtag.js) - Google Analytics