Xen半虚拟化下,IO共享环、事件通道、授权表之间的联系和区别
来源:互联网 发布:拔牙费用知乎 编辑:程序博客网 时间:2024/06/05 05:47
最后的例子很有意思,文章出处: http://blog.csdn.net/qianlong4526888/article/details/7553105
初学Xen,对于DomU与Dom0之间的通信机制概念不清晰,现总结如下供大家参考,仅作抛砖引玉之用。找到一篇论文,《基于Xen的IO准虚拟化驱动研究》(胡冷非)讲得不错,拿来参考。
(1)I/O共享环:在不同Domain之间存在的一块固定的共享内存,用于在DomU和Dom0之间传递I/O请求和响应。I/O共享环利用生产者和消费者的机理来产生发送以及响应IO请求。
(2)授权表:在不同Dom之间高效传输IO数据的机制。通过授权表把内存映射到目的Dom或者把内存传送到目的Dom。
(3)事件通道:用于Dom和Xen之间、Dom和Dom之间异步事件通知机制。
注意上面的粗体字。
以DomainU向IO设备写入数据为例:
1、DomU产生IO请求,在IO共享环中添加请求。
2、然后将IO数据放入授权表指向的内存中,等待Dom0来取。
3、一切准备就绪,通过事件通道通知Dom0开始处理。
4、Dom0收到事件通道的通知,知道有数据需要处理。
5、然后,Dom0从IO共享环中取出IO请求,分析下到底DomU想要Dom0为他做什么。
6、明白要做什么后,将授权表中的数据取出进行处理。
7、数据处理完成后,Dom0将处理后信息放入IO共享环,然后通过事件通道发送通知给DomU,告诉他处理完成了。
8、DomU收到事件通道的通知,从IO共享环中取出相应,进而处理之。
总结:IO共享环的作用是具体的IO请求(如发送网络数据),是请求!事件通道是通知用的!授权表指向的内存是数据的存储地!
举个不十分恰当的例子:A(DomU)请B(Dom0)帮忙保存一些贵重物品S(数据),首先A写一张纸条(IO共享环),上面说明请求B帮忙做的事情,放到B的门口,然后敲门(事件通道)。B听到敲门(事件通道的中断)后开门看到纸条(IO共享环),分析上面的内容后,去到A固有的地点(授权表上写明的内存地址)取物品S。一切做完后写个纸条(IO共享环)贴到A门口,敲门(事件通道)。
- Xen半虚拟化下,IO共享环、事件通道、授权表之间的联系和区别
- Xen半虚拟化下,IO共享环、事件通道、授权表之间的联系和区别
- 虚拟化技术中KVM,Xen,Qemu的区别和联系
- xen的事件通道
- Xen前后端分离设备驱动模型通信过程分析(包括事件通道、授权表、环缓冲区)
- 随机事件和随机变量之间的区别与联系
- Xen 超级调用 和 事件通道
- xen的授权表
- Android下Context、Application、Activity之间的联系和区别
- 全虚拟化与半虚拟化的区别(xen)
- 浅谈Xen和半虚拟化技术
- xen下全虚拟化、半虚拟化GUestOS的安装步骤
- xen下全虚拟化、半虚拟化GuestOS的安装步骤
- linux系统下使用Xen安装半虚拟化xen客户机(paravirtualized Xen guest)
- 视图和表之间的区别和联系
- 视图和表之间的区别和联系
- Xen 半虚拟化和硬件辅助虚拟化
- 管道、消息队列、共享内存之间的区别与联系
- codeforces 707D Persistent Bookcase 离线+深搜
- 虚拟机下 kali linux 2.0的安装
- ecshop二次开发--节日关怀
- 有一个理财管理数据库,包括客户Client,资金账户Fund,经理人Manager,投资流水Investment,理财产品Product。 回答以下问题:
- Java中Synchronized的用法
- Xen半虚拟化下,IO共享环、事件通道、授权表之间的联系和区别
- 无线安全专题01--kali破解WPA
- linux编译android无法找到"jni.h"“jni_md.h”的头文件怎么办?
- POJ1949 (DAG图的最长路径)
- 定时取消订单,防止刷新重新开始
- 【bzoj 1088】 [SCOI2005]扫雷Mine 不能再水了
- Oracle 相关记录
- 207,210. Course Schedule I, II
- Swift-工厂方法(Factory Method)