新四季網

虛擬域間簡訊息通訊方法

2023-10-05 10:57:19 1

專利名稱:虛擬域間簡訊息通訊方法
技術領域:
本發明涉及計算機領域虛擬機域間通訊的方法,尤其是一種虛擬域間簡訊息通訊方法。
背景技術:
近年來虛擬化技術一直處於火熱狀態,最近幾年在伺服器整合、計算機安全、數據 中心等受到各研究機構和商業機構的重視。
虛擬機的運行環境必然包含兩大部分, 一為虛擬監控器,主要目的是完成虛擬化操 作和管理;另一為若干個運行在虛擬監控器之上的作業系統(即"虛擬域"),虛擬域 運行用戶的應用程式。
為支持虛擬域之間的協同和交互,必須設計和實現高效的域間通訊方法。目前主流 的虛擬機域間通訊模式有兩種方法,一種為網絡通訊方法、另一種是域間共享內存方法。
網絡通訊方法使用傳統的網絡數據通訊(TCP/UDP、 Socket等)的方法進行數據通 訊。該方法的基本流程為
1、 數據發送方利用傳統的網絡通訊方法,經過一次完整的網絡協議棧,通過網 絡向接收方發送數據報文;
2、 數據接收方利用傳統的網絡通訊方法,經過一次完整的網絡協議棧,通過網 絡接收數據報文。
網絡通訊方法的優點是簡單,對上層應用軟體的支持好。但是這種通訊方法不支持 域間顯示的直接通訊,需要進行兩次完整的網絡發送和接收操作,執行路徑長,所以域 間通訊開銷大、帶寬低,不能滿足虛擬域之間進行大量數據傳輸的需求。例如Limix的 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. l若存在,選擇任意一個空白共享內存頁;若不存在,等待接收器釋放共
享內存頁,獲得一個空白共享內存頁; 3.2設置空白共享內存頁為目標域共享內存頁,即將該空白共享內存頁的
DestDomainID二destID;
4 調度仲裁器對所獲取的目標域共享內存頁加鎖,並將該共享內存頁的頁號和頁面 的起始地址返回給發送器;
5 發送器從調度仲裁器獲得目標域共享內存頁的頁號共享內存頁和頁面的起始地 址(StartAddr)後,依據該頁PageDataLength值,計算PageDataLength+ StartAciclr,得到本條信息可寫的起始地址;
6 發送器從可寫的起始地址起填寫本條信息的相關數據;
7 發送器依據本條信息的長度,修改PageDataLength為PageDataLength + MessageLength;
8 發送器通知調度仲裁器本條信息填寫完畢,異歩觸發發送例程。 發送例程的流程是
1) 調度仲裁器對已加鎖的共享內存頁解鎖;
2) 調度仲裁器檢查共享內存頁長度是否滿足立即發送條件,即判斷
"PageDataLength 〉閾值"是否成立,若成立,則立刻發送該共享內存頁;若 不成立,則添加該共享內存頁至定時發送隊列中;發送長度閾值可以根據實際背 景對信息發送的實時性要求而定, 一般地,可以設定閾值為"8(WX共享內存頁 面大小"。
3) 調度仲裁器的發送定時器周期性觸發,遍歷定時發送隊列,逐個發送共享內存頁。 第三步,調度仲裁器和接收器協同完成信息接收操作,方法是
1) 調度仲裁器通知接收器,表示有信息需要該目標域接收,被通知的目標域的 ID為MyDomainID;
2) 接收器獲取通知後,從共享內存區査找所有滿足"DestDomainID==MyDoraainID" 的信息共享內存頁,所有滿足條件的共享內存頁構成列表PageList;
3) 遍歷PageList中的所有共享內存頁
3.1加鎖目前遍歷到的共享內存頁;
3.2拷貝目標域共享內存頁到接收器的內存空間存儲為副本信息頁,並添加至
副本信息頁列表DuplicatedPageList中; 3.3設置該目標域共享內存頁為空白頁,即DestDomainID = OxFF 3.4異步調用副本信息頁的讀取例程; 3.5解鎖該共享內存頁。 副本信息頁的讀取例程的流程為 (1)讀取副本信息頁列表D叩licatedPageList,迭代處理每個副本信息頁 1.1獲得副本信息頁的PageDataLength ,並設定目前已讀信息數據長度
ReadMessageLength = 0; 1.2遍歷讀取並處理目標域共享內存頁的每條信息,假設該條信息長度為
MessageLengthi; 1.3 ReadMessageLength += MessageLength"
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值,重新標識下 一條新信息的起始地址,後續的信息將在同一共享內存頁中陸續添加,因此多條 信息在同一頁面內的壓縮存儲,使得信息的發送、接收和處理是批處理模式,使 得調度仲裁器的發送開銷儘可能的小,同時接收器得到的事件也儘可能的少。這
樣,整個系統的信息處理開銷就小,性能會得到一定的提高。 因此,本發明能很好的滿足那些需要在虛擬域間進行通訊應用場景,特別是在簡訊 息通訊場景,例如虛擬域的控制信息傳遞、多域間的安全信息交互。


圖l是本發明總體流程圖2是本發明虛擬域間信息通訊框架示意圖3是本發明共享內存頁信息結構圖4是本發明第二步進行信息發送的流程圖5是本發明第三步進行信息接收的流程圖。
具體實施方法
圖l是本發明總體流程圖,本發明分為三步 第一步,構建虛擬域間通訊框架,主要結構詳見圖2;
第二步,發送器和調度仲裁器協同進行信息發送,詳細流程參見圖4;
第三歩,接收器和調度仲裁器協同進行信息接收,詳細流程參見圖5。
圖2是本發明虛擬域間信息通訊框架示意圖。虛擬域間的通訊框架由虛擬機監控器 中的調度仲裁器、共享內存區、發送定時器、定時發送隊列,以及每個虛擬域都包含的 發送器和接收器組成。
發送器、接收器分別是數據通訊的發送方、接收方,以虛擬域中獨立進程的形式存在。
調度仲裁器、發送定時器和定時發送隊列和共享內存區存在於虛擬機監控器中。
調度仲裁器負責對發送器和接收器對共享內存區數據的並發訪問進行調度和仲裁, 以及對接收器的新信息通知,以此來保證通訊時機、通訊數據的有效性和可靠性。調度 仲裁器以虛擬機監控器中獨立進程的形式存在。
共享內存區體現為虛擬機監控器中的一片物理內存區域,其包含按照頁式管理機制 管理的若干共享內存頁。欲通訊的數據存儲在共享內存頁中,發送器直接把信息數據寫 在相應的共享內存頁中,接收器則從共享內存頁中拷貝信息數據。
發送定時器包含在調度仲裁器中,負責給調度仲裁器提供精確的時間信息。預先設 定的定時周期,定時通知調度仲裁器,觸發信息發送操作。發送定時器表現為具有定時 能力的獨立進程。
定時發送隊列則是一個按照棧式結構組織的排隊隊列,用於存儲目f需要發送的共 享內存頁的頁號。
圖3是本發明共享內存區中每個共享內存頁的頁結構。在具體實施時,頁面的大小 應該應採用n KB(n為2的整數次冪),建議採用4KB或是16KB大小。
共享內存頁存貯頁面信息和數據信息。頁面信息包括目標域標識符和頁面數據長度 標識符。數據信息即為每條信息數據,每條信息包括信息大小標識符、源域標識符和信 息數據。
1. 目標域標識符DestDomainID,採用無符號整形的數據類型,標識本共享內存頁是 否在使用,若本共享內存頁在使用,該目標域標識符表示目標虛擬域(即數據將 要發往的虛擬域)的ID號,範圍為0 N-1, N為虛擬域個數;如果該頁面尚未 被使用,或是已經被讀取和處理,則該目標域標識符的取值為一個非法ID,即 不在0 N-1範圍如OxFF。
2. 頁面數據長度標識符採用無符號整形的數據類型,表達本頁面內所有欲發送信息 的數據長度,該長度不包括頁面信息中目標域標識符和頁面數據長度標識符自身 所佔據的長度。
3. 信息大小標識符採用無符號整形的數據類型,表示本信息所有結構數據的長度, 即把信息的信息大小標識符、源域標識符和信息數據這三部分的長度都計算在 內。
4. 源域標識符長度採用無符號整形的數據類型,標識信息的發送源虛擬域ID。
5. 信息數據保存實際的信息內容數據,長度為實際信息數據的大小。 考慮到在實際應用背景中, 一般不會同時使用超過255個虛擬域。因此共享內存頁
每個欄位的典型長度為目標域標識符是l字節、頁面數據長度標識符是3位元組、信息 大小標識符是3位元組、源域標識符是l字節,而信息數據則根據實際情況變長。這樣即 可以滿足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拷貝目標域共享內存頁到接收器的內存空間存儲為副本信息頁,並添加至
副本信息頁列表D叩licatedPageList中; 3.3設置該目標域共享內存頁為空白頁,即DestDomainID = OxFF; 3.4異步調用副本信息頁的讀取例程; 3.5解鎖該共享內存頁。 副本信息頁的讀取例程流程如下
(1) 讀取副本信息頁列表D叩licatedPageList,迭代處理每個副本信息頁
1.1獲得副本信息頁的PageDataLength,並設定目前已讀信息數據長度
ReadMessageLength = 0; 1.2遍歷讀取並處理目標域共享內存頁的每條信息,假設該條信息長度為
MessageLengthi; 1.3 ReadMessageLength十=MessageLengthi;
1.4判斷"ReadMessageLength 〈 PageDataLength ",若成立,返回操作1.2, 若不成立,執行操作(2); (2)判斷是否還存在未處理的副本信息頁,若不存在,則退出,若存在,則返回 操作(1)。
權利要求
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. 如權利要求l所述的一種虛擬域間簡訊息通訊方法,其特徵在於副本信息頁的讀取例程的流程是(1)讀取副本信息頁列表D叩licatedPageList,迭代處理每個副本信息頁 3.1.1獲得副本信息頁的PageDataLength,並設定目前已讀信息數據長度ReadMessageLength = 0; 3.1.2遍歷讀取並處理目標域共享內存頁的每條信息,假設該條信息長度為MessageLengthi;3.1.3 ReadMessageLength += MessageLengthi;3.1.4 判斷"ReadMessageLength < PageDataUngth ,,,若成立,返回操作 3.1.2,若不成立,執行操作(2);(2)判斷是否還存在未處理的副本信息頁,若不存在,則退出,若存在,則返回 操作(1)。
4. 如權利要求1所述的一種虛擬域間簡訊息通訊方法,其特徵在於發送定時器的定 時周期設定為100ms。
5. 如權利要求2所述的一種虛擬域間簡訊息通訊方法,其特徵在於發送長度閾值設 定為"80%><共享內存頁面大小"。
全文摘要
本發明公開了一種虛擬域間簡訊息通訊方法,要解決的技術問題是提供一種在多個虛擬域間進行高效域間數據通訊的方法,既降低網絡通訊簡訊息的通訊量和通訊負載,又加強域間通訊的安全性。技術方案是首先構建由發送器、接收器、調度仲裁器、共享內存區、發送定時器、定時發送隊列組成的虛擬域間通訊框架,再由發送器和調度仲裁器協同對信息進行發送,最後由調度仲裁器和接收器協同完成信息接收操作。採用本發明可實現多域間的數據通訊,可以使信息發送和接收開銷小,通信帶寬高,且信息發送和接收過程的穩定性和安全性高。
文檔編號H04L12/58GK101383781SQ20081014344
公開日2009年3月11日 申請日期2008年10月30日 優先權日2008年10月30日
發明者吳慶波, 航 蘇, 譚鬱松 申請人:中國人民解放軍國防科學技術大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀