[发明专利]基于嵌入式虚拟化平台的域间文件数据共享方法有效
申请号: | 201110391529.7 | 申请日: | 2011-11-30 |
公开(公告)号: | CN102521300A | 公开(公告)日: | 2012-06-27 |
发明(设计)人: | 金海;邵志远;李海峰;伍箴水 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李智 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 嵌入式 虚拟 平台 文件 数据 共享 方法 | ||
技术领域
本发明属于嵌入式系统虚拟化平台上域间数据共享技术领域,具体来说就是提出了一种可靠的基于嵌入式虚拟化平台的域间共享块设备上文件数据的方法。
背景技术
嵌入式系统从虚拟化技术中获得的最直接好处是针对客户操作系统(如Linux、Android等)以及其他运行环境(自行设计的内核、设备驱动程序等)采取严格的硬件隔离,从而改善嵌入式系统的可靠性和安全性。这种隔离避免了在智能设备的独立功能区中(如移动电话中的基带和用户界面代码)代码和数据的非故意破坏,而且也阻止了终端用户通过下载的代码进行恶意访问。
然而,虚拟化技术为嵌入式应用所带来的稳健性与传统的嵌入式设计经验相悖。传统的设计经验强调在多个嵌入式软件组件之间有效地共享数据,但是将代码严格地分割到各个域时,这种数据共享将被阻碍或被禁止。由于在各种不同的虚拟机上运行的代码中没有高效的域间通信技术,利用传统的域间数据共享技术将会使嵌入式系统的性能降低到无法忍受的水平。
在系统虚拟化领域,域间文件数据共享都是基于网络的方式,即基于TCP/IP协议来实现文件数据共享(例如SAMBA、NFS技术等)。对嵌入式系统来讲,依靠网络的方式来实现域间的文件数据的共享,不仅性能较低,占用资源多,可靠性也不高,这对嵌入式系统是不允许的。在一个系统虚拟机环境里,硬件资源被客户操作系统Guest OS(也称为Domain域)共享,硬件资源的分配和访问由软件层一虚拟监控程序(Virtual Machine Monitor),如果不采用网络的方式,单单依靠设备驱动程序以及Domain域中的虚拟文件系统VFS(Virtual File System)来实现文件数据的共享,文件数据的一致性则得不到保证。比如,当一个文件被多个Domain域中的进程同时访问时,就会出现同步异常。具体来说,如果两个Domain域的进程对文件的同一位置进行写,由于缓存的存在,结果会不可预知。另外,如果一个Domain中的进程对文件进行写,另一个Domain中的进程对同一文件进行读,读数据的结果也不可预知。
发明内容
本发明的目的在于提供一种在嵌入式虚拟化平台上可靠的域间数据共享方法,实现了Domain域间对块设备上文件数据安全可靠的共享,并且提高了共享块设备文件数据的传输性能。
一种基于嵌入式虚拟化平台的域间数据共享方法,VFS中的索引节点分为前端索引节点和后端索引节点,前端索引节点位于客户操作系统Domain域中,后端索引节点位于软件层一虚拟监控程序VMM中,该方法包括打开文件、读写文件和关闭文件三个步骤:
所述打开文件步骤为:
(A.1)Domain域的进程从待打开文件的路径获取待打开文件对应的前端索引节点F1和块设备BD1信息,为本次打开操作分配文件号,创建包含前端索引节点F1、块设备BD1和文件号信息的文件结构对象O1,将其加入文件描述符数组;
(A.2)若Domain域中已存在前端索引节点F1,则F1的使用计数加一,否则,在Domain域中建立前端索引节点F1,并在块设备BD1中读出待打开文件在块设备BD1上的物理位置分布信息;
(A.3)Domain域向VMM发送包含前端索引节点F1和块设备BD1的ID信息的超级调用请求,VMM对前端索引节点F1和块设备BD1的ID作哈希计算,依据计算得到的后端索引节点索引值在后端索引节点哈希链表中找到其对应的后端索引节点B1;
(A.4)若VMM中存在后端索引节点B1,则B1的使用计数加一,否则,在VMM中建立后端索引节点B1,将其插入后端索引节点哈希链表中,插入和查找该哈希链表所使用的哈希值依据前端索引节F1和块设备BD1的ID计算;
所述读写文件步骤包括读写文件请求子步骤和读写文件执行子步骤,所述读写文件请求子步骤将读写文件请求挂载到块设备的读写请求队列上,读写文件执行子步骤执行读写请求队列中的读写请求;
所述读写文件请求子步骤具体为:
(B.1)Domain域的进程发出读写操作请求,读写操作请求包含待读写文件的文件号、用户空间数据缓冲区、待读写文件的逻辑偏移、读写数据长度和读写类型;
(B.2)依据待读写文件的文件号索引进程的文件描述符数组找到文件结构对象O2;
(B.3)获取文件结构对象O2中的前端索引节点F2和块设备BD2;
(B.4)查询待读写文件的逻辑偏移对应的页缓存是否已经在内存中,若存在,进入步骤(B.5),否则,分配页缓存,进入步骤(B.5);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110391529.7/2.html,转载请声明来源钻瓜专利网。