CN102521300B - 基于嵌入式虚拟化平台的域间文件数据共享方法 - Google Patents
基于嵌入式虚拟化平台的域间文件数据共享方法 Download PDFInfo
- Publication number
- CN102521300B CN102521300B CN201110391529.7A CN201110391529A CN102521300B CN 102521300 B CN102521300 B CN 102521300B CN 201110391529 A CN201110391529 A CN 201110391529A CN 102521300 B CN102521300 B CN 102521300B
- Authority
- CN
- China
- Prior art keywords
- index node
- read
- file
- rear end
- end index
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于嵌入式虚拟化平台的域间数据共享方法,该方法将VFS系统中的索引节点数据对象一分为二,将与用户层进程联系密切的前端索引节点放在Domain域中,将与底层块设备驱动程序联系紧密的后端索引节点放入VMM中;将块设备驱动从Domain域转移到VMM中,同时在VMM的后端索引节点上引入了文件锁机制保证多个Domain域读写同一文件对象时的文件数据的一致性。本发明实现了Domain域间对块设备上文件数据安全可靠的共享,并且提高了共享块设备文件数据的传输性能。
Description
技术领域
本发明属于嵌入式系统虚拟化平台上域间数据共享技术领域,具体来说就是提出了一种可靠的基于嵌入式虚拟化平台的域间共享块设备上文件数据的方法。
背景技术
嵌入式系统从虚拟化技术中获得的最直接好处是针对客户操作系统(如Linux、Android等)以及其他运行环境(自行设计的内核、设备驱动程序等)采取严格的硬件隔离,从而改善嵌入式系统的可靠性和安全性。这种隔离避免了在智能设备的独立功能区中(如移动电话中的基带和用户界面代码)代码和数据的非故意破坏,而且也阻止了终端用户通过下载的代码进行恶意访问。
然而,虚拟化技术为嵌入式应用所带来的稳健性与传统的嵌入式设计经验相悖。传统的设计经验强调在多个嵌入式软件组件之间有效地共享数据,但是将代码严格地分割到各个域时,这种数据共享将被阻碍或被禁止。由于在各种不同的虚拟机上运行的代码中没有高效的域间通信技术,利用传统的域间数据共享技术将会使嵌入式系统的性能降低到无法忍受的水平。
在系统虚拟化领域,域间文件数据共享都是基于网络的方式,即基于TCP/IP协议来实现文件数据共享(例如SAMBA、NFS技术等)。对嵌入式系统来讲,依靠网络的方式来实现域间的文件数据的共享,不仅性能较低,占用资源多,可靠性也不高,这对嵌入式系统是不允许的。在一个系统虚拟机环境里,硬件资源被客户操作系统Guest OS(也称为Domain域)共享,硬件资源的分配和访问由软件层一虚拟监控程序(Virtual MachineMonitor),如果不采用网络的方式,单单依靠设备驱动程序以及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);
(B.5)查询待读写文件的逻辑偏移对应的页缓存标志位以判断所述页缓存是否是最新,若是,则进入步骤(B.6),否则,进入步骤(B.7);
(B.6)若为读请求,则将所述页缓存复制到用户空间数据缓冲区,读写操作结束,否则,将用户空间数据缓冲区复制到所述应页缓存中,读写操作结束;
(B.7)根据前端索引节点F2找到待读写文件在块设备BD2的物理位置分布信息,并结合待读写文件的逻辑偏移得到待读写文件在块设备上的物理位置,再根据该物理位置和读写数据长度得到读写区间;
(B.8)对前端索引节点F2和块设备BD2作哈希计算得到第一后端索引节点索引值,并分配读写请求对象R2和文件锁对象L2,所述读写请求对象R2包含待读写文件在块设备上的物理位置、读写数据长度、页缓存位置和进程号,所述文件锁对象L2包含读写区间和读写类型;
(B.9)Domain域向VMM发送包含第一后端索引节点索引值、读写请求对象R2和文件锁对象L2的超级调用请求;
(B.10)VMM依据第一后端索引节点索引值在后端索引节点哈希链表中查找对应的后端索引节点B2;
(B.11)依据文件锁对象L2中的读写类型和读写区间,判定该文件锁对象L2是否与后端索引节点B2的文件锁列表某一文件锁对象L0有冲突,若有冲突,则进入步骤(B.12),否则,进入(B.13);
(B.12)将读写操作请求对象R2和文件锁对象L2挂载在冲突的文件锁对象L0的冲突链表上,结束;
(B.13)将读写操作请求R2挂载到块设备BD2的读写请求队列,将文件锁对象L2挂载到后端索引节点B2的文件锁链表上,结束;
所述读写文件执行子步骤具体为:
(C.1)若块设备BD3的读写请求队列非空,则VMM执行块设备BD3的读写请求队列中的当前读写请求对象R3;
(C.2)执行完毕时释放R3对应的文件锁对象L3,更新页缓存的标志位,向读写请求对象R3的来源Domain域发出软中断以唤醒R3中的进程号指定的读写进程;
(C.3)若释放的文件锁对象L3的冲突链表非空,则激活当前文件锁对象L4,判定文件锁对象L4是否与其对应的后端索引节点B4的文件锁队列存在冲突,若有冲突,进入步骤(C.4),否则,进入步骤(C.5);
(C.4)被激活的文件锁对象L4及其对应的读写请求对象R4挂载在冲突的文件锁对象L`0的冲突链表上,返回步骤(C.1);
(C.5)将读写请求对象R4挂载到块设备BD3的读写请求队列,将文件锁对象L4挂载到后端索引节点B4的文件锁链表上,返回步骤(C.1);
所述关闭文件步骤具体为:
(D.1)将待关闭文件对应的前端索引节点F4的使用计数减一,若F4的使用计数为0,则释放F4;
(D.2)Domain域的进程对待关闭文件的前端索引节点F3和块设备BD4作哈希计算得到第二后端索引节点索引值;
(D.3)Domain域向VMM发出包含第二后端索引节点索引值的超级调用请求;
(D.4)VMM依据第二后端索引节点索引值在后端索引节点哈希链表中查找对应的后端索引节点B5,对后端索引节点B5的使用计数减一,若后端索引节点B5的使用计数为0,则释放后端索引节点B5。
本发明能够保证Domain域在共享文件数据时的一致性,具体做法是:通过修改Domain域中的VFS层,将VFS层的索引节点对象分为前端索引节点和后端索引节点。前端索引节点位于Domain中的VFS(VirtualFile System)层,向Domain域中的进程提供操作文件的接口。后端索引节点位于VMM(Virtual Machine Monitor)中,与块设备上的文件一一对应,是控制VMM上不同的Domain域在读写块设备同一个文件时在内存中存在的唯一的控制节点;同时在后端索引节点上引入了文件锁,通过后端索引节点上的文件锁保证同一个文件的同一区段被VMM上的Domain域进行读写时的数据一致性,根据文件读写请求的种类:
(1)当发出读文件请求时,若后端索引节点的锁队列上对应的区段已经有写文件锁存在,则发生锁冲突,将读文件请求的读文件锁挂载在冲突的写文件锁冲突队列上。
(2)当发出写文件请求时,若后端索引节点的锁队列上对应的区段已经有读文件锁存在,则发生锁冲突,将写文件请求的写文件锁挂载在冲突的读文件锁冲突队列上。
(3)当发出写文件请求时,若后端索引节点的锁队列上对应的区段已经有写文件锁存在,则发生锁冲突,将写文件请求的写文件锁挂载在冲突的写文件锁冲突队列上。
当某个文件请求被完成后,VMM将解除对应区段的文件锁,此时,若该文件锁上的锁冲突队列不为空,则将锁冲突队列上的锁激活。
该方法还能够提高数据的传输效率,减少Domain域和VMM上下文切换次数。具体做法是:将块设备驱动从Domain域中完全去掉,而将块设备驱动放在VMM中。当Domain域中的进程发起文件数据访问时,在Domain域的内核态,将要读写数据的信息组成一个读写请求,然后向VMM发送超级调用将读写请求挂载在VMM中的块设备读写请求队列上。每次从VMM返回Domain前夕,VMM检测共享块设备上的读写请求队列,VMM完成块设备读写,并向发起文件读写的Domain发出软中断,以通知对应的Domain读写请求已经完成。
本发明有以下优点或用途:
(1)可以保证多个Domain对文件进行读写时的数据一致性
当Domain域中的用户进程发起读写访问时,检测后端索引节点上挂载的文件锁。当发出读文件请求时,若后端索引节点的锁队列上对应的区段已经有写文件锁存在,则发生锁冲突,将读文件请求的读文件锁挂载在冲突的写文件锁冲突队列上;若当发出读文件请求时,后端索引节点的锁队列上对应的区段是读文件锁,则不发生冲突,进行正常的读写操作。当发出写文件请求时,若后端索引节点的锁队列上对应的区段已经有读文件锁存在,则发生锁冲突,将写文件请求的写文件锁挂载在冲突的读文件锁冲突队列上;若当发出写文件请求时,后端索引节点的锁队列上对应的区段是写文件锁,则发生锁冲突,将写文件请求的写文件锁挂载在冲突的写文件锁冲突队列上。
(2)提高了Domain域间数据共享的数据传输性能
将I/O调度模块和块设备驱动放在VMM中,VMM将决定调度的时机和向块设备发起读写命令,而不由Domain域来做出读写决定,这样做将会大大减少Domain域和VMM之间上下文切换的频率,提高系统性能。
附图说明
图1为该发明主要对象之间的关系图;
图2为该发明打开文件时操作索引节点的流程图;
图3为该发明Domain域用户进程发起读写请求时的流程图;
图4为该发明VMM响应块设备读写请求的流程图;
图5为该发明关闭文件是操作索引节点的流程图。
具体实施方式
下面结合附图对本发明做进一步详细的说明:
系统主要对象关系图如图1所示。VFS中的前端索引节点位于Domain域中,后端索引节点位于VMM中。I/O调度模块以及块设备驱动程序位于VMM中。前端索引节点与Domain中用户进程以及VFS中的块设备缓存和传统的VFS对象(如超级块,文件结构,挂载点)联系密切,后端索引节点与块设备驱动程序操作联系密切。该方法包括打开文件、读写文件和关闭文件三个步骤:
一、打开文件步骤
Domain域中的用户进程对共享块设备上的文件读写之前,必须要让进程和文件建立一个连接,即一个独立的上下文。这个独立的上下文由打开文件号加以标识,这个打开的文件号由打开文件操作结束后提供。Domain域中的用户进程打开共享块设备上的文件的主要操作步骤和传统的VFS打开操作基本相同,不同的地方在操作索引节点。结合图2,操作索引节点时,进程提供的主要参数为:文件路径、打开模式(如只读,可读写等)。其主要操作步骤如下:
(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计算;
二、读写文件步骤
读写文件步骤包括读写文件请求子步骤和读写文件执行子步骤,所述读写文件请求子步骤将读写文件请求挂载到块设备的读写请求队列上,读写文件执行子步骤执行读写请求队列中的读写请求
所述读写文件请求子步骤:
打开文件操作完成后,会提供一个打开文件号,用于读写文件时,标识进程与要读写文件的上下文。下面结合图3,Domain域中的用户进程对共享的块设备上发出读写文件请求命令时,除了提供打开文件号之外,还需要用户空间数据缓冲区地址,以及要读写文件的偏移和数据的长度。其主要操作步骤如下:
(B.1)Domain域的进程发出读写操作请求,读写操作请求包含待读写文件的文件号、用户空间数据缓冲区、待读写文件的逻辑偏移、读写数据长度和读写类型;
(B.2)依据待读写文件的文件号索引进程的文件描述符数组找到文件结构对象O2;
(B.3)获取文件结构对象O2中的前端索引节点F2和块设备BD2;
(B.4)查询待读写文件的逻辑偏移对应的页缓存是否已经在内存中,若存在,进入步骤(B.5),否则,分配页缓存,进入步骤(B.5);
(B.5)查询待读写文件的逻辑偏移对应的页缓存标志位以判断该页缓存是否是最新,若是,则进入步骤(B.6),否则,进入步骤(B.7);
(B.6)若为读请求,则将对应页缓存复制到用户缓冲区间中,操作结束。否则,将用户缓冲区的数据复制到对应页缓存中。
(B.7)根据前端索引节点F2找到待读写文件在块设备BD2的物理位置分布信息,并结合待读写文件的逻辑偏移得到待读写文件在块设备上的物理位置,再根据该物理位置和读写数据长度得到读写区间;
(B.8)对前端索引节点F2和块设备BD2作哈希计算得到第一后端索引节点索引值,并分配读写请求对象R2和文件锁对象L2,所述读写请求对象R2包含待读写文件在块设备上的物理位置、读写数据长度、页缓存位置和进程号,所述文件锁对象L2包含读写区间和读写类型;
(B.9)Domain域向VMM发送包含第一后端索引节点索引值、读写请求对象R2和文件锁对象L2的超级调用请求;
(B.10)VMM依据第一后端索引节点索引值在后端索引节点哈希链表中查找对应的后端索引节点B2;
(B.11)依据文件锁对象L2中的读写类型和读写区间,判定该文件锁对象L2是否与后端索引节点B2的文件锁列表某一文件锁对象L0有冲突,若有冲突,则进入步骤(B.12),否则,进入(B.13);
(B.12)将读写操作请求对象R2和文件锁对象L2挂载在冲突的文件锁对象L0的冲突链表上,结束;
(B.13)将读写操作请求R2挂载到块设备BD2的读写请求队列,将文件锁对象L2挂载到后端索引节点B2的文件锁链表上,结束;
所述读写文件执行子步骤:
从用户进程发起读写操作,到读写操作被执行是一个异步的过程。用户进程在将读写请求发给VMM,读写请求被挂载在块设备读写请求队列后,便返回。响应块设备上挂载的请求队列发生在VMM切换回Domain空间时,在CPU每次从VMM返回Domain之前,系统检查共享块设备的请求队列,若队列非空,则进行块设备读写操作。结合图4,其操作步骤如下:
(C.1)若块设备BD3的读写请求队列非空,则VMM执行块设备BD3的读写请求队列中的当前读写请求对象R3;
(C.2)执行完毕时释放R3对应的文件锁对象L3,更新页缓存的标志位,向读写请求对象R3的来源Domain域发出软中断以唤醒R3中的进程号指定的读写进程;
(C.3)若释放的文件锁对象L3的冲突链表非空,则激活当前文件锁对象L4,判定文件锁对象L4是否与其对应的后端索引节点B4的文件锁队列存在冲突,若有冲突,进入步骤(C.4),否则,进入步骤(C.5);
(C.4)被激活的文件锁对象L4及其对应的读写请求对象R4挂载在冲突的文件锁对象L`0的冲突链表上,返回步骤(C.1);
(C.5)将读写请求对象R4挂载到块设备BD3的读写请求队列,将文件锁对象L4挂载到后端索引节点B4的文件锁链表上,返回步骤(C.1);
三、关闭文件步骤
Domain域中的用户进程对共享块设备上的文件读写结束后,发出关闭文件请求释放在内存中的资源。关闭文件的主要操作步骤和传统的VFS操作基本相同,不同的地方在于减少索引节点的使用计数同时也减少后端索引节点的使用计数。结合图5,操作时,需要的参数是打开文件号,其具体操作过程是:
(D.1)将待关闭文件对应的前端索引节点F4的使用计数减一,若F4的使用计数为0,则释放F4;
(D.2)Domain域的进程对待关闭文件的前端索引节点F3和块设备BD4作哈希计算得到第二后端索引节点索引值;
(D.3)Domain域向VMM发出包含第二后端索引节点索引值的超级调用请求;
(D.4)VMM依据第二后端索引节点索引值在后端索引节点哈希链表中查找对应的后端索引节点B5,对后端索引节点B5的使用计数减一,若后端索引节点B5的使用计数为0,则释放后端索引节点B5。
本发明通过修改VFS以及将Domain域中的块读写请求队列以及块设备驱动完全转移到VMM中,不仅实现了块设备文件数据的可靠共享,而且因为Domain域和VMM切换频率低而具有性能高效的优点。
Claims (1)
1.一种基于嵌入式虚拟化平台的域间数据共享方法,其特征在于: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);
(B.5)查询待读写文件的逻辑偏移对应的页缓存标志位以判断所述页缓存是否是最新,若是,则进入步骤(B.6),否则,进入步骤(B.7);
(B.6)若为读请求,则将所述页缓存复制到用户空间数据缓冲区,读写操作结束,否则,将用户空间数据缓冲区复制到所述页缓存中,读写操作结束;
(B.7)根据前端索引节点F2找到待读写文件在块设备BD2的物理位置分布信息,并结合待读写文件的逻辑偏移得到待读写文件在块设备BD2上的物理位置,再根据该物理位置和读写数据长度得到读写区间;
(B.8)对前端索引节点F2和块设备BD2作哈希计算得到第一后端索引节点索引值,并分配读写请求对象R2和文件锁对象L2,所述读写请求对象R2包含待读写文件在块设备BD2上的物理位置、读写数据长度、页缓存位置和进程号,所述文件锁对象L2包含读写区间和读写类型;
(B.9)Domain域向VMM发送包含第一后端索引节点索引值、读写请求对象R2和文件锁对象L2的超级调用请求;
(B.10)VMM依据第一后端索引节点索引值在后端索引节点哈希链表中查找对应的后端索引节点B2;
(B.11)依据文件锁对象L2中的读写类型和读写区间,判定该文件锁对象L2是否与后端索引节点B2的文件锁列表某一文件锁对象L0有冲突,若有冲突,则进入步骤(B.12),否则,进入(B.13);
(B.12)将读写操作请求对象R2和文件锁对象L2挂载在冲突的文件锁对象L0的冲突链表上,结束;
(B.13)将读写操作请求R2挂载到块设备BD2的读写请求队列,将文件锁对象L2挂载到后端索引节点B2的文件锁链表上,结束;
所述读写文件执行子步骤具体为:
(C.1)若块设备BD3的读写请求队列非空,则VMM执行块设备BD3的读写请求队列中的当前读写请求对象R3;
(C.2)执行完毕时释放R3对应的文件锁对象L3,更新页缓存的标志位,向读写请求对象R3的来源Domain域发出软中断以唤醒R3中的进程号指定的读写进程;
(C.3)若释放的文件锁对象L3的冲突链表非空,则激活当前文件锁对象L4,判定文件锁对象L4是否与其对应的后端索引节点B4的文件锁链表存在冲突,若有冲突,进入步骤(C.4),否则,进入步骤(C.5);
(C.4)被激活的文件锁对象L4及其对应的读写请求对象R4挂载在步骤(C.3)冲突的文件锁对象L‵0的冲突链表上,返回步骤(C.1);
(C.5)将读写请求对象R4挂载到块设备BD3的读写请求队列,将文件锁对象L4挂载到后端索引节点B4的文件锁链表上,返回步骤(C.1);
所述关闭文件步骤具体为:
(D.1)将待关闭文件对应的前端索引节点F4的使用计数减一,若F4的使用计数为0,则释放F4;
(D.2)Domain域的进程对待关闭文件的前端索引节点F3和块设备BD4作哈希计算得到第二后端索引节点索引值;
(D.3)Domain域向VMM发出包含第二后端索引节点索引值的超级调用请求;
(D.4)VMM依据第二后端索引节点索引值在后端索引节点哈希链表中查找对应的后端索引节点B5,对后端索引节点B5的使用计数减一,若后端索引节点B5的使用计数为0,则释放后端索引节点B5。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110391529.7A CN102521300B (zh) | 2011-11-30 | 2011-11-30 | 基于嵌入式虚拟化平台的域间文件数据共享方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110391529.7A CN102521300B (zh) | 2011-11-30 | 2011-11-30 | 基于嵌入式虚拟化平台的域间文件数据共享方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102521300A CN102521300A (zh) | 2012-06-27 |
CN102521300B true CN102521300B (zh) | 2015-03-04 |
Family
ID=46292221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110391529.7A Expired - Fee Related CN102521300B (zh) | 2011-11-30 | 2011-11-30 | 基于嵌入式虚拟化平台的域间文件数据共享方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102521300B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108845877B (zh) * | 2013-05-17 | 2021-09-17 | 华为技术有限公司 | 管理内存的方法、装置和系统 |
CN105790985B (zh) * | 2014-12-23 | 2020-06-16 | 中兴通讯股份有限公司 | 数据倒换的方法、第一设备、第二设备及系统 |
CN104657225B (zh) * | 2015-01-13 | 2018-01-05 | 北京航空航天大学 | 基于OKL4的嵌入式虚拟化平台跨Cell数据传输系统 |
CN106778245A (zh) * | 2016-11-29 | 2017-05-31 | 北京元心科技有限公司 | 移动终端及其文件共享方法 |
CN110837411B (zh) * | 2019-11-08 | 2023-05-12 | 敏博科技(武汉)有限公司 | 一种数据服务器端分区内部并发i/o调度方法及系统 |
CN116578968A (zh) * | 2023-04-24 | 2023-08-11 | 国网冀北电力有限公司信息通信分公司 | 对电力控制系统中应用程序提供安全防护的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101038545A (zh) * | 2006-11-10 | 2007-09-19 | 清华大学 | 操作系统内核构件跨域运行的方法 |
CN101251814A (zh) * | 2008-02-04 | 2008-08-27 | 浙江大学 | 一种在操作系统中实现可信恢复系统的方法 |
CN101256526A (zh) * | 2008-03-10 | 2008-09-03 | 清华大学 | 检查点容错技术中文件状态一致性维护的实现方法 |
-
2011
- 2011-11-30 CN CN201110391529.7A patent/CN102521300B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101038545A (zh) * | 2006-11-10 | 2007-09-19 | 清华大学 | 操作系统内核构件跨域运行的方法 |
CN101251814A (zh) * | 2008-02-04 | 2008-08-27 | 浙江大学 | 一种在操作系统中实现可信恢复系统的方法 |
CN101256526A (zh) * | 2008-03-10 | 2008-09-03 | 清华大学 | 检查点容错技术中文件状态一致性维护的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102521300A (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521300B (zh) | 基于嵌入式虚拟化平台的域间文件数据共享方法 | |
CN109933441B (zh) | 微内核进程间通讯方法和系统 | |
US8782323B2 (en) | Data storage management using a distributed cache scheme | |
JP5164290B2 (ja) | 情報フローの追跡および保護 | |
WO2017008675A1 (zh) | 一种用于虚拟化环境下传输数据的方法与设备 | |
CN115039077A (zh) | 为实时虚拟化执行环境迁移维护存储命名空间标识符 | |
CN110119302B (zh) | 虚拟机监视器以及虚拟可信执行环境构建方法 | |
CN101842784A (zh) | 支持事务认证的硬件装置接口 | |
CN109901909B (zh) | 用于虚拟化系统的方法及虚拟化系统 | |
CN109947666B (zh) | 可信执行环境缓存隔离方法及装置、电子设备和存储介质 | |
CN108491694A (zh) | 一种动态随机化防御Cache攻击的方法 | |
US20150370582A1 (en) | At least one user space resident interface between at least one user space resident virtual appliance and at least one virtual data plane | |
KR20130123387A (ko) | 클러스터 캐시 코히어런시 프로토콜 | |
US10289853B2 (en) | Secure driver platform | |
WO2022021896A1 (zh) | 一种进程间通信的方法及装置 | |
WO2023236397A1 (zh) | 密钥管理方法、密钥管理装置、密钥管理设备及存储介质 | |
CN114175005A (zh) | 包括主机计算设备和网络接口设备的可编程网络接口设备 | |
CN115529291A (zh) | 目标网络接口设备上的地址转换 | |
JP2010238193A (ja) | 情報処理プログラム、情報処理装置および情報処理方法 | |
CN109740310A (zh) | 用于嵌入式操作系统的内核对象访问方法和装置 | |
WO2023136884A1 (en) | Zoned accelerator embedded processing | |
Suzaki et al. | Implementation of a memory disclosure attack on memory deduplication of virtual machines | |
US10901914B2 (en) | Method for writing multiple copies into storage device, and storage device | |
KR101460451B1 (ko) | 프로세스 주소 공간을 제어하는 장치 및 방법 | |
US20200201691A1 (en) | Enhanced message control banks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150304 Termination date: 20201130 |