欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

虛擬域間短信息通訊方法

文檔序號:7918272閱讀:259來源:國知局
專利名稱:虛擬域間短信息通訊方法
技術領域
本發(fā)明涉及計算機領域虛擬機域間通訊的方法,尤其是一種虛擬域間短信息通訊方法。
背景技術
近年來虛擬化技術一直處于火熱狀態(tài),最近幾年在服務器整合、計算機安全、數(shù)據(jù) 中心等受到各研究機構和商業(yè)機構的重視。
虛擬機的運行環(huán)境必然包含兩大部分, 一為虛擬監(jiān)控器,主要目的是完成虛擬化操 作和管理;另一為若干個運行在虛擬監(jiān)控器之上的操作系統(tǒng)(即"虛擬域"),虛擬域 運行用戶的應用程序。
為支持虛擬域之間的協(xié)同和交互,必須設計和實現(xiàn)高效的域間通訊方法。目前主流 的虛擬機域間通訊模式有兩種方法,一種為網絡通訊方法、另一種是域間共享內存方法。
網絡通訊方法使用傳統(tǒng)的網絡數(shù)據(jù)通訊(TCP/UDP、 Socket等)的方法進行數(shù)據(jù)通 訊。該方法的基本流程為
1、 數(shù)據(jù)發(fā)送方利用傳統(tǒng)的網絡通訊方法,經過一次完整的網絡協(xié)議棧,通過網 絡向接收方發(fā)送數(shù)據(jù)報文;
2、 數(shù)據(jù)接收方利用傳統(tǒng)的網絡通訊方法,經過一次完整的網絡協(xié)議棧,通過網 絡接收數(shù)據(jù)報文。
網絡通訊方法的優(yōu)點是簡單,對上層應用軟件的支持好。但是這種通訊方法不支持 域間顯示的直接通訊,需要進行兩次完整的網絡發(fā)送和接收操作,執(zhí)行路徑長,所以域 間通訊開銷大、帶寬低,不能滿足虛擬域之間進行大量數(shù)據(jù)傳輸?shù)男枨?。例如Limix的 KVM項目便采用此方法。
共享內存方法的主要技術特點是利用一片所有虛擬域均可訪問的域間共享內存做
為數(shù)據(jù)保存區(qū)域,采用諸如IO環(huán)等控制方法進行內存訪問控制,從而實現(xiàn)域間通訊。 共享內存方法的主要流程是
1、 發(fā)送方向控制器提出數(shù)據(jù)發(fā)送請求;
2、 控制器動態(tài)分配內存頁;
3、 發(fā)送方在內存頁上寫數(shù)據(jù);
4、 控制器通知接收方;
5、 接收方獲取內存頁,進行數(shù)據(jù)讀取。
域間共享內存可以減少信息拷貝的開銷,從而可以獲得較高的域間通訊帶寬。但由 于目前主流的共享內存方法(例如Critix公司的Xen)往往采用共享內存動態(tài)分配策 略,導致不安全;并且每條數(shù)據(jù)信息占據(jù)一個頁面,因此通訊開銷大。
國防科大計算機學院的蘇航于2007年在其碩士論文中提出了一種基于共享內存的 域間通訊策略,提出了單頁和雙頁通訊方法,但該方法只能較好地支持兩個域間的通訊。 若要在多個域間進行通訊,則需要建立多條通訊通道,開銷大。
因此如何減少通訊開銷,提高域間通訊性能,滿足多個虛擬域之間大量數(shù)據(jù)傳輸?shù)?需求是近年來本領域技術人員研究的重要課題。

發(fā)明內容
本發(fā)明要解決的技術問題是提供一種在多個虛擬域間進行高效域間數(shù)據(jù)通訊的方 法,既降低網絡通訊短信息的通訊量和通訊負載,又加強域間通訊的安全性。 本發(fā)明的技術方案包括以下三個歩驟 第一歩,構建虛擬域間通訊框架,方法是-
虛擬域間的通訊框架由每個虛擬域都包含的發(fā)送器、接收器和虛擬機監(jiān)控器中的調 度仲裁器、共享內存區(qū)、發(fā)送定時器、定時發(fā)送隊列共六部分組成。
發(fā)送器是數(shù)據(jù)通訊的發(fā)送方,接收器是數(shù)據(jù)通訊的接收方,它們均是虛擬域中的獨 立進程。
調度仲裁器是對發(fā)送器和接收器對域間共享內存區(qū)數(shù)據(jù)的并發(fā)訪問進行調度和仲裁 的獨立進程,它保證通訊時機、通訊數(shù)據(jù)的有效性和可靠性。
共享內存區(qū)是虛擬機監(jiān)控器中的一片物理內存區(qū)域,存儲欲通訊的數(shù)據(jù)。共享內存 區(qū)由虛擬機監(jiān)控器在虛擬域間通訊框架構建時預先從計算機的物理內存中靜態(tài)分配,實 現(xiàn)各個虛擬域的靜態(tài)域間內存共享。該靜態(tài)分配方法能避免虛擬域或用戶對內存的動態(tài) 分配和釋放的操作,減少內存管理的開銷,還可避免內存溢出等安全威脅,有效保證虛 擬機監(jiān)控器和虛擬域的安全性。
共享內存區(qū)由共享內存頁組成,每頁大小固定。共享內存頁包括兩方面的數(shù)據(jù),一
方面為頁面信息,包括目標域標識符(DestDomainID )和頁面數(shù)據(jù)長度標識符
(PageDataLength);另一方面是信息數(shù)據(jù),即為頁面存儲的多條信息數(shù)據(jù),包括信息 大小標識符(MessageLength)、源域標識符(SrcDomainID)和信息內容(MessageData)。
目標域標識符DestDomainID標識本共享內存頁是否在使用,若本共享內存頁在使用, 該目標域標識符表示目標虛擬域(即數(shù)據(jù)將要發(fā)往的虛擬域)的ID號,范圍為0 N-1, N為虛擬域個數(shù);如果該頁面尚未被使用,或是已經被讀取和處理,則該目標域標識符的 取值為一個非法ID,即不在0 N-1范圍。
頁面數(shù)據(jù)長度標識符PageDataLength表示本頁面內所有欲發(fā)送信息的數(shù)據(jù)長度,即 多個信息的長度總和,但該長度不包括頁面信息中目標域標識符和頁面數(shù)據(jù)長度標識符 自身所占據(jù)的長度。
信息大小標識符MessageLength表示每條信息的數(shù)據(jù)長度;
源域標識符SrcDomainID表示信息的來源虛擬域ID,范圍為0 N-1。
信息內容MessageData存貯欲發(fā)送的信息數(shù)據(jù)。
所有欲發(fā)送至同一目標虛擬域的信息數(shù)據(jù)都可寫到同一共享內存頁中。當一個頁面 還可存貯新信息時,信息數(shù)據(jù)累加記錄到同一頁面中;當一個頁面不能再存貯新信息數(shù) 據(jù)時,調度仲裁器將調度新的共享內存頁,用于存儲新的信息數(shù)據(jù)。
發(fā)送定時器是給調度仲裁器提供精確的時間信息的具有定時能力的獨立進程。發(fā)送 定時器定時周期在構建虛擬域間通訊框架時預先設定。發(fā)送定時器按照定時周期通知調 度仲裁器,觸發(fā)信息發(fā)送操作。定時周期設置應該根據(jù)實際背景對信息發(fā)送的實時性要 求而定。 一般地,100ms的定時周期可以滿足基本需求。
定時發(fā)送隊列是一個按照棧式結構組織的排隊隊列,用于存儲發(fā)送方需要發(fā)送的共 享內存頁的頁號。
第二步,發(fā)送器和調度仲裁器協(xié)同對信息進行發(fā)送,方法是
1發(fā)送器以異步調度的模式,向調度仲裁器提出發(fā)送請求,希望得到一個空閑的目 標域共享內存頁;
2 調度仲裁器從發(fā)送器接收到目標域的ID (destID);
3調度仲裁器在所有的共享內存頁中査找是否存在目標域的共享內存頁,即查找 "DestDomainID=destID"成立的共享內存頁;若成立,意味著共享內存區(qū)中已 經有欲發(fā)送到目標域的信息,從共享內存區(qū)中沒被發(fā)送器使用的空閑頁中查找 PageDataLength最大的目標域共享內存頁;如果存在多個發(fā)送器向同一 目標域 發(fā)送,則按照PageDataLength從大至小的原則以及先來先滿足的原則,選擇相
應的不同目標域共享內存頁作為即將使用的共享內存頁;若不成立,說明共享內 存區(qū)目前沒有相應的目標域內存頁,則判斷共享內存區(qū)目前是否存在空白共享內 存頁-
3. l若存在,選擇任意一個空白共享內存頁;若不存在,等待接收器釋放共
享內存頁,獲得一個空白共享內存頁; 3.2設置空白共享內存頁為目標域共享內存頁,即將該空白共享內存頁的
DestDomainID二destID;
4 調度仲裁器對所獲取的目標域共享內存頁加鎖,并將該共享內存頁的頁號和頁面 的起始地址返回給發(fā)送器;
5 發(fā)送器從調度仲裁器獲得目標域共享內存頁的頁號共享內存頁和頁面的起始地 址(StartAddr)后,依據(jù)該頁PageDataLength值,計算PageDataLength+ StartAciclr,得到本條信息可寫的起始地址;
6 發(fā)送器從可寫的起始地址起填寫本條信息的相關數(shù)據(jù);
7 發(fā)送器依據(jù)本條信息的長度,修改PageDataLength為PageDataLength + MessageLength;
8 發(fā)送器通知調度仲裁器本條信息填寫完畢,異歩觸發(fā)發(fā)送例程。 發(fā)送例程的流程是
1) 調度仲裁器對已加鎖的共享內存頁解鎖;
2) 調度仲裁器檢查共享內存頁長度是否滿足立即發(fā)送條件,即判斷
"PageDataLength 〉閾值"是否成立,若成立,則立刻發(fā)送該共享內存頁;若 不成立,則添加該共享內存頁至定時發(fā)送隊列中;發(fā)送長度閾值可以根據(jù)實際背 景對信息發(fā)送的實時性要求而定, 一般地,可以設定閾值為"8(WX共享內存頁 面大小"。
3) 調度仲裁器的發(fā)送定時器周期性觸發(fā),遍歷定時發(fā)送隊列,逐個發(fā)送共享內存頁。 第三步,調度仲裁器和接收器協(xié)同完成信息接收操作,方法是
1) 調度仲裁器通知接收器,表示有信息需要該目標域接收,被通知的目標域的 ID為MyDomainID;
2) 接收器獲取通知后,從共享內存區(qū)査找所有滿足"DestDomainID==MyDoraainID" 的信息共享內存頁,所有滿足條件的共享內存頁構成列表PageList;
3) 遍歷PageList中的所有共享內存頁
3.1加鎖目前遍歷到的共享內存頁;
3.2拷貝目標域共享內存頁到接收器的內存空間存儲為副本信息頁,并添加至
副本信息頁列表DuplicatedPageList中; 3.3設置該目標域共享內存頁為空白頁,即DestDomainID = OxFF 3.4異步調用副本信息頁的讀取例程; 3.5解鎖該共享內存頁。 副本信息頁的讀取例程的流程為 (1)讀取副本信息頁列表D叩licatedPageList,迭代處理每個副本信息頁 1.1獲得副本信息頁的PageDataLength ,并設定目前已讀信息數(shù)據(jù)長度
ReadMessageLength = 0; 1.2遍歷讀取并處理目標域共享內存頁的每條信息,假設該條信息長度為
MessageLengthi; 1.3 ReadMessageLength += MessageLength"
1.4判斷"ReadMessageLength 〈 PageDataLength ",若成立,返回操作1. 2, 若不成立,執(zhí)行操作(2); (2)判斷是否還存在未處理的副本信息頁,若不存在,則退出,若存在,則返回
操作(1)。 采用本發(fā)明可以達到以下技術效果 1.信息發(fā)送和接收開銷小,通信帶寬高
本發(fā)明通過如下多種策略使得系統(tǒng)在信息發(fā)送和接收時消耗更小的開銷,系統(tǒng)性
能得到明顯提升。
*共享內存頁的事先靜態(tài)分配策略
由第一歩可知,本發(fā)明采用事先靜態(tài)分配的共享內存頁策略,使得不需要在 發(fā)送時臨時分配內存,消除了內存管理開銷;
*盡可能地減少內存拷貝次數(shù)
由第二步的步驟3和第三步的步驟2)可知,在信息發(fā)送和接收的完整過程 中只需要在信息接收時拷貝數(shù)據(jù),其他在信息發(fā)送、調度仲裁器的新信息告 知等階段都不需要拷貝數(shù)據(jù),而是直接在共享內存頁上進行讀寫,因此內存 拷貝次數(shù)少。
*信息的批處理模式
如第二步的步驟3和第三步的步驟3),發(fā)送給同一目標域的所有信息都存 儲在具有相同目標域標識的一個或是若干個共享內存頁中,調度仲裁器不是 在得到每條新信息后都立刻發(fā)送共享內存頁,而是首先判斷發(fā)送器剛寫的目 標域頁是否已經填寫了足夠多的信息,即PageDataLength是否已經較長,調 度仲裁器在分配目標域共享內存頁時,也是首先分配PageDataLength最長的 共享內存頁,這樣一方面能保證包含足夠多信息的共享內存頁能得到盡快地 發(fā)送, 一方面調度仲裁器只需要進行很少次的數(shù)據(jù)發(fā)送和通知操作,接收器 也僅僅需要相應很少次數(shù)的接收事件,從而減少了系統(tǒng)開銷。 *提高了信息寫的并發(fā)能力
由第二步的步驟2可知,在信息發(fā)送過程中,調度仲裁器可為發(fā)送同一目標 域的不同信息分配各自的目標域共享內存頁,從而使得多個源域在進行發(fā)送 時并發(fā)寫,以此提高信息寫的效率。
2. 信息發(fā)送和接收過程的穩(wěn)定性和安全性高
由第一歩可知,本發(fā)明所采用的共享內存區(qū)的靜態(tài)分配策略取消了內存頁的動態(tài) 分配和管理,而內存的動態(tài)管理往往是系統(tǒng)故障和不安全因素的主要來源。因此, 信息發(fā)送和接收過程的的穩(wěn)定性和安全性高。
3. 支持多域間的數(shù)據(jù)通訊
由第二步的步驟2和第三步的步驟2)可知,信息發(fā)送過程中,發(fā)送器和調度仲 裁器可以利用共享內存頁中的目標域標識符來區(qū)分信息的發(fā)送目的地,從而能同 時支持多個虛擬域之間的數(shù)據(jù)通訊。
4. 當存在多個同一目標域的共享內存頁共享內存頁時,調度仲裁器根據(jù)共享內存頁 的空閑情況,支持同一目標域的多個共享內存頁的并發(fā)讀寫操作,從而支持不同 原域的信息并發(fā)寫,從而提高系統(tǒng)通訊帶寬;且根據(jù)第二步的步驟5、 6、 7、 8 和9,發(fā)送器首先根據(jù)頁面的PageDataLength值和頁面起始地址StartAddr,得 到本條信息的起始地址為PageDataLength+StartAddr。發(fā)送器直接定位到該地 址,按照信息實際要求填寫信息的有關數(shù)據(jù),包括信息大小、源域ID和信息內 容。信息填寫完畢后,發(fā)送器需要改寫頁面的PageDataLength值,重新標識下 一條新信息的起始地址,后續(xù)的信息將在同一共享內存頁中陸續(xù)添加,因此多條 信息在同一頁面內的壓縮存儲,使得信息的發(fā)送、接收和處理是批處理模式,使 得調度仲裁器的發(fā)送開銷盡可能的小,同時接收器得到的事件也盡可能的少。這
樣,整個系統(tǒng)的信息處理開銷就小,性能會得到一定的提高。 因此,本發(fā)明能很好的滿足那些需要在虛擬域間進行通訊應用場景,特別是在短信 息通訊場景,例如虛擬域的控制信息傳遞、多域間的安全信息交互。


圖l是本發(fā)明總體流程圖2是本發(fā)明虛擬域間信息通訊框架示意圖3是本發(fā)明共享內存頁信息結構圖4是本發(fā)明第二步進行信息發(fā)送的流程圖5是本發(fā)明第三步進行信息接收的流程圖。
具體實施方法
圖l是本發(fā)明總體流程圖,本發(fā)明分為三步 第一步,構建虛擬域間通訊框架,主要結構詳見圖2;
第二步,發(fā)送器和調度仲裁器協(xié)同進行信息發(fā)送,詳細流程參見圖4;
第三歩,接收器和調度仲裁器協(xié)同進行信息接收,詳細流程參見圖5。
圖2是本發(fā)明虛擬域間信息通訊框架示意圖。虛擬域間的通訊框架由虛擬機監(jiān)控器 中的調度仲裁器、共享內存區(qū)、發(fā)送定時器、定時發(fā)送隊列,以及每個虛擬域都包含的 發(fā)送器和接收器組成。
發(fā)送器、接收器分別是數(shù)據(jù)通訊的發(fā)送方、接收方,以虛擬域中獨立進程的形式存在。
調度仲裁器、發(fā)送定時器和定時發(fā)送隊列和共享內存區(qū)存在于虛擬機監(jiān)控器中。
調度仲裁器負責對發(fā)送器和接收器對共享內存區(qū)數(shù)據(jù)的并發(fā)訪問進行調度和仲裁, 以及對接收器的新信息通知,以此來保證通訊時機、通訊數(shù)據(jù)的有效性和可靠性。調度 仲裁器以虛擬機監(jiān)控器中獨立進程的形式存在。
共享內存區(qū)體現(xiàn)為虛擬機監(jiān)控器中的一片物理內存區(qū)域,其包含按照頁式管理機制 管理的若干共享內存頁。欲通訊的數(shù)據(jù)存儲在共享內存頁中,發(fā)送器直接把信息數(shù)據(jù)寫 在相應的共享內存頁中,接收器則從共享內存頁中拷貝信息數(shù)據(jù)。
發(fā)送定時器包含在調度仲裁器中,負責給調度仲裁器提供精確的時間信息。預先設 定的定時周期,定時通知調度仲裁器,觸發(fā)信息發(fā)送操作。發(fā)送定時器表現(xiàn)為具有定時 能力的獨立進程。
定時發(fā)送隊列則是一個按照棧式結構組織的排隊隊列,用于存儲目f需要發(fā)送的共 享內存頁的頁號。
圖3是本發(fā)明共享內存區(qū)中每個共享內存頁的頁結構。在具體實施時,頁面的大小 應該應采用n KB(n為2的整數(shù)次冪),建議采用4KB或是16KB大小。
共享內存頁存貯頁面信息和數(shù)據(jù)信息。頁面信息包括目標域標識符和頁面數(shù)據(jù)長度 標識符。數(shù)據(jù)信息即為每條信息數(shù)據(jù),每條信息包括信息大小標識符、源域標識符和信 息數(shù)據(jù)。
1. 目標域標識符DestDomainID,采用無符號整形的數(shù)據(jù)類型,標識本共享內存頁是 否在使用,若本共享內存頁在使用,該目標域標識符表示目標虛擬域(即數(shù)據(jù)將 要發(fā)往的虛擬域)的ID號,范圍為0 N-1, N為虛擬域個數(shù);如果該頁面尚未 被使用,或是已經被讀取和處理,則該目標域標識符的取值為一個非法ID,即 不在0 N-1范圍如OxFF。
2. 頁面數(shù)據(jù)長度標識符采用無符號整形的數(shù)據(jù)類型,表達本頁面內所有欲發(fā)送信息 的數(shù)據(jù)長度,該長度不包括頁面信息中目標域標識符和頁面數(shù)據(jù)長度標識符自身 所占據(jù)的長度。
3. 信息大小標識符采用無符號整形的數(shù)據(jù)類型,表示本信息所有結構數(shù)據(jù)的長度, 即把信息的信息大小標識符、源域標識符和信息數(shù)據(jù)這三部分的長度都計算在 內。
4. 源域標識符長度采用無符號整形的數(shù)據(jù)類型,標識信息的發(fā)送源虛擬域ID。
5. 信息數(shù)據(jù)保存實際的信息內容數(shù)據(jù),長度為實際信息數(shù)據(jù)的大小。 考慮到在實際應用背景中, 一般不會同時使用超過255個虛擬域。因此共享內存頁
每個字段的典型長度為目標域標識符是l字節(jié)、頁面數(shù)據(jù)長度標識符是3字節(jié)、信息 大小標識符是3字節(jié)、源域標識符是l字節(jié),而信息數(shù)據(jù)則根據(jù)實際情況變長。這樣即 可以滿足255個虛擬域之間信息通訊,并且每條信息不超過16MB,足以滿足正常應用需 求。
圖4給出了信息發(fā)送流程圖。信息發(fā)送流程為
1發(fā)送器以異步調度的模式,向調度仲裁器提出發(fā)送請求,希望得到一個空閑的目
標域共享內存頁。 2 調度仲裁器從發(fā)送器接收到目標域的ID (destID);
3調度仲裁器在所有的共享內存頁中查找是否存在目標域的共享內存頁,即査找
"DestDomainID==destID"成立的共享內存頁;若成立,意味著共享內存區(qū)中已 經有欲發(fā)送到目標域的信息,從共享區(qū)中沒被使用的空閑頁中查找 PageDataLength最大的目標域共享內存頁;如果存在多個發(fā)送器都欲向同一 目 標域發(fā)送,則按照PageDataLength從大至小的原則以及先來先滿足的原則,來 選擇相應的不同目標域共享內存頁作為即將使用的共享內存頁;若不成立,則說 明共享內存區(qū)目前沒有相應的目標域內存頁,則判斷共享內存區(qū)目前是否存在空 白共享內存頁-
3.1若存在,選擇任意一個空白共享內存頁;若不存在,等待接收器釋放共
享內存頁,獲得一個空白共享內存頁; 3.2設置空白共享內存頁為目標域共享內存頁,即將該空白共享內存頁的 DestDomainID=destID; 4調度仲裁器對所獲取的目標域共享內存頁加鎖,并將該共享內存頁的頁號和頁面 的起始地址返回給發(fā)送器;
5 發(fā)送器從調度仲裁器獲得目標域共享內存頁的頁號共享內存頁和頁面的起始地 址(StartAddr)后,依據(jù)該頁PageDataLength值,計算PageDataLength十 StartAddr,得到本條信息可寫的起始地址;
6 發(fā)送器從可寫的起始地址起填寫本條信息的相關數(shù)據(jù);
7 發(fā)送器依據(jù)本條信息的長度,修改PageDataLength為PageDataLength + MessageLength;
8 發(fā)送器通知調度仲裁器本條信息填寫完畢,觸發(fā)發(fā)送例程; 發(fā)送例程的流程為
1) 調度仲裁器對己加鎖的共享內存頁解鎖;
2) 調度仲裁器檢査共享內存頁長度是否滿足立即發(fā)送條件,即判斷
"PageDataLength >閾值"是否成立,若成立,則立刻發(fā)送該共享內存頁;若
不成立,則添加該共享內存頁至定時發(fā)送隊列中;
3) 調度仲裁器的發(fā)送定時器周期性觸發(fā),遍歷定時發(fā)送隊列,逐個發(fā)送共享內存 頁。
圖5給出了本發(fā)明第三步信息接收的流程圖。信息接收的流程為
1調度仲裁器通知接收器,表示有信息需要該目標域接收,被通知的目標域的ID 為MyDomainID;
2 接收器獲取通知后,從共享內存區(qū)查找所有滿足"DestDomainID==MyDomainID" 的信息共享內存頁。假設所有滿足條件的共享內存頁構成列表PageList;
3 遍歷PageList中的所有共享內存頁 3.1加鎖目前遍歷到的信息頁;
3.2拷貝目標域共享內存頁到接收器的內存空間存儲為副本信息頁,并添加至
副本信息頁列表D叩licatedPageList中; 3.3設置該目標域共享內存頁為空白頁,即DestDomainID = OxFF; 3.4異步調用副本信息頁的讀取例程; 3.5解鎖該共享內存頁。 副本信息頁的讀取例程流程如下
(1) 讀取副本信息頁列表D叩licatedPageList,迭代處理每個副本信息頁
1.1獲得副本信息頁的PageDataLength,并設定目前已讀信息數(shù)據(jù)長度
ReadMessageLength = 0; 1.2遍歷讀取并處理目標域共享內存頁的每條信息,假設該條信息長度為
MessageLengthi; 1.3 ReadMessageLength十=MessageLengthi;
1.4判斷"ReadMessageLength 〈 PageDataLength ",若成立,返回操作1.2, 若不成立,執(zhí)行操作(2); (2)判斷是否還存在未處理的副本信息頁,若不存在,則退出,若存在,則返回 操作(1)。
權利要求
1. 一種虛擬域間短信息通訊方法,其特征在于包括以下步驟第一步,構建虛擬域間通訊框架,方法是虛擬域間的通訊框架由每個虛擬域都包含的發(fā)送器、接收器和虛擬機監(jiān)控器中的調度仲裁器、共享內存區(qū)、發(fā)送定時器、定時發(fā)送隊列共六部分組成;發(fā)送器是數(shù)據(jù)通訊的發(fā)送方,接收器是數(shù)據(jù)通訊的接收方,它們均是虛擬域中的獨立進程;調度仲裁器是對發(fā)送器和接收器對域間共享內存區(qū)數(shù)據(jù)的并發(fā)訪問進行調度和仲裁的獨立進程;共享內存區(qū)是虛擬機監(jiān)控器中的一片物理內存區(qū)域,存儲欲通訊的數(shù)據(jù),共享內存區(qū)由虛擬機監(jiān)控器在虛擬域間通訊框架構建時預先從計算機的物理內存中靜態(tài)分配,實現(xiàn)各個虛擬域的靜態(tài)域間內存共享;共享內存區(qū)由共享內存頁組成,每頁大小固定;共享內存頁包括兩方面的數(shù)據(jù),一方面為頁面信息,包括目標域標識符DestDomainID和頁面數(shù)據(jù)長度標識符PageDataLength;另一方面是信息數(shù)據(jù),即為頁面存儲的多條信息數(shù)據(jù),包括信息大小標識符MessageLength、源域標識符SrcDomainID和信息內容MessageData;目標域標識符DestDomainID標識本共享內存頁是否在使用,若本共享內存頁在使用,該目標域標識符表示目標虛擬域的ID號,范圍為0~N-1,N為虛擬域個數(shù);如果該頁面尚未被使用或是已經被讀取和處理,則該目標域標識符的取值為一個非法ID,即不在0~N-1范圍;頁面數(shù)據(jù)長度標識符PageDataLength表示本頁面內所有欲發(fā)送信息的數(shù)據(jù)長度,即多個信息的長度總和,但該長度不包括頁面信息中目標域標識符和頁面數(shù)據(jù)長度標識符自身所占據(jù)的長度;信息大小標識符MessageLength表示每條信息的數(shù)據(jù)長度;源域標識符SrcDomainID表示信息的來源虛擬域ID,范圍為0~N-1;信息內容MessageData存貯欲發(fā)送的信息數(shù)據(jù);發(fā)送定時器是給調度仲裁器提供精確的時間信息的具有定時能力的獨立進程,發(fā)送定時器定時周期在構建虛擬域間通訊框架時預先設定;發(fā)送定時器按照定時周期通知調度仲裁器,觸發(fā)信息發(fā)送操作;定時周期設置根據(jù)實際背景對信息發(fā)送的實時性要求而定;定時發(fā)送隊列是一個按照棧式結構組織的排隊隊列,用于存儲發(fā)送方需要發(fā)送的共享內存頁的頁號;第二步,發(fā)送器和調度仲裁器協(xié)同對信息進行發(fā)送,方法是步驟1 發(fā)送器以異步調度的模式,向調度仲裁器提出發(fā)送請求,希望得到一個空閑的目標域共享內存頁;步驟2 調度仲裁器從發(fā)送器接收到目標域的ID即destID;步驟3 調度仲裁器在所有的共享內存頁中查找是否存在目標域的共享內存頁,即查找“DestDomainID=destID”成立的共享內存頁;若成立,從共享內存區(qū)中沒被發(fā)送器使用的空閑頁中查找PageDataLength最大的目標域共享內存頁;如果存在多個發(fā)送器向同一目標域發(fā)送,則按照PageDataLength從大至小的原則以及先來先滿足的原則,選擇相應的不同目標域共享內存頁作為即將使用的共享內存頁;若不成立,判斷共享內存區(qū)目前是否存在空白共享內存頁若存在,選擇任意一個空白共享內存頁,若不存在,等待接收器釋放共享內存頁,獲得一個空白共享內存頁;設置空白共享內存頁為目標域共享內存頁,即將該空白共享內存頁的DestDomainID=destID步驟4 調度仲裁器對所獲取的目標域共享內存頁加鎖,并將該共享內存頁的頁號和頁面的起始地址返回給發(fā)送器;步驟5 發(fā)送器從調度仲裁器獲得目標域共享內存頁的頁號共享內存頁和頁面的起始地址StartAddr后,依據(jù)該頁PageDataLength值,計算PageDataLength+StartAddr,得到本條信息可寫的起始地址;步驟6 發(fā)送器從可寫的起始地址起填寫本條信息的相關數(shù)據(jù);步驟7 發(fā)送器依據(jù)本條信息的長度,修改PageDataLength為PageDataLength+MessageLength;步驟8 發(fā)送器通知調度仲裁器本條信息填寫完畢,異步觸發(fā)發(fā)送例程;第三步,調度仲裁器和接收器協(xié)同完成信息接收操作,方法是1)調度仲裁器通知接收器,表示有信息需要該目標域接收,被通知的目標域的ID為MyDomainID;2)接收器獲取通知后,從共享內存區(qū)查找所有滿足“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所述的一種虛擬域間短信息通訊方法,其特征在于發(fā)送例程的流程是2. 1 調度仲裁器對己加鎖的共享內存頁解鎖;2.2調度仲裁器檢查共享內存頁長度是否滿足立即發(fā)送條件,即判斷 "PageDataLength 〉闡值"是否成立,若成立,則立刻發(fā)送該共享內存頁;若不成立,則添加該共享內存頁至定時發(fā)送隊列中;發(fā)送長度閾值根據(jù)實際背景對信息發(fā)送的實時性要求而定; 2. 3調度仲裁器的發(fā)送定時器周期性觸發(fā),遍歷定時發(fā)送隊列,逐個發(fā)送共享內存頁。
3. 如權利要求l所述的一種虛擬域間短信息通訊方法,其特征在于副本信息頁的讀取例程的流程是(1)讀取副本信息頁列表D叩licatedPageList,迭代處理每個副本信息頁 3.1.1獲得副本信息頁的PageDataLength,并設定目前已讀信息數(shù)據(jù)長度ReadMessageLength = 0; 3.1.2遍歷讀取并處理目標域共享內存頁的每條信息,假設該條信息長度為MessageLengthi;3.1.3 ReadMessageLength += MessageLengthi;3.1.4 判斷"ReadMessageLength < PageDataUngth ,,,若成立,返回操作 3.1.2,若不成立,執(zhí)行操作(2);(2)判斷是否還存在未處理的副本信息頁,若不存在,則退出,若存在,則返回 操作(1)。
4. 如權利要求1所述的一種虛擬域間短信息通訊方法,其特征在于發(fā)送定時器的定 時周期設定為100ms。
5. 如權利要求2所述的一種虛擬域間短信息通訊方法,其特征在于發(fā)送長度閾值設 定為"80%><共享內存頁面大小"。
全文摘要
本發(fā)明公開了一種虛擬域間短信息通訊方法,要解決的技術問題是提供一種在多個虛擬域間進行高效域間數(shù)據(jù)通訊的方法,既降低網絡通訊短信息的通訊量和通訊負載,又加強域間通訊的安全性。技術方案是首先構建由發(fā)送器、接收器、調度仲裁器、共享內存區(qū)、發(fā)送定時器、定時發(fā)送隊列組成的虛擬域間通訊框架,再由發(fā)送器和調度仲裁器協(xié)同對信息進行發(fā)送,最后由調度仲裁器和接收器協(xié)同完成信息接收操作。采用本發(fā)明可實現(xiàn)多域間的數(shù)據(jù)通訊,可以使信息發(fā)送和接收開銷小,通信帶寬高,且信息發(fā)送和接收過程的穩(wěn)定性和安全性高。
文檔編號H04L12/58GK101383781SQ20081014344
公開日2009年3月11日 申請日期2008年10月30日 優(yōu)先權日2008年10月30日
發(fā)明者吳慶波, 航 蘇, 譚郁松 申請人:中國人民解放軍國防科學技術大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
新晃| 固始县| 宁强县| 铜鼓县| 任丘市| 廉江市| 兴海县| 大厂| 英超| 外汇| 西贡区| 江津市| 资溪县| 武隆县| 辉南县| 广南县| 和林格尔县| 上饶县| 茶陵县| 北川| 丰原市| 海晏县| 镇坪县| 开封市| 龙口市| 秀山| 余江县| 蒙城县| 固原市| 郴州市| 天津市| 雷州市| 定兴县| 左贡县| 湄潭县| 巍山| 岳西县| 宝应县| 门头沟区| 姚安县| 江陵县|