CN101383781A - 虚拟域间短信息通讯方法 - Google Patents
虚拟域间短信息通讯方法 Download PDFInfo
- Publication number
- CN101383781A CN101383781A CNA2008101434464A CN200810143446A CN101383781A CN 101383781 A CN101383781 A CN 101383781A CN A2008101434464 A CNA2008101434464 A CN A2008101434464A CN 200810143446 A CN200810143446 A CN 200810143446A CN 101383781 A CN101383781 A CN 101383781A
- Authority
- CN
- China
- Prior art keywords
- page
- leaf
- shared drive
- information
- scheduling
- 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.)
- Granted
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种虚拟域间短信息通讯方法,要解决的技术问题是提供一种在多个虚拟域间进行高效域间数据通讯的方法,既降低网络通讯短信息的通讯量和通讯负载,又加强域间通讯的安全性。技术方案是首先构建由发送器、接收器、调度仲裁器、共享内存区、发送定时器、定时发送队列组成的虚拟域间通讯框架,再由发送器和调度仲裁器协同对信息进行发送,最后由调度仲裁器和接收器协同完成信息接收操作。采用本发明可实现多域间的数据通讯,可以使信息发送和接收开销小,通信带宽高,且信息发送和接收过程的稳定性和安全性高。
Description
技术领域
本发明涉及计算机领域虚拟机域间通讯的方法,尤其是一种虚拟域间短信息通讯方法。
背景技术
近年来虚拟化技术一直处于火热状态,最近几年在服务器整合、计算机安全、数据中心等受到各研究机构和商业机构的重视。
虚拟机的运行环境必然包含两大部分,一为虚拟监控器,主要目的是完成虚拟化操作和管理;另一为若干个运行在虚拟监控器之上的操作***(即“虚拟域”),虚拟域运行用户的应用程序。
为支持虚拟域之间的协同和交互,必须设计和实现高效的域间通讯方法。目前主流的虚拟机域间通讯模式有两种方法,一种为网络通讯方法、另一种是域间共享内存方法。
网络通讯方法使用传统的网络数据通讯(TCP/UDP、Socket等)的方法进行数据通讯。该方法的基本流程为:
1、数据发送方利用传统的网络通讯方法,经过一次完整的网络协议栈,通过网络向接收方发送数据报文;
2、数据接收方利用传统的网络通讯方法,经过一次完整的网络协议栈,通过网络接收数据报文。
网络通讯方法的优点是简单,对上层应用软件的支持好。但是这种通讯方法不支持域间显示的直接通讯,需要进行两次完整的网络发送和接收操作,执行路径长,所以域间通讯开销大、带宽低,不能满足虚拟域之间进行大量数据传输的需求。例如Linux的KVM项目便采用此方法。
共享内存方法的主要技术特点是利用一片所有虚拟域均可访问的域间共享内存做为数据保存区域,采用诸如IO环等控制方法进行内存访问控制,从而实现域间通讯。
共享内存方法的主要流程是:
1、发送方向控制器提出数据发送请求;
2、控制器动态分配内存页;
3、发送方在内存页上写数据;
4、控制器通知接收方;
5、接收方获取内存页,进行数据读取。
域间共享内存可以减少信息拷贝的开销,从而可以获得较高的域间通讯带宽。但由于目前主流的共享内存方法(例如Critix公司的Xen)往往采用共享内存动态分配策略,导致不安全;并且每条数据信息占据一个页面,因此通讯开销大。
国防科大计算机学院的苏航于2007年在其硕士论文中提出了一种基于共享内存的域间通讯策略,提出了单页和双页通讯方法,但该方法只能较好地支持两个域间的通讯。若要在多个域间进行通讯,则需要建立多条通讯通道,开销大。
因此如何减少通讯开销,提高域间通讯性能,满足多个虚拟域之间大量数据传输的需求是近年来本领域技术人员研究的重要课题。
发明内容
本发明要解决的技术问题是提供一种在多个虚拟域间进行高效域间数据通讯的方法,既降低网络通讯短信息的通讯量和通讯负载,又加强域间通讯的安全性。
本发明的技术方案包括以下三个步骤:
第一步,构建虚拟域间通讯框架,方法是:
虚拟域间的通讯框架由每个虚拟域都包含的发送器、接收器和虚拟机监控器中的调度仲裁器、共享内存区、发送定时器、定时发送队列共六部分组成。
发送器是数据通讯的发送方,接收器是数据通讯的接收方,它们均是虚拟域中的独立进程。
调度仲裁器是对发送器和接收器对域间共享内存区数据的并发访问进行调度和仲裁的独立进程,它保证通讯时机、通讯数据的有效性和可靠性。
共享内存区是虚拟机监控器中的一片物理内存区域,存储欲通讯的数据。共享内存区由虚拟机监控器在虚拟域间通讯框架构建时预先从计算机的物理内存中静态分配,实现各个虚拟域的静态域间内存共享。该静态分配方法能避免虚拟域或用户对内存的动态分配和释放的操作,减少内存管理的开销,还可避免内存溢出等安全威胁,有效保证虚拟机监控器和虚拟域的安全性。
共享内存区由共享内存页组成,每页大小固定。共享内存页包括两方面的数据,一方面为页面信息,包括目标域标识符(DestDomainID)和页面数据长度标识符(PageDataLength);另一方面是信息数据,即为页面存储的多条信息数据,包括信息大小标识符(MessageLength)、源域标识符(SrcDomainID)和信息内容(MessageData)。
目标域标识符DestDomainID标识本共享内存页是否在使用,若本共享内存页在使用,该目标域标识符表示目标虚拟域(即数据将要发往的虚拟域)的ID号,范围为0~N-1,N为虚拟域个数;如果该页面尚未被使用,或是已经被读取和处理,则该目标域标识符的取值为一个非法ID,即不在0~N-1范围。
页面数据长度标识符PageDataLength表示本页面内所有欲发送信息的数据长度,即多个信息的长度总和,但该长度不包括页面信息中目标域标识符和页面数据长度标识符自身所占据的长度。
信息大小标识符MessageLength表示每条信息的数据长度;
源域标识符SrcDomainID表示信息的来源虚拟域ID,范围为0~N-1。
信息内容MessageData存贮欲发送的信息数据。
所有欲发送至同一目标虚拟域的信息数据都可写到同一共享内存页中。当一个页面还可存贮新信息时,信息数据累加记录到同一页面中;当一个页面不能再存贮新信息数据时,调度仲裁器将调度新的共享内存页,用于存储新的信息数据。
发送定时器是给调度仲裁器提供精确的时间信息的具有定时能力的独立进程。发送定时器定时周期在构建虚拟域间通讯框架时预先设定。发送定时器按照定时周期通知调度仲裁器,触发信息发送操作。定时周期设置应该根据实际背景对信息发送的实时性要求而定。一般地,100ms的定时周期可以满足基本需求。
定时发送队列是一个按照栈式结构组织的排队队列,用于存储发送方需要发送的共享内存页的页号。
第二步,发送器和调度仲裁器协同对信息进行发送,方法是:
1 发送器以异步调度的模式,向调度仲裁器提出发送请求,希望得到一个空闲的目标域共享内存页;
2 调度仲裁器从发送器接收到目标域的ID(destID);
3 调度仲裁器在所有的共享内存页中查找是否存在目标域的共享内存页,即查找“DestDomainID=destID”成立的共享内存页;若成立,意味着共享内存区中已经有欲发送到目标域的信息,从共享内存区中没被发送器使用的空闲页中查找PageDataLength最大的目标域共享内存页;如果存在多个发送器向同一目标域发送,则按照PageDataLength从大至小的原则以及先来先满足的原则,选择相应的不同目标域共享内存页作为即将使用的共享内存页;若不成立,说明共享内存区目前没有相应的目标域内存页,则判断共享内存区目前是否存在空白共享内存页:
3.1若存在,选择任意一个空白共享内存页;若不存在,等待接收器释放共享内存页,获得一个空白共享内存页;
3.2设置空白共享内存页为目标域共享内存页,即将该空白共享内存页的DestDomainID=destID:
4 调度仲裁器对所获取的目标域共享内存页加锁,并将该共享内存页的页号和页面的起始地址返回给发送器;
5 发送器从调度仲裁器获得目标域共享内存页的页号共享内存页和页面的起始地址(StartAddr)后,依据该页PageDataLength值,计算PageDataLength+StartAddr,得到本条信息可写的起始地址;
6 发送器从可写的起始地址起填写本条信息的相关数据;
7 发送器依据本条信息的长度,修改PageDataLength为PageDataLength+MessageLength;
8 发送器通知调度仲裁器本条信息填写完毕,异步触发发送例程。
发送例程的流程是:
1)调度仲裁器对已加锁的共享内存页解锁;
2)调度仲裁器检查共享内存页长度是否满足立即发送条件,即判断“PageDataLength>阈值”是否成立,若成立,则立刻发送该共享内存页;若不成立,则添加该共享内存页至定时发送队列中;发送长度阈值可以根据实际背景对信息发送的实时性要求而定,一般地,可以设定阈值为“80%×共享内存页面大小”。
3)调度仲裁器的发送定时器周期性触发,遍历定时发送队列,逐个发送共享内存页。第三步,调度仲裁器和接收器协同完成信息接收操作,方法是:
1)调度仲裁器通知接收器,表示有信息需要该目标域接收,被通知的目标域的ID为MyDomainID;
2)接收器获取通知后,从共享内存区查找所有满足“DestDomainID==MyDomainID”的信息共享内存页,所有满足条件的共享内存页构成列表PageList;
3)遍历PageList中的所有共享内存页
3.1 加锁目前遍历到的共享内存页;
3.2 拷贝目标域共享内存页到接收器的内存空间存储为副本信息页,并添加至副本信息页列表DuplicatedPageList中;
3.3 设置该目标域共享内存页为空白页,即DestDomainID=0xFF
3.4 异步调用副本信息页的读取例程;
3.5 解锁该共享内存页。
副本信息页的读取例程的流程为:
(1)读取副本信息页列表DuplicatedPageList,迭代处理每个副本信息页:
1.1 获得副本信息页的PageDataLength,并设定目前已读信息数据长度ReadMessageLength=0:
1.2 遍历读取并处理目标域共享内存页的每条信息,假设该条信息长度为MessageLengthi;
1.3 ReadMessageLength+=MessageLengthi;
1.4 判断“ReadMessageLength<PageDataLength”,若成立,返回操作1.2,若不成立,执行操作(2);
(2)判断是否还存在未处理的副本信息页,若不存在,则退出,若存在,则返回操作(1)。
采用本发明可以达到以下技术效果:
1.信息发送和接收开销小,通信带宽高
本发明通过如下多种策略使得***在信息发送和接收时消耗更小的开销,***性能得到明显提升。
●共享内存页的事先静态分配策略
由第一步可知,本发明采用事先静态分配的共享内存页策略,使得不需要在发送时临时分配内存,消除了内存管理开销;
●尽可能地减少内存拷贝次数
由第二步的步骤3和第三步的步骤2)可知,在信息发送和接收的完整过程中只需要在信息接收时拷贝数据,其他在信息发送、调度仲裁器的新信息告知等阶段都不需要拷贝数据,而是直接在共享内存页上进行读写,因此内存拷贝次数少。
●信息的批处理模式
如第二步的步骤3和第三步的步骤3),发送给同一目标域的所有信息都存储在具有相同目标域标识的一个或是若干个共享内存页中,调度仲裁器不是在得到每条新信息后都立刻发送共享内存页,而是首先判断发送器刚写的目标域页是否已经填写了足够多的信息,即PageDataLength是否已经较长,调度仲裁器在分配目标域共享内存页时,也是首先分配PageDataLength最长的共享内存页,这样一方面能保证包含足够多信息的共享内存页能得到尽快地发送,一方面调度仲裁器只需要进行很少次的数据发送和通知操作,接收器也仅仅需要相应很少次数的接收事件,从而减少了***开销。
●提高了信息写的并发能力
由第二步的步骤2可知,在信息发送过程中,调度仲裁器可为发送同一目标域的不同信息分配各自的目标域共享内存页,从而使得多个源域在进行发送时并发写,以此提高信息写的效率。
2.信息发送和接收过程的稳定性和安全性高
由第一步可知,本发明所采用的共享内存区的静态分配策略取消了内存页的动态分配和管理,而内存的动态管理往往是***故障和不安全因素的主要来源。因此,信息发送和接收过程的的稳定性和安全性高。
3.支持多域间的数据通讯
由第二步的步骤2和第三步的步骤2)可知,信息发送过程中,发送器和调度仲裁器可以利用共享内存页中的目标域标识符来区分信息的发送目的地,从而能同时支持多个虚拟域之间的数据通讯。
4.当存在多个同一目标域的共享内存页共享内存页时,调度仲裁器根据共享内存页的空闲情况,支持同一目标域的多个共享内存页的并发读写操作,从而支持不同原域的信息并发写,从而提高***通讯带宽;且根据第二步的步骤5、6、7、8和9,发送器首先根据页面的PageDataLength值和页面起始地址StartAddr,得到本条信息的起始地址为PageDataLength+StartAddr。发送器直接定位到该地址,按照信息实际要求填写信息的有关数据,包括信息大小、源域ID和信息内容。信息填写完毕后,发送器需要改写页面的PageDataLength值,重新标识下一条新信息的起始地址,后续的信息将在同一共享内存页中陆续添加,因此多条信息在同一页面内的压缩存储,使得信息的发送、接收和处理是批处理模式,使得调度仲裁器的发送开销尽可能的小,同时接收器得到的事件也尽可能的少。这样,整个***的信息处理开销就小,性能会得到一定的提高。
因此,本发明能很好的满足那些需要在虚拟域间进行通讯应用场景,特别是在短信息通讯场景,例如虚拟域的控制信息传递、多域间的安全信息交互。
附图说明
图1是本发明总体流程图;
图2是本发明虚拟域间信息通讯框架示意图;
图3是本发明共享内存页信息结构图;
图4是本发明第二步进行信息发送的流程图;
图5是本发明第三步进行信息接收的流程图。
具体实施方法
图1是本发明总体流程图,本发明分为三步:
第一步,构建虚拟域间通讯框架,主要结构详见图2;
第二步,发送器和调度仲裁器协同进行信息发送,详细流程参见图4;
第三步,接收器和调度仲裁器协同进行信息接收,详细流程参见图5。
图2是本发明虚拟域间信息通讯框架示意图。虚拟域间的通讯框架由虚拟机监控器中的调度仲裁器、共享内存区、发送定时器、定时发送队列,以及每个虚拟域都包含的发送器和接收器组成。
发送器、接收器分别是数据通讯的发送方、接收方,以虚拟域中独立进程的形式存在。
调度仲裁器、发送定时器和定时发送队列和共享内存区存在于虚拟机监控器中。
调度仲裁器负责对发送器和接收器对共享内存区数据的并发访问进行调度和仲裁,以及对接收器的新信息通知,以此来保证通讯时机、通讯数据的有效性和可靠性。调度仲裁器以虚拟机监控器中独立进程的形式存在。
共享内存区体现为虚拟机监控器中的一片物理内存区域,其包含按照页式管理机制管理的若干共享内存页。欲通讯的数据存储在共享内存页中,发送器直接把信息数据写在相应的共享内存页中,接收器则从共享内存页中拷贝信息数据。
发送定时器包含在调度仲裁器中,负责给调度仲裁器提供精确的时间信息。预先设定的定时周期,定时通知调度仲裁器,触发信息发送操作。发送定时器表现为具有定时能力的独立进程。
定时发送队列则是一个按照栈式结构组织的排队队列,用于存储目前需要发送的共享内存页的页号。
图3是本发明共享内存区中每个共享内存页的页结构。在具体实施时,页面的大小应该应采用n KB(n为2的整数次幂),建议采用4KB或是16KB大小。
共享内存页存贮页面信息和数据信息。页面信息包括目标域标识符和页面数据长度标识符。数据信息即为每条信息数据,每条信息包括信息大小标识符、源域标识符和信息数据。
1.目标域标识符DestDomainID,采用无符号整形的数据类型,标识本共享内存页是否在使用,若本共享内存页在使用,该目标域标识符表示目标虚拟域(即数据将要发往的虚拟域)的ID号,范围为0~N-1,N为虚拟域个数;如果该页面尚未被使用,或是已经被读取和处理,则该目标域标识符的取值为一个非法ID,即不在0~N-1范围如0xFF。
2.页面数据长度标识符采用无符号整形的数据类型,表达本页面内所有欲发送信息的数据长度,该长度不包括页面信息中目标域标识符和页面数据长度标识符自身所占据的长度。
3.信息大小标识符采用无符号整形的数据类型,表示本信息所有结构数据的长度,即把信息的信息大小标识符、源域标识符和信息数据这三部分的长度都计算在内。
4.源域标识符长度采用无符号整形的数据类型,标识信息的发送源虚拟域ID。
5.信息数据保存实际的信息内容数据,长度为实际信息数据的大小。
考虑到在实际应用背景中,一般不会同时使用超过255个虚拟域。因此共享内存页每个字段的典型长度为:目标域标识符是1字节、页面数据长度标识符是3字节、信息大小标识符是3字节、源域标识符是1字节,而信息数据则根据实际情况变长。这样即可以满足255个虚拟域之间信息通讯,并且每条信息不超过16MB,足以满足正常应用需求。
图4给出了信息发送流程图。信息发送流程为:
1 发送器以异步调度的模式,向调度仲裁器提出发送请求,希望得到一个空闲的目标域共享内存页。
2 调度仲裁器从发送器接收到目标域的ID(destID);
3 调度仲裁器在所有的共享内存页中查找是否存在目标域的共享内存页,即查找“DestDomainID==destID”成立的共享内存页;若成立,意味着共享内存区中已经有欲发送到目标域的信息,从共享区中没被使用的空闲页中查找PageDataLength最大的目标域共享内存页;如果存在多个发送器都欲向同一目标域发送,则按照PageDataLength从大至小的原则以及先来先满足的原则,来选择相应的不同目标域共享内存页作为即将使用的共享内存页;若不成立,则说明共享内存区目前没有相应的目标域内存页,则判断共享内存区目前是否存在空白共享内存页:
3.1若存在,选择任意一个空白共享内存页;若不存在,等待接收器释放共享内存页,获得一个空白共享内存页;
3.2设置空白共享内存页为目标域共享内存页,即将该空白共享内存页的DestDomainID=destID;
4 调度仲裁器对所获取的目标域共享内存页加锁,并将该共享内存页的页号和页面的起始地址返回给发送器;
5 发送器从调度仲裁器获得目标域共享内存页的页号共享内存页和页面的起始地址(StartAddr)后,依据该页PageDataLength值,计算PageDataLength+StartAddr,得到本条信息可写的起始地址;
6 发送器从可写的起始地址起填写本条信息的相关数据;
7 发送器依据本条信息的长度,修改PageDataLength为PageDataLength+MessageLength;
8 发送器通知调度仲裁器本条信息填写完毕,触发发送例程;
发送例程的流程为:
1)调度仲裁器对已加锁的共享内存页解锁;
2)调度仲裁器检查共享内存页长度是否满足立即发送条件,即判断“PageDataLength>阈值”是否成立,若成立,则立刻发送该共享内存页;若不成立,则添加该共享内存页至定时发送队列中;
3)调度仲裁器的发送定时器周期性触发,遍历定时发送队列,逐个发送共享内存页。
图5给出了本发明第三步信息接收的流程图。信息接收的流程为:
1 调度仲裁器通知接收器,表示有信息需要该目标域接收,被通知的目标域的ID为MyDomainID;
2 接收器获取通知后,从共享内存区查找所有满足“DestDomainID==MyDomainID”的信息共享内存页。假设所有满足条件的共享内存页构成列表PageList;
3 遍历PageList中的所有共享内存页:
3.1 加锁目前遍历到的信息页;
3.2 拷贝目标域共享内存页到接收器的内存空间存储为副本信息页,并添加至副本信息页列表DuplicatedPageList中;
3.3 设置该目标域共享内存页为空白页,即DestDomainID=0xFF;
3.4 异步调用副本信息页的读取例程;
3.5 解锁该共享内存页。
副本信息页的读取例程流程如下:
(1)读取副本信息页列表DuplicatedPageList,迭代处理每个副本信息页:
1.1 获得副本信息页的PageDataLength,并设定目前已读信息数据长度ReadMessageLength=0;
1.2 遍历读取并处理目标域共享内存页的每条信息,假设该条信息长度为MessageLengthi;
1.3 ReadMessageLength+=MessageLengthi;
1.4 判断“ReadMessageLength<PageDataLength”,若成立,返回操作1.2,若不成立,执行操作(2);
(2)判断是否还存在未处理的副本信息页,若不存在,则退出,若存在,则返回操作(1)。
Claims (5)
1.一种虚拟域间短信息通讯方法,其特征在于包括以下步骤:
第一步,构建虚拟域间通讯框架,方法是:
虚拟域间的通讯框架由每个虚拟域都包含的发送器、接收器和虚拟机监控器中的调度仲裁器、共享内存区、发送定时器、定时发送队列共六部分组成;
发送器是数据通讯的发送方,接收器是数据通讯的接收方,它们均是虚拟域中的独立进程;
调度仲裁器是对发送器和接收器对域间共享内存区数据的并发访问进行调度和仲裁的独立进程;
共享内存区是虚拟机监控器中的一片物理内存区域,存储欲通讯的数据,共享内存区由虚拟机监控器在虚拟域间通讯框架构建时预先从计算机的物理内存中静态分配,实现各个虚拟域的静态域间内存共享;共享内存区由共享内存页组成,每页大小固定;共享内存页包括两方面的数据,一方面为页面信息,包括目标域标识符DestDomainID和页面数据长度标识符PageDataLength;另一方面是信息数据,即为页面存储的多条信息数据,包括信息大小标识符MessageLength、源域标识符SrcDomainID和信息内容MessageData;目标域标识符DestDomainID标识本共享内存页是否在使用,若本共享内存页在使用,该目标域标识符表示目标虚拟域的ID号,范围为0~N-1,N为虚拟域个数;如果该页面尚未被使用或是已经被读取和处理,则该目标域标识符的取值为一个非法ID,即不在0~N-1范围;页面数据长度标识符PageDataLength表示本页面内所有欲发送信息的数据长度,即多个信息的长度总和,但该长度不包括页面信息中目标域标识符和页面数据长度标识符自身所占据的长度;信息大小标识符MessageLength表示每条信息的数据长度;源域标识符SrcDomainID表示信息的来源虚拟域ID,范围为0~N-1;信息内容MessageData存贮欲发送的信息数据;
发送定时器是给调度仲裁器提供精确的时间信息的具有定时能力的独立进程,发送定时器定时周期在构建虚拟域间通讯框架时预先设定;发送定时器按照定时周期通知调度仲裁器,触发信息发送操作;定时周期设置根据实际背景对信息发送的实时性要求而定;
定时发送队列是一个按照栈式结构组织的排队队列,用于存储发送方需要发送的共享内存页的页号;
第二步,发送器和调度仲裁器协同对信息进行发送,方法是:
步骤1 发送器以异步调度的模式,向调度仲裁器提出发送请求,希望得到一个空闲的目标域共享内存页;
步骤2 调度仲裁器从发送器接收到目标域的ID即destID;
步骤3 调度仲裁器在所有的共享内存页中查找是否存在目标域的共享内存页,即查找“DestDomainID=destID”成立的共享内存页;若成立,从共享内存区中没被发送器使用的空闲页中查找PageDataLength最大的目标域共享内存页;如果存在多个发送器向同一目标域发送,则按照PageDataLength从大至小的原则以及先来先满足的原则,选择相应的不同目标域共享内存页作为即将使用的共享内存页;若不成立,判断共享内存区目前是否存在空白共享内存页:若存在,选择任意一个空白共享内存页,若不存在,等待接收器释放共享内存页,获得一个空白共享内存页;设置空白共享内存页为目标域共享内存页,即将该空白共享内存页的DestDomainID=destID:
步骤4 调度仲裁器对所获取的目标域共享内存页加锁,并将该共享内存页的页号和页面的起始地址返回给发送器;
步骤5 发送器从调度仲裁器获得目标域共享内存页的页号共享内存页和页面的起始地址StartAddr后,依据该页PageDataLength值,计算PageDataLength+StartAddr,得到本条信息可写的起始地址;
步骤6 发送器从可写的起始地址起填写本条信息的相关数据;
步骤7 发送器依据本条信息的长度,修改PageDataLength为PageDataLength+MessageLength;
步骤8 发送器通知调度仲裁器本条信息填写完毕,异步触发发送例程;
第三步,调度仲裁器和接收器协同完成信息接收操作,方法是:
1)调度仲裁器通知接收器,表示有信息需要该目标域接收,被通知的目标域的ID为MyDomainID;
2)接收器获取通知后,从共享内存区查找所有满足“DestDomainID==MyDomainID”的信息共享内存页,所有满足条件的共享内存页构成列表PageList;
3)遍历PageList中的所有共享内存页:
1.3.1 加锁目前遍历到的共享内存页;
1.3.2 拷贝目标域共享内存页到接收器的内存空间存储为副本信息页,并添加至副本信息页列表DuplicatedPageList中;
1.3.3 设置该目标域共享内存页为空白页,即DestDomainID=OxFF;
1.3.4 异步调用副本信息页的读取例程;
1.3.5 解锁该信息页。
2.如权利要求1所述的一种虚拟域间短信息通讯方法,其特征在于发送例程的流程是:
2.1 调度仲裁器对已加锁的共享内存页解锁;
2.2 调度仲裁器检查共享内存页长度是否满足立即发送条件,即判断“PageDataLength>阈值”是否成立,若成立,则立刻发送该共享内存页;若不成立,则添加该共享内存页至定时发送队列中;发送长度阈值根据实际背景对信息发送的实时性要求而定;
2.3 调度仲裁器的发送定时器周期性触发,遍历定时发送队列,逐个发送共享内存页。
3.如权利要求1所述的一种虚拟域间短信息通讯方法,其特征在于副本信息页的读取例程的流程是:
(1)读取副本信息页列表DuplicatedPageList,迭代处理每个副本信息页:
3.1.1 获得副本信息页的PageDataLength,并设定目前已读信息数据长度ReadMes sageLength=0;
3.1.2 遍历读取并处理目标域共享内存页的每条信息,假设该条信息长度为MessageLengthi;
3.1.3 ReadMessageLength+=MessageLengthi;
3.1.4 判断“ReadMessageLength<PageDataLength”,若成立,返回操作3.1.2,若不成立,执行操作(2);
(2)判断是否还存在未处理的副本信息页,若不存在,则退出,若存在,则返回操作(1)。
4.如权利要求1所述的一种虚拟域间短信息通讯方法,其特征在于发送定时器的定时周期设定为100ms。
5.如权利要求2所述的一种虚拟域间短信息通讯方法,其特征在于发送长度阈值设定为“80%×共享内存页面大小”。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101434464A CN101383781B (zh) | 2008-10-30 | 2008-10-30 | 虚拟域间短信息通讯方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101434464A CN101383781B (zh) | 2008-10-30 | 2008-10-30 | 虚拟域间短信息通讯方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101383781A true CN101383781A (zh) | 2009-03-11 |
CN101383781B CN101383781B (zh) | 2010-10-06 |
Family
ID=40463408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101434464A Expired - Fee Related CN101383781B (zh) | 2008-10-30 | 2008-10-30 | 虚拟域间短信息通讯方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101383781B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101859263A (zh) * | 2010-06-12 | 2010-10-13 | 中国人民解放军国防科学技术大学 | 一种支持在线迁移的虚拟机间快速通信方法 |
CN101667144B (zh) * | 2009-09-29 | 2013-02-13 | 北京航空航天大学 | 一种基于共享内存的虚拟机通信方法 |
WO2013075445A1 (zh) * | 2011-11-22 | 2013-05-30 | 中兴通讯股份有限公司 | 虚拟驱动的交互方法及装置 |
CN103309841A (zh) * | 2012-03-16 | 2013-09-18 | 英飞凌科技股份有限公司 | 用于进行超时监测的方法和*** |
WO2013155792A1 (zh) * | 2012-04-16 | 2013-10-24 | 中兴通讯股份有限公司 | 基于调度层实现虚拟机间通讯的方法和装置 |
CN103488523A (zh) * | 2013-09-26 | 2014-01-01 | 华为技术有限公司 | 一种页的访问方法和页的访问装置、服务器 |
CN107491354A (zh) * | 2017-07-03 | 2017-12-19 | 北京东土科技股份有限公司 | 一种基于共享内存的虚拟机间通信方法及装置 |
CN108196934A (zh) * | 2016-12-08 | 2018-06-22 | 阿里巴巴集团控股有限公司 | 一种定时器的定时设置方法、装置和虚拟化设备 |
CN113868172A (zh) * | 2021-09-28 | 2021-12-31 | 上海兆芯集成电路有限公司 | 互连接口 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101277245B (zh) * | 2008-05-06 | 2012-05-23 | 华为技术有限公司 | 一种l2vpn跨域的实现方法、***和装置 |
-
2008
- 2008-10-30 CN CN2008101434464A patent/CN101383781B/zh not_active Expired - Fee Related
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667144B (zh) * | 2009-09-29 | 2013-02-13 | 北京航空航天大学 | 一种基于共享内存的虚拟机通信方法 |
CN101859263B (zh) * | 2010-06-12 | 2012-07-25 | 中国人民解放军国防科学技术大学 | 一种支持在线迁移的虚拟机间快速通信方法 |
CN101859263A (zh) * | 2010-06-12 | 2010-10-13 | 中国人民解放军国防科学技术大学 | 一种支持在线迁移的虚拟机间快速通信方法 |
WO2013075445A1 (zh) * | 2011-11-22 | 2013-05-30 | 中兴通讯股份有限公司 | 虚拟驱动的交互方法及装置 |
US10191795B2 (en) | 2012-03-16 | 2019-01-29 | Infineon Technologies Ag | Method and system for timeout monitoring |
CN103309841A (zh) * | 2012-03-16 | 2013-09-18 | 英飞凌科技股份有限公司 | 用于进行超时监测的方法和*** |
US9727400B2 (en) | 2012-03-16 | 2017-08-08 | Infineon Technologies Ag | Method and system for timeout monitoring |
WO2013155792A1 (zh) * | 2012-04-16 | 2013-10-24 | 中兴通讯股份有限公司 | 基于调度层实现虚拟机间通讯的方法和装置 |
CN103488523A (zh) * | 2013-09-26 | 2014-01-01 | 华为技术有限公司 | 一种页的访问方法和页的访问装置、服务器 |
CN108196934A (zh) * | 2016-12-08 | 2018-06-22 | 阿里巴巴集团控股有限公司 | 一种定时器的定时设置方法、装置和虚拟化设备 |
CN108196934B (zh) * | 2016-12-08 | 2022-04-26 | 阿里巴巴集团控股有限公司 | 一种定时器的定时设置方法、装置和虚拟化设备 |
CN107491354A (zh) * | 2017-07-03 | 2017-12-19 | 北京东土科技股份有限公司 | 一种基于共享内存的虚拟机间通信方法及装置 |
CN107491354B (zh) * | 2017-07-03 | 2020-01-21 | 北京东土科技股份有限公司 | 一种基于共享内存的虚拟机间通信方法及装置 |
CN113868172A (zh) * | 2021-09-28 | 2021-12-31 | 上海兆芯集成电路有限公司 | 互连接口 |
CN113868172B (zh) * | 2021-09-28 | 2024-06-18 | 上海兆芯集成电路股份有限公司 | 互连接口 |
Also Published As
Publication number | Publication date |
---|---|
CN101383781B (zh) | 2010-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101383781B (zh) | 虚拟域间短信息通讯方法 | |
CN103177027B (zh) | 获取动态Feed索引的方法和*** | |
CN101667144B (zh) | 一种基于共享内存的虚拟机通信方法 | |
CN105335513B (zh) | 一种分布式文件***及文件存储方法 | |
CN101535965B (zh) | 用于提高存储管理***的可伸缩性和可移植性的技术 | |
CN103327052B (zh) | 数据存储方法和***以及数据访问方法和*** | |
CN103873451B (zh) | 一种数据同步的方法、设备和*** | |
CN101739301B (zh) | Unix环境下进程间大量数据传输的方法 | |
CN102882983A (zh) | 一种云存储***中提升并发访问性能的数据快速存储方法 | |
CN102685159B (zh) | 文件传输方法及装置 | |
CN101150488B (zh) | 一种零拷贝网络报文接收方法 | |
CN102737119B (zh) | 统一资源定位符的查找方法、过滤方法和相关设备及*** | |
CN103095758B (zh) | 一种分布式文件***及该***中处理文件数据的方法 | |
CN101150485A (zh) | 一种零拷贝缓冲区队列网络数据发送的管理方法 | |
CN104135539A (zh) | 数据存储方法、sdn控制器和分布式网络存储*** | |
CN108270676A (zh) | 一种基于IntelDPDK的网络数据处理方法及装置 | |
CN103595780A (zh) | 基于消重的云计算资源调度方法 | |
CN101789976A (zh) | 嵌入式网络存储***及其方法 | |
CN103186537A (zh) | 一种基于索引排序的数据读写方法及装置 | |
CN103827842A (zh) | 向控制器存储器空间写入消息 | |
CN103207920A (zh) | 一种元数据并行采集*** | |
CN101707565A (zh) | 零拷贝网络报文发送、接收方法和装置 | |
CN105068769A (zh) | 一种基于消息中间件的消息管理方法及装置 | |
CN110708256A (zh) | Cdn调度方法、装置、网络设备及存储介质 | |
CN106790347B (zh) | 一种基于netty的大规模并发数据转发方法 |
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 |
Granted publication date: 20101006 Termination date: 20161030 |
|
CF01 | Termination of patent right due to non-payment of annual fee |