一種遠(yuǎn)程內(nèi)存交換分區(qū)方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例提供了一種遠(yuǎn)程內(nèi)存交換分區(qū)方法、裝置及系統(tǒng),涉及通信領(lǐng)域,可以提高系統(tǒng)運行速度,節(jié)約功耗。所述方法包括:本地節(jié)點獲得需要轉(zhuǎn)存的內(nèi)存頁的基地址,然后根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址查詢路由表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息,并將所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息和轉(zhuǎn)存信令發(fā)送給云端控制器,以使得所述云端控制器將所述路由信息和所述轉(zhuǎn)存信令轉(zhuǎn)發(fā)給所述需要轉(zhuǎn)存的內(nèi)存頁所在的遠(yuǎn)程節(jié)點,進(jìn)而使得遠(yuǎn)程節(jié)點根據(jù)所述轉(zhuǎn)存信令和所述路由信息,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中,或?qū)⑺鲂枰D(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。
【專利說明】—種遠(yuǎn)程內(nèi)存交換分區(qū)方法、裝置及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種遠(yuǎn)程內(nèi)存交換分區(qū)方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]在云服務(wù)器平臺中,當(dāng)節(jié)點的內(nèi)存不足時,可以向云端控制器發(fā)送借用請求,使云端控制器將其他節(jié)點的內(nèi)存分配給本節(jié)點,這樣該節(jié)點就借用了其他節(jié)點的內(nèi)存來做為自己的內(nèi)存使用,通常會將借用內(nèi)存的節(jié)點稱為本地節(jié)點,將被借用內(nèi)存的節(jié)點稱為所述本地節(jié)點的遠(yuǎn)程節(jié)點。所述本地節(jié)點借用了遠(yuǎn)程節(jié)點的內(nèi)存后,所述本地節(jié)點的內(nèi)存就包括為本地內(nèi)存(本地節(jié)點本身的內(nèi)存)和遠(yuǎn)程內(nèi)存(本地節(jié)點借用的遠(yuǎn)程節(jié)點的內(nèi)存)。
[0003]若本地節(jié)點借用了遠(yuǎn)程節(jié)點的內(nèi)存后,本地節(jié)點的內(nèi)存仍然不夠用,本地節(jié)點會選擇將本節(jié)點的內(nèi)存中的部分?jǐn)?shù)據(jù)swap out (換出)至本地節(jié)點的硬盤中,釋放出部分的內(nèi)存空間。在本地節(jié)點的內(nèi)存不足的情況下,只對本地內(nèi)存進(jìn)行swap out操作,釋放本地內(nèi)存空間是不行的,因為遠(yuǎn)程節(jié)點中內(nèi)存不可能從借用到銷毀不進(jìn)行swap out操作,一旦對遠(yuǎn)程內(nèi)存進(jìn)行swap out操作,則需要進(jìn)行以下過程:
[0004]本地節(jié)點需要掃描遠(yuǎn)程內(nèi)存,以一定算法選中遠(yuǎn)程內(nèi)存中需要swap out的內(nèi)存頁數(shù)據(jù),然后進(jìn)行本地內(nèi)存swap out操作,將本地節(jié)點的本地內(nèi)存中的一部分內(nèi)存數(shù)據(jù)轉(zhuǎn)存到本地節(jié)點中的硬盤中,為所述需要swap out的內(nèi)存頁數(shù)據(jù)預(yù)留出存儲空間,然后通過云端控制器向所述遠(yuǎn)程內(nèi)存所在的遠(yuǎn)程節(jié)點發(fā)送遠(yuǎn)程內(nèi)存swap out命令,使得所述遠(yuǎn)程節(jié)點通過傳輸通道將所述需要swap out的內(nèi)存頁數(shù)據(jù)傳送到本地節(jié)點,保存在所述本地節(jié)點預(yù)留出的存儲空間中,最后本地節(jié)點將本地內(nèi)存中存儲的所述需要swap out的內(nèi)存頁數(shù)據(jù)存放至本地節(jié)點的硬盤中。
[0005]云端控制器在進(jìn)行上述的遠(yuǎn)程內(nèi)存swap out操作的過程中,需要將遠(yuǎn)程內(nèi)存中的部分內(nèi)存頁數(shù)據(jù)傳到本地節(jié)點,這就會占用傳輸通道,導(dǎo)致系統(tǒng)運行變慢,且增加系統(tǒng)功耗,并且若將遠(yuǎn)程節(jié)點中的需要swap out的內(nèi)存頁數(shù)據(jù)傳回本地節(jié)點,本地節(jié)點的本地內(nèi)存必須為所述需要swap out的內(nèi)存頁數(shù)據(jù)預(yù)留出存儲空間,這會進(jìn)一步加大本地內(nèi)存的壓力,使內(nèi)存管理更加復(fù)雜,進(jìn)一步地導(dǎo)致系統(tǒng)運行變慢,系統(tǒng)功耗增加。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的實施例提供一種遠(yuǎn)程內(nèi)存交換分區(qū)方法、裝置及系統(tǒng),可以提高系統(tǒng)運行速度,節(jié)約功耗。
[0007]為達(dá)到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:
[0008]第一方面,公開了一種遠(yuǎn)程內(nèi)存交換分區(qū)方法,包括:
[0009]本地節(jié)點獲得需要轉(zhuǎn)存的內(nèi)存頁的基地址,并根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點;
[0010]若判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為遠(yuǎn)程節(jié)點時,所述本地節(jié)點根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址查詢路由表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息,其中,所述路由表中存儲有各內(nèi)存頁對應(yīng)的路由信息,所述路由信息包括內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址;
[0011]所述本地節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息和轉(zhuǎn)存信令發(fā)送給云端控制器,以使得所述云端控制器將所述路由信息和所述轉(zhuǎn)存信令轉(zhuǎn)發(fā)給所述需要轉(zhuǎn)存的內(nèi)存頁所在的遠(yuǎn)程節(jié)點。
[0012]結(jié)合第一方面,在第一種可能的實現(xiàn)方式中,所述本地節(jié)點根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,包括:
[0013]所述本地節(jié)點根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址所在的地址空間,判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,其中,所述本地節(jié)點中預(yù)先存儲有所述本地節(jié)點對應(yīng)的地址空間和所述遠(yuǎn)程節(jié)點對應(yīng)的地址空間;
[0014]或者,所述本地節(jié)點查詢頁表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的基地址對應(yīng)的標(biāo)識信息,判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,其中,所述頁表中存儲有各內(nèi)存頁的基地址以及所述基地址對應(yīng)的標(biāo)識信息,所述標(biāo)識信息用于標(biāo)識所述基地址對應(yīng)的節(jié)點。
[0015]第二方面,公開了一種遠(yuǎn)程內(nèi)存交換分區(qū)方法,包括:
[0016]遠(yuǎn)程節(jié)點調(diào)用驅(qū)動偵聽并接收云端控制器發(fā)送的轉(zhuǎn)存信令和路由信息,所述路由信息包括需要轉(zhuǎn)存的內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址;
[0017]所述遠(yuǎn)程節(jié)點根據(jù)所述轉(zhuǎn)存信令和所述路由信息,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中,或?qū)⑺鲂枰D(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。
[0018]結(jié)合第二方面,在第一種可能的實現(xiàn)方式中,所述遠(yuǎn)程節(jié)點的硬盤中設(shè)置有遠(yuǎn)程內(nèi)存交換分區(qū);則所述將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中,具體包括:將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中的遠(yuǎn)程內(nèi)存交換分區(qū);
[0019]所述將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點內(nèi)存中,具體包括:將所述需要轉(zhuǎn)存的內(nèi)存頁的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤的遠(yuǎn)程內(nèi)存交換分區(qū)轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。
[0020]第三方面,公開了一種本地節(jié)點,包括:
[0021]判斷單元,用于獲得需要轉(zhuǎn)存的內(nèi)存頁的基地址,并根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點;
[0022]查詢單元,用于在所述判斷單元判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為遠(yuǎn)程節(jié)點時,根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址查詢路由表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息,其中,所述路由表中存儲有各內(nèi)存頁對應(yīng)的路由信息,所述路由信息包括內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址;
[0023]發(fā)送單元,用于將所述查詢單元查詢到的所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息和轉(zhuǎn)存信令發(fā)送給云端控制器,以使得所述云端控制器將所述路由信息和所述轉(zhuǎn)存信令轉(zhuǎn)發(fā)給所述需要轉(zhuǎn)存的內(nèi)存頁所在的遠(yuǎn)程節(jié)點。
[0024]結(jié)合第三方面,在第一種可能的實現(xiàn)方式中,所述判斷單元具體用于根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址所在的地址空間,判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,其中,所述本地節(jié)點中預(yù)先存儲有所述本地節(jié)點對應(yīng)的地址空間和所述遠(yuǎn)程節(jié)點對應(yīng)的地址空間;
[0025]或者,所述判斷單元具體用于查詢頁表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的基地址對應(yīng)的標(biāo)識信息,判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,其中,所述頁表中存儲有各內(nèi)存頁的基地址以及所述基地址對應(yīng)的標(biāo)識信息,所述標(biāo)識信息用于標(biāo)識所述基地址對應(yīng)的節(jié)點。
[0026]第四方面,公開了一種遠(yuǎn)程節(jié)點,包括:
[0027]接收單元,用于調(diào)用驅(qū)動偵聽并接收云端控制器發(fā)送的轉(zhuǎn)存信令和路由信息,所述路由信息包括需要轉(zhuǎn)存的內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址;
[0028]轉(zhuǎn)存單元,用于根據(jù)所述接收單元接收到的所述轉(zhuǎn)存信令和所述路由信息,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中,或?qū)⑺鲂枰D(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。
[0029]結(jié)合第四方面,在第一種可能的實現(xiàn)方式中,所述遠(yuǎn)程節(jié)點的硬盤中設(shè)置有遠(yuǎn)程內(nèi)存交換分區(qū);則,
[0030]所述轉(zhuǎn)存單元,具體用于將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中的遠(yuǎn)程內(nèi)存交換分區(qū);或者,將所述需要轉(zhuǎn)存的內(nèi)存頁的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤的遠(yuǎn)程內(nèi)存交換分區(qū)轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。
[0031]第五方面,公開了一種系統(tǒng),包括:本地節(jié)點,云端控制器和遠(yuǎn)程節(jié)點;
[0032]其中,所述本地節(jié)點為上述的本地節(jié)點;
[0033]云端控制器,用于接收所述本地節(jié)點發(fā)送的所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息,并將所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息轉(zhuǎn)發(fā)給所述遠(yuǎn)程節(jié)點;
[0034]所述遠(yuǎn)程節(jié)點為上述的遠(yuǎn)程節(jié)點。
[0035]本發(fā)明實施例提供的一種遠(yuǎn)程內(nèi)存交換分區(qū)方法、裝置及系統(tǒng),在遠(yuǎn)程內(nèi)存要進(jìn)行swap操作時,所述本地節(jié)點會向所述遠(yuǎn)程節(jié)點發(fā)送轉(zhuǎn)存信令,請求所述遠(yuǎn)程節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)轉(zhuǎn)存在所述遠(yuǎn)程節(jié)點的硬盤中,或?qū)⑺鲂枰D(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。既不需要將遠(yuǎn)程節(jié)點的內(nèi)存頁中的數(shù)據(jù)傳到本地節(jié)點占用傳輸通道,也不需要本地內(nèi)存為傳回的遠(yuǎn)程內(nèi)存頁中的數(shù)據(jù)預(yù)留空間,這樣就可以提高系統(tǒng)運行速度,節(jié)約功耗。另外,本發(fā)明實施例提供的方法過程簡單,不需要對節(jié)點的內(nèi)存管理部分進(jìn)行修改。
【專利附圖】
【附圖說明】
[0036]圖1為本發(fā)明實施例提供的一種遠(yuǎn)程內(nèi)存交換分區(qū)方法的流程示意圖;
[0037]圖2為本發(fā)明實施例提供的另一種遠(yuǎn)程內(nèi)存交換分區(qū)方法的流程示意圖;
[0038]圖3為本發(fā)明實施例提供的另一種遠(yuǎn)程內(nèi)存交換分區(qū)方法的流程示意圖;
[0039]圖4為本發(fā)明實施例提供的另一種遠(yuǎn)程內(nèi)存交換分區(qū)方法的流程示意圖;
[0040]圖5為本發(fā)明實施例提供的一種本地節(jié)點的結(jié)構(gòu)框圖;
[0041]圖6為本發(fā)明實施例提供的另一種本地節(jié)點的結(jié)構(gòu)框圖;
[0042]圖7為本發(fā)明實施例提供的一種遠(yuǎn)程節(jié)點的結(jié)構(gòu)框圖;
[0043]圖8為本發(fā)明實施例提供的另一種本地節(jié)點的結(jié)構(gòu)框圖;
[0044]圖9為本發(fā)明實施例提供的另一種遠(yuǎn)程節(jié)點的結(jié)構(gòu)框圖;
[0045]圖10為本發(fā)明實施例提供的一種系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0046]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0047]實施例1:
[0048]本發(fā)明實施例提供了一種遠(yuǎn)程內(nèi)存交換分區(qū)方法,如圖1所示,執(zhí)行主體為本地節(jié)點或設(shè)置在本地節(jié)點上時,所述方法包括以下步驟:
[0049]101、本地節(jié)點獲得需要轉(zhuǎn)存的內(nèi)存頁的基地址,并根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點。
[0050]在云服務(wù)器平臺中,節(jié)點的內(nèi)存不足時,可以借用其他節(jié)點的內(nèi)存來做為自己的內(nèi)存使用,通常會將借用內(nèi)存的節(jié)點稱為本地節(jié)點,將被借用內(nèi)存的節(jié)點稱為遠(yuǎn)程節(jié)點。所述本地節(jié)點借用了遠(yuǎn)程節(jié)點的內(nèi)存后,所述本地節(jié)點的內(nèi)存就包括為本地內(nèi)存(本地節(jié)點本身的內(nèi)存)和遠(yuǎn)程內(nèi)存(本地節(jié)點借用的遠(yuǎn)程節(jié)點的內(nèi)存)。
[0051]這里所述的轉(zhuǎn)存既可以指將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述本地節(jié)點的內(nèi)存中換出,也可以指將所述內(nèi)存頁中的數(shù)據(jù)換入到所述本地節(jié)點的內(nèi)存中。
[0052]本地節(jié)點的操作系統(tǒng)會定期(例如每10秒)按照一定算法掃描所述本地節(jié)點的內(nèi)存,把它認(rèn)為暫時不需要的數(shù)據(jù)所在的內(nèi)存頁做為需要換出的內(nèi)存頁,指示所述本地節(jié)點將所述需要換出的內(nèi)存頁中的數(shù)據(jù)從所述本地節(jié)點的內(nèi)存中換出,所述一定算法一般都是LRU (Least Recently Used,最近最少使用算法)的變種;或者,要在本地節(jié)點上運行某個程序,而所述本地節(jié)點的內(nèi)存中沒有該程序?qū)?yīng)的數(shù)據(jù)即發(fā)生缺頁異常時,所述本地節(jié)點的操作系統(tǒng)掃描本地節(jié)點和遠(yuǎn)程節(jié)點的硬盤獲得該程序?qū)?yīng)的數(shù)據(jù)所在的內(nèi)存頁,將其作為需要換入的內(nèi)存頁,指示所述本地節(jié)點將所述需要換入的內(nèi)存頁中的數(shù)據(jù)換入所述本地節(jié)點的內(nèi)存中。
[0053]所述本地節(jié)點的操作系統(tǒng)的內(nèi)存管理結(jié)構(gòu)體中存儲有各內(nèi)存頁對應(yīng)基地址,這樣所述本地節(jié)點的操作系統(tǒng)獲得需要轉(zhuǎn)存(換入或換出)的內(nèi)存頁后,就可以獲得需要轉(zhuǎn)存的內(nèi)存頁的基地址。
[0054]102、若判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為遠(yuǎn)程節(jié)點時,所述本地節(jié)點根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址查詢路由表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息。
[0055]其中,所述路由表中存儲有各內(nèi)存頁對應(yīng)的路由信息,所述路由信息包括內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址。
[0056]若所述本地節(jié)點判斷出需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為所述遠(yuǎn)程節(jié)點,則表明此時需要進(jìn)行遠(yuǎn)程內(nèi)存swap操作,此時,所述本地節(jié)點可以根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址查詢路由表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息。
[0057]103、所述本地節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息和轉(zhuǎn)存信令發(fā)送給云端控制器。
[0058]所述本地節(jié)點獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息后,就會將該路由信息和轉(zhuǎn)存信令發(fā)送給云端控制器,所述云端控制器可以根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息中的遠(yuǎn)程節(jié)點地址,將所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息和轉(zhuǎn)存信令轉(zhuǎn)發(fā)給所述需要轉(zhuǎn)存的內(nèi)存頁的所在的遠(yuǎn)程節(jié)點。這樣,所述遠(yuǎn)程節(jié)點在接收到所述轉(zhuǎn)存信令和需要轉(zhuǎn)存的內(nèi)存頁的路由信息后,就可以根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息中的物理地址將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)進(jìn)行轉(zhuǎn)存,同時將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)清除。
[0059]若所述需要轉(zhuǎn)存的內(nèi)存頁的物理地址在所述遠(yuǎn)程節(jié)點的內(nèi)存中,則表明需要進(jìn)行換出操作,所述遠(yuǎn)程節(jié)點就會將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中換出,轉(zhuǎn)存在所述遠(yuǎn)程節(jié)點的硬盤中,同時將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)清除。若所述需要轉(zhuǎn)存的內(nèi)存頁的物理地址在所述遠(yuǎn)程節(jié)點的硬盤中,則表明需要進(jìn)行換入操作,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤換入所述遠(yuǎn)程節(jié)點的內(nèi)存中,同時將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)清除。在這里,所述遠(yuǎn)程節(jié)點的內(nèi)存是指所述本地節(jié)點從遠(yuǎn)程節(jié)點中借用的內(nèi)存。
[0060]本發(fā)明實施例還提供了一種遠(yuǎn)程內(nèi)存交換分區(qū)方法,如圖2所示,執(zhí)行主體為遠(yuǎn)程節(jié)點或設(shè)置在所述遠(yuǎn)程節(jié)點上時,所述方法包括以下步驟:
[0061]201、遠(yuǎn)程節(jié)點調(diào)用驅(qū)動偵聽并接收云端控制器發(fā)送的轉(zhuǎn)存信令和路由信息,所述路由信息包括需要轉(zhuǎn)存的內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址。
[0062]本地節(jié)點在運行的過程中,獲得了需要轉(zhuǎn)存的內(nèi)存頁的基地址時,所述本地節(jié)點就可以根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點。若所述本地節(jié)點判斷出需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為所述遠(yuǎn)程節(jié)點,則表明此時需要進(jìn)行遠(yuǎn)程內(nèi)存swap操作,此時,所述本地節(jié)點可以根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址查詢路由表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息。其中,所述路由表中存儲有各內(nèi)存頁對應(yīng)的路由信息,所述路由信息包括內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址。所述本地節(jié)點獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息后,就會給云端控制器發(fā)送所述路由信息以及轉(zhuǎn)存信令,所述云端控制器獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息和轉(zhuǎn)存信令后,可以根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息中的遠(yuǎn)程節(jié)點地址,將所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息和轉(zhuǎn)存信令轉(zhuǎn)發(fā)給所述需要轉(zhuǎn)存的內(nèi)存頁的所在的遠(yuǎn)程節(jié)點。
[0063]所述遠(yuǎn)程節(jié)點可以調(diào)用驅(qū)動偵聽所述云端控制器發(fā)送的信息,當(dāng)所述遠(yuǎn)程節(jié)點偵聽到所述遠(yuǎn)程節(jié)點發(fā)送來所述路由信息和轉(zhuǎn)存信令時,就可以立即接收所述路由信息。
[0064]202、所述遠(yuǎn)程節(jié)點根據(jù)所述轉(zhuǎn)存信令和所述路由信息,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中,或?qū)⑺鲂枰D(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。
[0065]所述遠(yuǎn)程節(jié)點接收到所述轉(zhuǎn)存信令后,就會開始進(jìn)行轉(zhuǎn)存操作,若所述路由信息中需要轉(zhuǎn)存的內(nèi)存頁的物理地址在所述遠(yuǎn)程節(jié)點的內(nèi)存中,則表明需要進(jìn)行換出操作,所述遠(yuǎn)程節(jié)點就會將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中換出,轉(zhuǎn)存在所述遠(yuǎn)程節(jié)點的硬盤中,同時將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)清除;若所述需要轉(zhuǎn)存的內(nèi)存頁的物理地址在所述遠(yuǎn)程節(jié)點的硬盤中,則表明需要進(jìn)行換入操作,所述遠(yuǎn)程節(jié)點就會將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤中換入到所述遠(yuǎn)程節(jié)點的內(nèi)存中,同時將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)清除。在這里,所述遠(yuǎn)程節(jié)點的內(nèi)存是指所述本地節(jié)點從遠(yuǎn)程節(jié)點中借用的內(nèi)存。
[0066]本發(fā)明實施例提供的遠(yuǎn)程內(nèi)存交換分區(qū)方法,在遠(yuǎn)程內(nèi)存要進(jìn)行swap操作時,所述本地節(jié)點會向所述遠(yuǎn)程節(jié)點發(fā)送轉(zhuǎn)存信令,請求所述遠(yuǎn)程節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)轉(zhuǎn)存在所述遠(yuǎn)程節(jié)點的硬盤中,或?qū)⑺鲂枰D(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。既不需要將遠(yuǎn)程節(jié)點的內(nèi)存頁中的數(shù)據(jù)傳到本地節(jié)點占用傳輸通道,也不需要本地內(nèi)存為傳回的遠(yuǎn)程內(nèi)存頁中的數(shù)據(jù)預(yù)留空間,這樣就可以提高系統(tǒng)運行速度,節(jié)約功耗。另外,本發(fā)明實施例提供的方法過程簡單,不需要對節(jié)點的內(nèi)存管理部分進(jìn)行修改。
[0067]實施例2:
[0068]本發(fā)明實施例還提供了一種遠(yuǎn)程內(nèi)存交換分區(qū)方法,所述方法為換出(swap out)的方法,如圖3所示,所述方法包括以下步驟:
[0069]301、本地節(jié)點周期性掃描所述本地節(jié)點的內(nèi)存,獲得需要轉(zhuǎn)存的內(nèi)存頁的基地址。
[0070]在云服務(wù)器平臺中,節(jié)點的內(nèi)存不足時,可以借用其他節(jié)點的內(nèi)存來做為自己的內(nèi)存使用,通常會將借用內(nèi)存的節(jié)點稱為本地節(jié)點,將被借用內(nèi)存的節(jié)點稱為遠(yuǎn)程節(jié)點。所述本地節(jié)點借用了遠(yuǎn)程節(jié)點的內(nèi)存后,所述本地節(jié)點的內(nèi)存就包括為本地內(nèi)存(本地節(jié)點本身的內(nèi)存)和遠(yuǎn)程內(nèi)存(本地節(jié)點借用的遠(yuǎn)程節(jié)點的內(nèi)存)。
[0071 ] 本地節(jié)點的操作系統(tǒng)會定期(例如每10秒)按照一定算法掃描所述本地節(jié)點的內(nèi)存,把它認(rèn)為暫時不需要的數(shù)據(jù)從所述本地節(jié)點的內(nèi)存中換出轉(zhuǎn)存,所述一定算法一般都是LRU的變種。
[0072]所述本地節(jié)點的操作系統(tǒng)的內(nèi)存管理結(jié)構(gòu)體中存儲有各數(shù)據(jù)對應(yīng)的內(nèi)存頁以及各內(nèi)存頁對應(yīng)基地址,這樣所述本地節(jié)點的操作系統(tǒng)獲得需要換出轉(zhuǎn)存的數(shù)據(jù)后,就可以獲得需要轉(zhuǎn)存的內(nèi)存頁的基地址。
[0073]302、所述本地節(jié)點根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點。
[0074]在這里,所述本地節(jié)點根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,有兩種方法:
[0075]方法一:
[0076]所述本地節(jié)點根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址所在的地址空間,判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,其中,所述本地節(jié)點中預(yù)先存儲有所述本地節(jié)點對應(yīng)的地址空間和所述遠(yuǎn)程節(jié)點對應(yīng)的地址空間。
[0077]所述本地節(jié)點可以對自己的內(nèi)存(本地內(nèi)存和遠(yuǎn)程內(nèi)存)進(jìn)行全局編制,例如,本地節(jié)點A借用了遠(yuǎn)程節(jié)點B和遠(yuǎn)程節(jié)點C的內(nèi)存,假設(shè)本地節(jié)點A有4G的本地內(nèi)存,本地節(jié)點A分別借用了遠(yuǎn)程節(jié)點B的IG遠(yuǎn)程內(nèi)存和遠(yuǎn)程節(jié)點C的2G遠(yuǎn)程內(nèi)存,則本地節(jié)點A對全部的7G內(nèi)存進(jìn)行全局編制,本地節(jié)點A的4G本地內(nèi)存,其對應(yīng)的地址空間為O — 3G ;遠(yuǎn)程節(jié)點B的IG遠(yuǎn)程內(nèi)存,其對應(yīng)的地址空間為3-4G;遠(yuǎn)程節(jié)點C的IG遠(yuǎn)程內(nèi)存,其對應(yīng)的地址空間為4-6G。這樣,若所述需要轉(zhuǎn)存的內(nèi)存頁的基地址為OxOfff時,表明所述需要轉(zhuǎn)存的內(nèi)存頁的基地址所在的地址空間為所述本地節(jié)點A對應(yīng)地址空間,則所述本地節(jié)點A可以判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為本地節(jié)點;若所述需要轉(zhuǎn)存的內(nèi)存頁的基地址為OxlOOOOOOOf時,表明所述需要轉(zhuǎn)存的內(nèi)存頁的基地址所在的地址空間為所述遠(yuǎn)程節(jié)點B對應(yīng)地址空間,則所述本地節(jié)點A可以判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為遠(yuǎn)程節(jié)點。
[0078]方法二:
[0079]所述本地節(jié)點查詢頁表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的基地址對應(yīng)的標(biāo)識信息,判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,其中,所述頁表中存儲有各內(nèi)存頁的基地址以及所述基地址對應(yīng)的標(biāo)識信息,所述標(biāo)識信息用于標(biāo)識所述基地址對應(yīng)的節(jié)點。
[0080]現(xiàn)有技術(shù)中,本地節(jié)點內(nèi)存儲有頁表,頁表中存儲有本地節(jié)點的內(nèi)存(本地內(nèi)存和遠(yuǎn)程內(nèi)存)中的各個內(nèi)存頁的基地址。在本發(fā)明實施例中,在所述頁表中添加一項標(biāo)識信息,用來區(qū)分各個內(nèi)存頁的基地址對應(yīng)的是本地節(jié)點還是遠(yuǎn)程節(jié)點。例如,所述標(biāo)識信息可以用0,I來標(biāo)識,O標(biāo)識所述內(nèi)存頁的基地址對應(yīng)的是本地節(jié)點,I標(biāo)識所述內(nèi)存頁的基地址對應(yīng)的是遠(yuǎn)程節(jié)點。
[0081]若通過步驟302中的方法一或方法二,判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為所述本地節(jié)點,則進(jìn)行步驟303;判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為所述遠(yuǎn)程節(jié)點,則進(jìn)行步驟304。
[0082]303、所述本地節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述本地節(jié)點的本地內(nèi)存中轉(zhuǎn)存在所述本地節(jié)點的硬盤中。
[0083]若所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為所述本地節(jié)點,則所述本地節(jié)點就可以直接進(jìn)行本地內(nèi)存swap out操作,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述本地節(jié)點的本地內(nèi)存中換出,轉(zhuǎn)存在所述本地節(jié)點的硬盤中,同時將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)清除。
[0084]可選的,可以在所述本地節(jié)點的硬盤中設(shè)置內(nèi)存交換分區(qū),這樣就可以將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)轉(zhuǎn)存在所述本地節(jié)點的硬盤的內(nèi)存交換分區(qū)中。在硬盤中設(shè)置一個內(nèi)存交換分區(qū),專門用于存儲內(nèi)存中換出的內(nèi)存頁中的數(shù)據(jù),可以與本地節(jié)點硬盤中的數(shù)據(jù)區(qū)分開,以保證硬盤中數(shù)據(jù)的安全。
[0085]304、所述本地節(jié)點根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址查詢路由表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息。
[0086]若所述本地節(jié)點判斷出需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為所述遠(yuǎn)程節(jié)點,則表明此時需要進(jìn)行遠(yuǎn)程內(nèi)存swap out操作,此時,所述本地節(jié)點可以根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址查詢路由表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息。其中,所述路由表中存儲有各內(nèi)存頁對應(yīng)的路由信息,所述路由信息包括內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址。
[0087]305、所述本地節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息和轉(zhuǎn)存信令發(fā)送給云端控制器。
[0088]在這里,可以將所述路由信息攜帶在所述轉(zhuǎn)存信令中發(fā)送給所述云端控制器,也可以向所述云端控制器先發(fā)送所述轉(zhuǎn)存信令,再發(fā)送所述路由信息。
[0089]在這里所述轉(zhuǎn)存信令可以是換出轉(zhuǎn)存信令。
[0090]306、所述云端控制器根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息中的遠(yuǎn)程節(jié)點地址,將所述轉(zhuǎn)存信令和所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息轉(zhuǎn)發(fā)給所述需要轉(zhuǎn)存的內(nèi)存頁所在的遠(yuǎn)程節(jié)點。
[0091]307、所述遠(yuǎn)程節(jié)點調(diào)用驅(qū)動偵聽并接收云端控制器發(fā)送的所述轉(zhuǎn)存信令和所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息。
[0092]所述遠(yuǎn)程節(jié)點可以調(diào)用驅(qū)動偵聽所述云端控制器發(fā)送的信息,當(dāng)所述遠(yuǎn)程節(jié)點偵聽到所述遠(yuǎn)程節(jié)點發(fā)送來所述轉(zhuǎn)存信令和所述路由信息時,就可以立即接收所述轉(zhuǎn)存信令和所述路由信息。所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息包括需要轉(zhuǎn)存的內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址。
[0093]308、所述遠(yuǎn)程節(jié)點根據(jù)所述轉(zhuǎn)存信令和需要轉(zhuǎn)存的內(nèi)存頁的路由信息中的物理地址,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中。
[0094]所述遠(yuǎn)程節(jié)點接收到所述轉(zhuǎn)存信令后,就會開始進(jìn)行轉(zhuǎn)存操作,若所述路由信息中需要轉(zhuǎn)存的內(nèi)存頁的物理地址在所述遠(yuǎn)程節(jié)點的內(nèi)存中,則表明需要進(jìn)行換出操作,所述遠(yuǎn)程節(jié)點就會將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程內(nèi)存中換出,轉(zhuǎn)存在所述遠(yuǎn)程節(jié)點的硬盤中,同時將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)清除。在這里,所述遠(yuǎn)程節(jié)點的內(nèi)存是指所述本地節(jié)點從遠(yuǎn)程節(jié)點中借用的內(nèi)存。
[0095]可選的,可以在所述遠(yuǎn)程節(jié)點的硬盤中設(shè)置遠(yuǎn)程內(nèi)存交換分區(qū);則所述將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中,具體包括:將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中的遠(yuǎn)程內(nèi)存交換分區(qū)。這樣,在硬盤中設(shè)置一個遠(yuǎn)程內(nèi)存交換分區(qū),專門用于存儲內(nèi)存中需要換出的內(nèi)存頁中的數(shù)據(jù),可以與遠(yuǎn)程節(jié)點硬盤中的數(shù)據(jù)區(qū)分開,可以保證數(shù)據(jù)的安全。
[0096]可選的,所述轉(zhuǎn)存信令可以是換出轉(zhuǎn)存信令,這樣所述遠(yuǎn)程節(jié)點接收到所述轉(zhuǎn)存信令后,就知道要從所述遠(yuǎn)程節(jié)點的內(nèi)存中換出數(shù)據(jù),所述遠(yuǎn)程節(jié)點就會根據(jù)所述路由信息中需要轉(zhuǎn)存的內(nèi)存頁的物理地址將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中換出,轉(zhuǎn)存在所述遠(yuǎn)程節(jié)點的硬盤中,同時將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)清除。
[0097]在這里,所述遠(yuǎn)程節(jié)點的內(nèi)存是指所述本地節(jié)點從遠(yuǎn)程節(jié)點中借用的內(nèi)存。
[0098]所述遠(yuǎn)程節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)轉(zhuǎn)存在所述遠(yuǎn)程節(jié)點的硬盤中后,可以將轉(zhuǎn)存成功與否的消息通過云控制器發(fā)送給本地節(jié)點,通知本地節(jié)點轉(zhuǎn)存成功。
[0099]本發(fā)明實施例還提供了一種遠(yuǎn)程內(nèi)存交換分區(qū)方法,所述方法為換入(swap in)的方法,如圖4所示,所述方法包括以下步驟:
[0100]401、本地節(jié)點發(fā)生缺頁異常時,掃描所述本地節(jié)點和遠(yuǎn)程節(jié)點的硬盤獲得需要轉(zhuǎn)存的內(nèi)存頁的基地址。
[0101]在云服務(wù)器平臺中,節(jié)點的內(nèi)存不足時,可以借用其他節(jié)點的內(nèi)存來做為自己的內(nèi)存使用,通常會將借用內(nèi)存的節(jié)點稱為本地節(jié)點,將被借用內(nèi)存的節(jié)點稱為遠(yuǎn)程節(jié)點。所述本地節(jié)點借用了遠(yuǎn)程節(jié)點的內(nèi)存后,所述本地節(jié)點的內(nèi)存就包括為本地內(nèi)存(本地節(jié)點本身的內(nèi)存)和遠(yuǎn)程內(nèi)存(本地節(jié)點借用的遠(yuǎn)程節(jié)點的內(nèi)存)。
[0102]要在本地節(jié)點上運行某個程序,而所述本地節(jié)點的內(nèi)存中沒有該程序?qū)?yīng)的數(shù)據(jù)即發(fā)生缺頁異常時,所述本地節(jié)點的操作系統(tǒng)會掃描本地節(jié)點和遠(yuǎn)程節(jié)點的硬盤中的數(shù)據(jù),獲得該程序?qū)?yīng)的數(shù)據(jù)。
[0103]所述本地節(jié)點的操作系統(tǒng)的內(nèi)存管理結(jié)構(gòu)體中存儲有各數(shù)據(jù)對應(yīng)的內(nèi)存頁以及各內(nèi)存頁對應(yīng)基地址,這樣所述本地節(jié)點的操作系統(tǒng)獲得需要換出轉(zhuǎn)存的數(shù)據(jù)后,就可以獲得需要轉(zhuǎn)存的內(nèi)存頁的基地址。
[0104]402、根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點。
[0105]在這里,所述本地節(jié)點根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,有兩種方法:
[0106]方法一:
[0107]所述本地節(jié)點根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址所在的地址空間,判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,其中,所述本地節(jié)點中預(yù)先存儲有所述本地節(jié)點對應(yīng)的地址空間和所述遠(yuǎn)程節(jié)點對應(yīng)的地址空間。
[0108]方法二:
[0109]所述本地節(jié)點查詢頁表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的基地址對應(yīng)的標(biāo)識信息,判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,其中,所述頁表中存儲有各內(nèi)存頁的基地址以及所述基地址對應(yīng)的標(biāo)識信息,所述標(biāo)識信息用于標(biāo)識所述基地址對應(yīng)的節(jié)點。
[0110]若通過步驟402中的方法一或方法二,判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為所述本地節(jié)點,則進(jìn)行步驟403 ;判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為所述遠(yuǎn)程節(jié)點,則進(jìn)行步驟404。
[0111]403、所述本地節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述本地節(jié)點的硬盤轉(zhuǎn)存到所述本地節(jié)點的內(nèi)存中。
[0112]若所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為所述本地節(jié)點,則所述本地節(jié)點就可以直接進(jìn)行本地內(nèi)存swap in操作,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述本地節(jié)點的硬盤轉(zhuǎn)存到所述本地節(jié)點的內(nèi)存中。
[0113]可選的,可以在所述本地節(jié)點的硬盤中設(shè)置內(nèi)存交換分區(qū),這樣就可以將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述本地節(jié)點的硬盤的內(nèi)存交換分區(qū)轉(zhuǎn)存到所述本地節(jié)點的內(nèi)存中。在硬盤中設(shè)置一個內(nèi)存交換分區(qū),專門用于存儲內(nèi)存中需要換出的內(nèi)存頁中的數(shù)據(jù),可以與本地節(jié)點硬盤中的數(shù)據(jù)區(qū)分開,以保證硬盤中數(shù)據(jù)的安全。
[0114]404、所述本地節(jié)點根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址查詢路由表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息。
[0115]其中,所述路由表中存儲有各內(nèi)存頁對應(yīng)的路由信息,所述路由信息包括內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址。
[0116]405、所述本地節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息和轉(zhuǎn)存信令發(fā)送給云端控制器。
[0117]在這里,可以將所述路由信息攜帶在所述轉(zhuǎn)存信令中發(fā)送給所述云端控制器,也可以向所述云端控制器先發(fā)送所述轉(zhuǎn)存信令,再發(fā)送所述路由信息。
[0118]在這里所述轉(zhuǎn)存信令可以是換入轉(zhuǎn)存信令。
[0119]406、所述云端控制器根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息中的遠(yuǎn)程節(jié)點地址,將所述轉(zhuǎn)存信令和所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息轉(zhuǎn)發(fā)給所述需要轉(zhuǎn)存的內(nèi)存頁所在的遠(yuǎn)程節(jié)點。
[0120]407、所述遠(yuǎn)程節(jié)點調(diào)用驅(qū)動偵聽并接收云端控制器發(fā)送所述轉(zhuǎn)存信令和所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息。
[0121]所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息包括需要轉(zhuǎn)存的內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址。
[0122]408、所述遠(yuǎn)程節(jié)點根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息中的物理地址,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤的內(nèi)存交換分區(qū)轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。
[0123]所述遠(yuǎn)程節(jié)點接收到所述轉(zhuǎn)存信令后,就會開始進(jìn)行轉(zhuǎn)存操作,若所述路由信息中需要轉(zhuǎn)存的內(nèi)存頁的物理地址在所述遠(yuǎn)程節(jié)點的硬盤中,則表明需要進(jìn)行換入操作,所述遠(yuǎn)程節(jié)點就會將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤中換出,轉(zhuǎn)存在所述本地節(jié)點在所述遠(yuǎn)程節(jié)點中借用的遠(yuǎn)程內(nèi)存中,同時將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)清除。在這里,所述遠(yuǎn)程節(jié)點的內(nèi)存是指所述本地節(jié)點從遠(yuǎn)程節(jié)點中借用的內(nèi)存。
[0124]可選的,可以在所述遠(yuǎn)程節(jié)點的硬盤中設(shè)置遠(yuǎn)程內(nèi)存交換分區(qū);則所述將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中,具體包括:將所述需要轉(zhuǎn)存的內(nèi)存頁的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤的遠(yuǎn)程內(nèi)存交換分區(qū)轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。這樣,在硬盤中設(shè)置一個遠(yuǎn)程內(nèi)存交換分區(qū),專門用于存儲內(nèi)存中需要換出的內(nèi)存頁中的數(shù)據(jù),可以與遠(yuǎn)程節(jié)點硬盤中的數(shù)據(jù)區(qū)分開,可以保證數(shù)據(jù)的安全。
[0125]所述遠(yuǎn)程節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中后,可以將轉(zhuǎn)存成功與否的消息通過云控制器發(fā)送給本地節(jié)點,通知本地節(jié)點轉(zhuǎn)存成功。
[0126]本發(fā)明實施例提供的遠(yuǎn)程內(nèi)存交換分區(qū)方法,在遠(yuǎn)程內(nèi)存要進(jìn)行swap操作時,所述本地節(jié)點會向所述遠(yuǎn)程節(jié)點發(fā)送轉(zhuǎn)存信令,請求所述遠(yuǎn)程節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)轉(zhuǎn)存在所述遠(yuǎn)程節(jié)點的硬盤中,或?qū)⑺鲂枰D(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。既不需要將遠(yuǎn)程節(jié)點的內(nèi)存頁中的數(shù)據(jù)傳到本地節(jié)點占用傳輸通道,也不需要本地內(nèi)存為傳回的遠(yuǎn)程內(nèi)存頁中的數(shù)據(jù)預(yù)留空間,這樣就可以提高系統(tǒng)運行速度,節(jié)約功耗。另外,本發(fā)明實施例提供的方法過程簡單,不需要對節(jié)點的內(nèi)存管理部分進(jìn)行修改。
[0127]實施例3:
[0128]本發(fā)明實施例還提供了一種本地節(jié)點,如圖5所示,所述本地節(jié)點包括:判斷單元501,查詢單元502和發(fā)送單元503。
[0129]判斷單元501,用于獲得需要轉(zhuǎn)存的內(nèi)存頁的基地址,并根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點。
[0130]查詢單元502,用于在所述判斷單元501判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為遠(yuǎn)程節(jié)點時,根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址查詢路由表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息,其中,所述路由表中存儲有各內(nèi)存頁對應(yīng)的路由信息,所述路由信息包括內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址。
[0131]發(fā)送單元503,用于將所述查詢單元502查詢到的所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息和轉(zhuǎn)存信令發(fā)送給云端控制器,以使得所述云端控制器將所述路由信息和所述轉(zhuǎn)存信令轉(zhuǎn)發(fā)給所述需要轉(zhuǎn)存的內(nèi)存頁所在的遠(yuǎn)程節(jié)點。
[0132]可選的,所述判斷單元501具體用于根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址所在的地址空間,判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,其中,所述本地節(jié)點中預(yù)先存儲有所述本地節(jié)點對應(yīng)的地址空間和所述遠(yuǎn)程節(jié)點對應(yīng)的地址空間。
[0133]或者,所述判斷單元501具體用于查詢頁表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的基地址對應(yīng)的標(biāo)識信息,判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,其中,所述頁表中存儲有各內(nèi)存頁的基地址以及所述基地址對應(yīng)的標(biāo)識信息,所述標(biāo)識信息用于標(biāo)識所述基地址對應(yīng)的節(jié)點。
[0134]進(jìn)一步的,如圖6所示,所述本地節(jié)點還包括:轉(zhuǎn)存單元504。
[0135]所述轉(zhuǎn)存單元504,用于在所述判斷單元503判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為所述本地節(jié)點時,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述本地節(jié)點的本地內(nèi)存中轉(zhuǎn)存在所述本地節(jié)點的硬盤中;或者,所述轉(zhuǎn)存單元504,用于在所述判斷單元503判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為所述本地節(jié)點時,將所述需要轉(zhuǎn)存的內(nèi)存頁從所述本地節(jié)點的硬盤轉(zhuǎn)存到所述本地節(jié)點的本地內(nèi)存中。
[0136]可選的,所述本地節(jié)點的硬盤中設(shè)置有內(nèi)存交換分區(qū);則,所述轉(zhuǎn)存單元504,具體用于所述本地節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述本地節(jié)點的本地內(nèi)存中轉(zhuǎn)存在所述本地節(jié)點的硬盤中的內(nèi)存交換分區(qū);或者,所述轉(zhuǎn)存單元504,具體用于將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤的內(nèi)存交換分區(qū)轉(zhuǎn)存到所述本地節(jié)點的本地內(nèi)存中。
[0137]本發(fā)明實施例還提供了一種遠(yuǎn)程節(jié)點,如圖7所示,包括:接收單元701和轉(zhuǎn)存單元 702。
[0138]接收單元701,用于調(diào)用驅(qū)動偵聽并接收云端控制器發(fā)送的轉(zhuǎn)存信令和路由信息,所述路由信息包括需要轉(zhuǎn)存的內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址。
[0139]轉(zhuǎn)存單元702,用于根據(jù)所述接收單元701接收到的所述轉(zhuǎn)存信令和所述路由信息,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中,或?qū)⑺鲂枰D(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。
[0140]可選的,所述遠(yuǎn)程節(jié)點的硬盤中設(shè)置有遠(yuǎn)程內(nèi)存交換分區(qū);則,所述轉(zhuǎn)存單元702,具體用于將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中的遠(yuǎn)程內(nèi)存交換分區(qū);或者,將所述需要轉(zhuǎn)存的內(nèi)存頁的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤的遠(yuǎn)程內(nèi)存交換分區(qū)轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。
[0141]在這里,所述遠(yuǎn)程節(jié)點的內(nèi)存是指所述本地節(jié)點從遠(yuǎn)程節(jié)點中借用的內(nèi)存。
[0142]在硬件實現(xiàn)上,以上發(fā)送單元可以收發(fā)機(jī),以上判斷單元,查詢單元和轉(zhuǎn)存單元可以以硬件形式或軟件形式內(nèi)嵌于節(jié)點的處理器中。該處理器可以為中央處理單元(CPU),也可以是單片機(jī)。
[0143]如圖8所示,為本發(fā)明實施例所提供的一種本地節(jié)點的結(jié)構(gòu)示意圖。如圖8所示,該本地節(jié)點包括收發(fā)機(jī)81、存儲器82以及分別與收發(fā)機(jī)81和存儲器82連接的處理器83。當(dāng)然,本地節(jié)點還可以包括天線、輸入輸出裝置等通用部件,本發(fā)明實施例在此不再任何限制。
[0144]其中,存儲器82中存儲一組程序代碼,且處理器83用于調(diào)用存儲器中存儲的程序代碼,用于執(zhí)行以下操作:
[0145]所述處理器83用于獲得需要轉(zhuǎn)存的內(nèi)存頁的基地址,并根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點;并判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為遠(yuǎn)程節(jié)點時,所述本地節(jié)點根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址查詢路由表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息,其中,所述路由表中存儲有各內(nèi)存頁對應(yīng)的路由信息,所述路由信息包括內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址;然后所述處理器83通過收發(fā)機(jī)81將查詢到的所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息和轉(zhuǎn)存信令發(fā)送給云端控制器,以使得所述云端控制器將所述路由信息和所述轉(zhuǎn)存信令轉(zhuǎn)發(fā)給所述需要轉(zhuǎn)存的內(nèi)存頁所在的遠(yuǎn)程節(jié)點,進(jìn)而使得所述遠(yuǎn)程節(jié)點根據(jù)所述轉(zhuǎn)存信令和所述路由信息,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中,或?qū)⑺鲂枰D(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點內(nèi)存中。在這里,所述遠(yuǎn)程節(jié)點的內(nèi)存是指所述本地節(jié)點從遠(yuǎn)程節(jié)點中借用的內(nèi)存。
[0146]可選的,所述處理器83具體用于根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址所在的地址空間,判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,其中,所述本地節(jié)點中預(yù)先存儲有所述本地節(jié)點對應(yīng)的地址空間和所述遠(yuǎn)程節(jié)點對應(yīng)的地址空間;或者,所述處理器83具體用于查詢頁表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的基地址對應(yīng)的標(biāo)識信息,判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,其中,所述頁表中存儲有各內(nèi)存頁的基地址以及所述基地址對應(yīng)的標(biāo)識信息,所述標(biāo)識信息用于標(biāo)識所述基地址對應(yīng)的節(jié)點。
[0147]當(dāng)然,所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點還可以是所述本地節(jié)點,當(dāng)所述處理器判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點是所述本地節(jié)點時,所述處理器83會將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述本地節(jié)點的本地內(nèi)存中轉(zhuǎn)存在所述本地節(jié)點的硬盤中;或者,將所述需要轉(zhuǎn)存的內(nèi)存頁從所述本地節(jié)點的硬盤轉(zhuǎn)存到所述本地節(jié)點的本地內(nèi)存中。
[0148]可選的,所述本地節(jié)點的硬盤中還可以設(shè)置有內(nèi)存交換分區(qū);此時,所述處理器會將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述本地節(jié)點的本地內(nèi)存中轉(zhuǎn)存在所述本地節(jié)點的硬盤中的內(nèi)存交換分區(qū);或者,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤的內(nèi)存交換分區(qū)轉(zhuǎn)存到所述本地節(jié)點的本地內(nèi)存中。
[0149]如圖9所示,為本發(fā)明實施例所提供的一種遠(yuǎn)程節(jié)點的結(jié)構(gòu)示意圖。如圖9所示,該遠(yuǎn)程節(jié)點包括收發(fā)機(jī)91、存儲器92以及分別與收發(fā)機(jī)91和存儲器92連接的處理器93。當(dāng)然,本地節(jié)點還可以包括天線、輸入輸出裝置等通用部件,本發(fā)明實施例在此不再任何限制。
[0150]其中,存儲器92中存儲一組程序代碼,且處理器93用于調(diào)用存儲器92中存儲的程序代碼,用于執(zhí)行以下操作:
[0151]所述處理器93用于調(diào)用驅(qū)動偵聽并接收云端控制器發(fā)送的轉(zhuǎn)存信令和路由信息,并根據(jù)接收到的所述轉(zhuǎn)存信令和所述路由信息,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中,或?qū)⑺鲂枰D(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。其中,所述路由信息包括需要轉(zhuǎn)存的內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址。
[0152]可選的,所述遠(yuǎn)程節(jié)點的硬盤中設(shè)置有遠(yuǎn)程內(nèi)存交換分區(qū);此時,所述處理器93就可以將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中的遠(yuǎn)程內(nèi)存交換分區(qū);或者,將所述需要轉(zhuǎn)存的內(nèi)存頁的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤的遠(yuǎn)程內(nèi)存交換分區(qū)轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。在這里,所述遠(yuǎn)程節(jié)點的內(nèi)存是指所述本地節(jié)點從遠(yuǎn)程節(jié)點中借用的遠(yuǎn)程內(nèi)存。
[0153]與現(xiàn)有技術(shù)相比,本發(fā)明實施例既不需要將遠(yuǎn)程內(nèi)存中的數(shù)據(jù)傳到本地節(jié)點占用傳輸通道,也不需要本地節(jié)點的內(nèi)存為傳回的遠(yuǎn)程內(nèi)存頁的數(shù)據(jù)預(yù)留空間,這樣就可以提高系統(tǒng)運行速度,節(jié)約功耗。另外,本發(fā)明實施例提供的方法過程簡單。不需要對節(jié)點的內(nèi)存管理部分進(jìn)行修改。
[0154]本發(fā)明實施例還提供了一種系統(tǒng),如圖10所示,所述系統(tǒng)包括本地節(jié)點1001,云端控制器1002和遠(yuǎn)程節(jié)點1003。
[0155]其中,所述本地節(jié)點1001獲得需要轉(zhuǎn)存的內(nèi)存頁的基地址,并根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點;并在判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為所述遠(yuǎn)程節(jié)點1003時,根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址查詢路由表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息,其中,所述路由表中存儲有各內(nèi)存頁對應(yīng)的路由信息,所述路由信息包括內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址;所述將所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息和轉(zhuǎn)存信令發(fā)送給云端控制器1002。
[0156]云端控制器1002,用于接收所述本地節(jié)點1001發(fā)送的所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息和轉(zhuǎn)存信令,并將所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息和轉(zhuǎn)存信令轉(zhuǎn)發(fā)給所述遠(yuǎn)程節(jié)點1003。
[0157]所述遠(yuǎn)程節(jié)點1003調(diào)用驅(qū)動偵聽并接收云端控制器1002發(fā)送的轉(zhuǎn)存信令和路由信息,所述路由信息包括需要轉(zhuǎn)存的內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址;并根據(jù)所述轉(zhuǎn)存信令和所述路由信息,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中,或?qū)⑺鲂枰D(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。在這里,所述遠(yuǎn)程節(jié)點的內(nèi)存是指所述本地節(jié)點從遠(yuǎn)程節(jié)點中借用的內(nèi)存。
[0158]本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0159]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種遠(yuǎn)程內(nèi)存交換分區(qū)方法,其特征在于,包括: 本地節(jié)點獲得需要轉(zhuǎn)存的內(nèi)存頁的基地址,并根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點; 若判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為遠(yuǎn)程節(jié)點時,所述本地節(jié)點根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址查詢路由表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息,其中,所述路由表中存儲有各內(nèi)存頁對應(yīng)的路由信息,所述路由信息包括內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址; 所述本地節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息和轉(zhuǎn)存信令發(fā)送給云端控制器,以使得所述云端控制器將所述路由信息和所述轉(zhuǎn)存信令轉(zhuǎn)發(fā)給所述需要轉(zhuǎn)存的內(nèi)存頁所在的遠(yuǎn)程節(jié)點。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述本地節(jié)點根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,包括: 所述本地節(jié)點根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址所在的地址空間,判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,其中,所述本地節(jié)點中預(yù)先存儲有所述本地節(jié)點對應(yīng)的地址空間和所述遠(yuǎn)程節(jié)點對應(yīng)的地址空間; 或者,所述本地節(jié)點查詢頁表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的基地址對應(yīng)的標(biāo)識信息,判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,其中,所述頁表中存儲有各內(nèi)存頁的基地址以及所述基地址對應(yīng)的標(biāo)識信息,所述標(biāo)識信息用于標(biāo)識所述基地址對應(yīng)的節(jié)點。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,若判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為所述本地節(jié)點時;所述方法還包括: 所述本地節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述本地節(jié)點的本地內(nèi)存中轉(zhuǎn)存在所述本地節(jié)點的硬盤中; 或者,所述本地節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁從所述本地節(jié)點的硬盤轉(zhuǎn)存到所述本地節(jié)點的本地內(nèi)存中。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述本地節(jié)點的硬盤中設(shè)置有內(nèi)存交換分區(qū); 所述本地節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述本地節(jié)點的本地內(nèi)存中轉(zhuǎn)存在所述本地節(jié)點的硬盤中,包括:所述本地節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述本地節(jié)點的本地內(nèi)存中轉(zhuǎn)存在所述本地節(jié)點的硬盤中的內(nèi)存交換分區(qū); 所述本地節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁從所述本地節(jié)點的硬盤轉(zhuǎn)存到所述本地節(jié)點的本地內(nèi)存中,包括:將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤的內(nèi)存交換分區(qū)轉(zhuǎn)存到所述本地節(jié)點的本地內(nèi)存中。
5.—種遠(yuǎn)程內(nèi)存交換分區(qū)方法,其特征在于,包括: 遠(yuǎn)程節(jié)點調(diào)用驅(qū)動偵聽并接收云端控制器發(fā)送的轉(zhuǎn)存信令和路由信息,所述路由信息包括需要轉(zhuǎn)存的內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址; 所述遠(yuǎn)程節(jié)點根據(jù)所述轉(zhuǎn)存信令和所述路由信息,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中,或?qū)⑺鲂枰D(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述遠(yuǎn)程節(jié)點的硬盤中設(shè)置有遠(yuǎn)程內(nèi)存交換分區(qū);則所述將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中,具體包括:將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中的遠(yuǎn)程內(nèi)存交換分區(qū); 所述將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中,具體包括:將所述需要轉(zhuǎn)存的內(nèi)存頁的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤的遠(yuǎn)程內(nèi)存交換分區(qū)轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。
7.—種本地節(jié)點,其特征在于,包括: 判斷單元,用于獲得需要轉(zhuǎn)存的內(nèi)存頁的基地址,并根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點; 查詢單元,用于在所述判斷單元判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為遠(yuǎn)程節(jié)點時,根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址查詢路由表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息,其中,所述路由表中存儲有各內(nèi)存頁對應(yīng)的路由信息,所述路由信息包括內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址; 發(fā)送單元,用于將所述查詢單元查詢到的所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息和轉(zhuǎn)存信令發(fā)送給云端控制器,以使得所述云端控制器將所述路由信息和所述轉(zhuǎn)存信令轉(zhuǎn)發(fā)給所述需要轉(zhuǎn)存的內(nèi)存頁所在的遠(yuǎn)程節(jié)點。
8.根據(jù)權(quán)利要求7所述的本地節(jié)點,其特征在于,所述判斷單元具體用于根據(jù)所述需要轉(zhuǎn)存的內(nèi)存頁的基地址所在的地址空間,判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,其中,所述本地節(jié)點中預(yù)先存儲有所述本地節(jié)點對應(yīng)的地址空間和所述遠(yuǎn)程節(jié)點對應(yīng)的地址空間; 或者,所述判斷單元具體用于查詢頁表獲得所述需要轉(zhuǎn)存的內(nèi)存頁的基地址對應(yīng)的標(biāo)識信息,判斷所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點,其中,所述頁表中存儲有各內(nèi)存頁的基地址以及所述基地址對應(yīng)的標(biāo)識信息,所述標(biāo)識信息用于標(biāo)識所述基地址對應(yīng)的節(jié)點。
9.根據(jù)權(quán)利要求7或8所述的本地節(jié)點,其特征在于,所述本地節(jié)點還包括:轉(zhuǎn)存單元, 所述轉(zhuǎn)存單元,用于在所述判斷單元判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為所述本地節(jié)點時,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述本地節(jié)點的本地內(nèi)存中轉(zhuǎn)存在所述本地節(jié)點的硬盤中; 或者,所述轉(zhuǎn)存單元,用于在所述判斷單元判斷出所述需要轉(zhuǎn)存的內(nèi)存頁所在的節(jié)點為所述本地節(jié)點時,將所述需要轉(zhuǎn)存的內(nèi)存頁從所述本地節(jié)點的硬盤轉(zhuǎn)存到所述本地節(jié)點的本地內(nèi)存中。
10.根據(jù)權(quán)利要求9所述的本地節(jié)點,其特征在于,所述本地節(jié)點的硬盤中設(shè)置有內(nèi)存交換分區(qū);則, 所述轉(zhuǎn)存單元,具體用于所述本地節(jié)點將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述本地節(jié)點的本地內(nèi)存中轉(zhuǎn)存在所述本地節(jié)點的硬盤中的內(nèi)存交換分區(qū); 或者,所述轉(zhuǎn)存單元,具體用于將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤的內(nèi)存交換分區(qū)轉(zhuǎn)存到所述本地節(jié)點的本地內(nèi)存中。
11.一種遠(yuǎn)程節(jié)點,其特征在于,包括: 接收單元,用于調(diào)用驅(qū)動偵聽并接收云端控制器發(fā)送的轉(zhuǎn)存信令和路由信息,所述路由信息包括需要轉(zhuǎn)存的內(nèi)存頁的基地址、內(nèi)存頁所在的遠(yuǎn)程節(jié)點地址以及內(nèi)存頁在遠(yuǎn)程節(jié)點中的物理地址; 轉(zhuǎn)存單元,用于根據(jù)所述接收單元接收到的所述轉(zhuǎn)存信令和所述路由信息,將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中,或?qū)⑺鲂枰D(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。
12.根據(jù)權(quán)利要求11所述的遠(yuǎn)程節(jié)點,其特征在于,所述遠(yuǎn)程節(jié)點的硬盤中設(shè)置有遠(yuǎn)程內(nèi)存交換分區(qū);則, 所述轉(zhuǎn)存單元,具體用于將所述需要轉(zhuǎn)存的內(nèi)存頁中的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的內(nèi)存中轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的硬盤中的遠(yuǎn)程內(nèi)存交換分區(qū);或者,將所述需要轉(zhuǎn)存的內(nèi)存頁的數(shù)據(jù)從所述遠(yuǎn)程節(jié)點的硬盤的遠(yuǎn)程內(nèi)存交換分區(qū)轉(zhuǎn)存到所述遠(yuǎn)程節(jié)點的內(nèi)存中。
13.—種系統(tǒng),其特征在于,所述系統(tǒng)包括本地節(jié)點,云端控制器和遠(yuǎn)程節(jié)點; 其中,所述本地節(jié)點為權(quán)利要求7所述的本地節(jié)點; 云端控制器,用于接收所述本地節(jié)點發(fā)送的所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息,并將所述需要轉(zhuǎn)存的內(nèi)存頁的路由信息轉(zhuǎn)發(fā)給所述遠(yuǎn)程節(jié)點; 所述遠(yuǎn)程節(jié)點為權(quán)利要求11所述的遠(yuǎn)程節(jié)點。
【文檔編號】H04L29/08GK104426971SQ201310391114
【公開日】2015年3月18日 申請日期:2013年8月30日 優(yōu)先權(quán)日:2013年8月30日
【發(fā)明者】張乾龍, 江濤, 董建波, 張義 申請人:華為技術(shù)有限公司, 中國科學(xué)院計算技術(shù)研究所