首页 > 代码库 > 在Windows系统上实现轻量级的线程间及进程间消息队列
在Windows系统上实现轻量级的线程间及进程间消息队列
看IaaS 资料时,捎带研究下硬件虚拟化,主要参考《基于intel VT-x 的Xen 全虚拟化实现》,《intel 开发手册 第三卷 19/20章》
Intel VT 是intel X86架构的CPU硬件虚拟化技术,新增两种模式:
- VM root: 即虚拟机管理系统运行模式;
- VM non root:即虚拟机运行模式;
如下图:
VMXON、VMXOFF用以实现打开或关闭虚拟化功能;
VM Exit和VM Entry 用以实现non root和root之间的切换;这种转换被VMCS(VM Control Structure)这个数据结构控制,对每一个虚拟CPU都会对应一个VMCS。
VMCS包含六个域,分别是:
- Guest-State Area: 处理器状态在VM Exit时被保存,在进入VM Entry时被加载,即退出non root时保存客户机状态;
- Host State Area: 处理器状态在VM Exit被加载;
- VM Excution Control Field,定义vm在non root下的执行行为,哪些指令会切换到root;
- VM Entry 控制域
- VM Exit 控制域
- VM Exit 信息域,记录上一次VM Exit信息
举例Xen:
当需要执行一些特权指令时(如I/O控制访问),切入root模式,Xen取得控制权,通过VMCX中的信息得知VM Exit的原因,调用vmx_vmexit_handler执行;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。