发明名称 嵌入式平台下的设备虚拟化方法
摘要 本发明公开了一种嵌入式平台下的设备虚拟化方法,包括步骤:将嵌入式平台中所有设备的驱动整合到虚拟机管理器中,并以超级调用的形式向虚拟机提供I/O接口,判断设备的I/O是主动设备I/O还是被动设备I/O,若是主动设备I/O,判断主动设备I/O的数据量大小是否小于一预设的阈值,若小于阈值,则在虚拟机管理器中为每个虚拟机开放一段内存区域,虚拟机以可读可写的权限在用户地址空间中建立到内存区域的映射,虚拟机管理器将数据写入用户地址空间中所映射的内存区域,虚拟机直接读取内存区域,以获取数据。本发明将同步设备I/O和异步设备I/O相结合,效率较高,且真正实现了所有设备在虚拟机间共享,达到了设备虚拟化的效果。
申请公布号 CN102521015A 申请公布日期 2012.06.27
申请号 CN201110405492.9 申请日期 2011.12.08
申请人 华中科技大学 发明人 金海;邵志远;伍箴水;李海峰;段培;罗晶
分类号 G06F9/455(2006.01)I;G06F9/50(2006.01)I 主分类号 G06F9/455(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 朱仁玲
主权项 一种嵌入式平台下的设备虚拟化方法,包括以下步骤:(1)将嵌入式平台中所有设备的驱动整合到虚拟机管理器中,并以超级调用的形式向虚拟机提供I/O接口;(2)判断所述设备的I/O是主动设备I/O还是被动设备I/O,如果所述设备的I/O是主动设备I/O,则进入步骤(3),如果是被动设备I/O,则进入步骤(8);(3)判断所述主动设备I/O的数据量大小是否小于一预设的阈值,所述阈值等于4096字节,如果小于所述阈值,则进入步骤(4),否则进入步骤(6);(4)在所述虚拟机管理器中为每个虚拟机开放一段内存区域,所述虚拟机以可读可写的权限在用户地址空间中建立到所述内存区域的映射;(5)所述虚拟机管理器将数据写入所述用户地址空间中所映射的内存区域,所述虚拟机直接读取所述内存区域,以获取所述数据;(6)在所述虚拟机管理器中分配缓冲区并缓存数据,通过事件通道通知所述虚拟机读取所述缓存数据;(7)所述虚拟机以所述超级调用的形式响应通知,所述虚拟机管理器中的超级调用处理函数把所述缓存数据写入所述用户地址空间;(8)判断所述被动设备I/O是否容忍丢弃,若可以丢弃则进入步骤(9),否则进入步骤(11);(9)所述虚拟机在其设备驱动初始化时为被动设备分配一块物理地址 连续的内存缓冲区,并将所述内存缓冲区的物理首地址注册到所述虚拟机管理器中;(10)所述虚拟机将数据直接输出到所述内存缓冲区中,所述虚拟机管理器改变为被动设备分配的内存缓冲区的首地址;(11)判断所述被动设备是否正在使用,若是则进入步骤(12),否则进入步骤(15);(12)判断所述虚拟机中是否存在其他进程等待调度,若存在则进入步骤(13),否则进入步骤(14);(13)调度所述虚拟机的其他进程;(14)调度其它虚拟机;(15)所述虚拟机管理器对所述被动设备执行加锁操作;(16)所述虚拟机以超级调用的形式向所述虚拟机管理器发送I/O请求;(17)所述虚拟机管理器处理所述I/O请求,并对所述被动设备执行解锁操作。
地址 430074 湖北省武汉市洪山区珞喻路1037号