发明名称 虚拟域间短信息通讯方法
摘要 本发明公开了一种虚拟域间短信息通讯方法,要解决的技术问题是提供一种在多个虚拟域间进行高效域间数据通讯的方法,既降低网络通讯短信息的通讯量和通讯负载,又加强域间通讯的安全性。技术方案是首先构建由发送器、接收器、调度仲裁器、共享内存区、发送定时器、定时发送队列组成的虚拟域间通讯框架,再由发送器和调度仲裁器协同对信息进行发送,最后由调度仲裁器和接收器协同完成信息接收操作。采用本发明可实现多域间的数据通讯,可以使信息发送和接收开销小,通信带宽高,且信息发送和接收过程的稳定性和安全性高。
申请公布号 CN101383781A 申请公布日期 2009.03.11
申请号 CN200810143446.4 申请日期 2008.10.30
申请人 中国人民解放军国防科学技术大学 发明人 谭郁松;吴庆波;苏航
分类号 H04L12/58(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L12/58(2006.01)I
代理机构 国防科技大学专利服务中心 代理人 郭 敏
主权项 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 解锁该信息页。
地址 410073湖南省长沙市砚瓦池正街47号