亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種全局內(nèi)存共享方法、裝置和一種通信系統(tǒng)的制作方法

文檔序號:6493053閱讀:173來源:國知局
一種全局內(nèi)存共享方法、裝置和一種通信系統(tǒng)的制作方法
【專利摘要】本發(fā)明實(shí)施例提供全局內(nèi)存共享方法、裝置和一種通信系統(tǒng),以提高子操作系統(tǒng)的自主性和降低全局內(nèi)存管理服務(wù)的壓力。所述方法包括:子操作系統(tǒng)統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率和換頁期間的內(nèi)存駐留時(shí)間比值;所述子操作系統(tǒng)根據(jù)所述頁面換出率和內(nèi)存駐留時(shí)間比值計(jì)算內(nèi)存壓力指標(biāo);若所述內(nèi)存壓力指標(biāo)大于內(nèi)存壓力閾值,則所述子操作系統(tǒng)向全局內(nèi)存管理服務(wù)發(fā)出申請。本發(fā)明實(shí)施例提供的方法在多操作系統(tǒng)的架構(gòu)下,各個(gè)子操作系統(tǒng)能完成更多的自適應(yīng)工作,降低全局內(nèi)存管理服務(wù)復(fù)雜度,提升系統(tǒng)性能,同時(shí),由于子操作系統(tǒng)之間能夠獨(dú)立地完成內(nèi)存的申請及釋放工作,如此可以提高全局內(nèi)存的利用率,也使得多操作系統(tǒng)架構(gòu)有更好的可擴(kuò)展性。
【專利說明】一種全局內(nèi)存共享方法、裝置和一種通信系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種全局內(nèi)存共享方法、裝置和一種通信系統(tǒng)。
【背景技術(shù)】
[0002]隨著數(shù)據(jù)量和數(shù)據(jù)處理需求的進(jìn)一步提升,負(fù)載對操作系統(tǒng)的性能要求越來越高,微內(nèi)核、多內(nèi)核已經(jīng)成為了操作系統(tǒng)未來發(fā)展的一個(gè)趨勢。多內(nèi)核協(xié)同工作能夠很好隔離應(yīng)用、提升系統(tǒng)的吞吐率以及較大地提高系統(tǒng)性能。因而,在面臨著大數(shù)據(jù)處理的今天,各種多內(nèi)核系統(tǒng)(或多操作系統(tǒng))也逐漸步入人們的視線,從傳統(tǒng)的計(jì)算機(jī)集群系統(tǒng)到如今比較熱門的異構(gòu)操作系統(tǒng)都是人們在這方面的嘗試。
[0003]多操作系統(tǒng)結(jié)構(gòu)的主要思想是采用這種方式能夠?qū)⒉煌呢?fù)載分配到不同的操作系統(tǒng)內(nèi)核上執(zhí)行,如此既能夠提高系統(tǒng)的處理能力又能兼容不同操作系統(tǒng)上的應(yīng)用。與傳統(tǒng)的基于計(jì)算機(jī)集群的多操作系統(tǒng)結(jié)構(gòu)相比,現(xiàn)在的多操作系統(tǒng)的粒度已經(jīng)由操作系統(tǒng)降低到操作系統(tǒng)內(nèi)核。即便如此,這種計(jì)算與資源共享分離的設(shè)計(jì)思想仍然沒有改變。換言之,采用這種設(shè)計(jì),所有的內(nèi)核在計(jì)算上是獨(dú)立的即獨(dú)立處理負(fù)載,但在資源使用上各個(gè)操作系統(tǒng)共享整個(gè)多操作系統(tǒng)結(jié)構(gòu)的資源,例如輸入/輸出(Input/Output,I/O)、內(nèi)存等。
[0004]就內(nèi)存這一多操作系統(tǒng)結(jié)構(gòu)的資源而言,現(xiàn)存的多操作系統(tǒng)結(jié)構(gòu)大多都采用全局內(nèi)存共享方式,即,每個(gè)CPU都運(yùn)行這各自獨(dú)立的子操作系統(tǒng);而各個(gè)子操作系統(tǒng)之間通過PCIe總線或網(wǎng)絡(luò)等形式訪問全局內(nèi)存池;整個(gè)多操作系統(tǒng)存在一個(gè)全局內(nèi)存管理服務(wù)來負(fù)責(zé)協(xié)調(diào)子操作系統(tǒng)之間對全局內(nèi)存的占用情況。
[0005]對于全局內(nèi)存的共享情況而言,各種多操作系統(tǒng)結(jié)構(gòu)所采取的策略則不太一樣?,F(xiàn)有技術(shù)的一種典型設(shè)計(jì)為:如果將全局內(nèi)存抽象成一條“內(nèi)存帶”,則由全局內(nèi)存管理服務(wù)系統(tǒng)或模塊按照固定順序從前往后將“內(nèi)存帶”的內(nèi)存以塊數(shù)為基本單位分配給各個(gè)子操作系統(tǒng)的內(nèi)核區(qū)(Kernel Section),即各個(gè)子操作系統(tǒng)的內(nèi)核區(qū)占用內(nèi)存的順序是從前往后固定排列,內(nèi)核區(qū)分配的內(nèi)存在整個(gè)多操作系統(tǒng)的運(yùn)行過程中不會更改,而各個(gè)子操作系統(tǒng)的用戶區(qū)(General Section)則從后往前由全局內(nèi)存管理服務(wù)系統(tǒng)或模塊分配而獲得“內(nèi)存帶”的內(nèi)存。與內(nèi)核區(qū)的內(nèi)存分配不同的是,用戶區(qū)的內(nèi)存分配是動態(tài)分配,屬于各個(gè)子操作系統(tǒng)的頁面之間沒有順序。
[0006]上述現(xiàn)有采用全局內(nèi)存共享方式的多操作系統(tǒng)結(jié)構(gòu)存在的缺陷為:各個(gè)子操作系統(tǒng)缺乏主動內(nèi)存感知的能力,所有的全局內(nèi)存管理工作都交由全局內(nèi)存管理服務(wù)處理,從而造成全局內(nèi)存管理編碼復(fù)雜,執(zhí)行效率低,也影響整個(gè)系統(tǒng)的性能。

【發(fā)明內(nèi)容】

[0007]本發(fā)明實(shí)施例提供全局內(nèi)存共享方法、裝置和一種通信系統(tǒng),以提高子操作系統(tǒng)的自主性和降低全局內(nèi)存管理服務(wù)的壓力。
[0008]本發(fā)明實(shí)施例提供一種全局內(nèi)存共享方法,所述方法包括:
[0009]子操作系統(tǒng)統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率和換頁期間的內(nèi)存駐留時(shí)間比值;
[0010]所述子操作系統(tǒng)根據(jù)所述頁面換出率和內(nèi)存駐留時(shí)間比值計(jì)算內(nèi)存壓力指標(biāo);
[0011]若所述內(nèi)存壓力指標(biāo)大于內(nèi)存壓力閾值,則所述子操作系統(tǒng)向全局內(nèi)存管理服務(wù)發(fā)出申請,所述申請用于從全局共享內(nèi)存分配當(dāng)前可獲取的內(nèi)存。
[0012]本發(fā)明另一實(shí)施例提供一種全局內(nèi)存共享方法,所述方法包括:
[0013]全局內(nèi)存管理服務(wù)接收子操作系統(tǒng)發(fā)出的用于從全局共享內(nèi)存分配當(dāng)前可獲取內(nèi)存的申請;
[0014]所述全局內(nèi)存管理服務(wù)將全局空閑內(nèi)存隊(duì)列中可分配的內(nèi)存塊標(biāo)記為不可用狀態(tài)并向所述子操作系統(tǒng)發(fā)送內(nèi)存分配消息,所述內(nèi)存分配消息攜帶可分配內(nèi)存塊的描述消息;
[0015]所述全局內(nèi)存管理服務(wù)接收所述子操作系統(tǒng)返回的更新確認(rèn)消息;
[0016]所述全局內(nèi)存管理服務(wù)根據(jù)所述更新確認(rèn)消息將所述標(biāo)記為不可用狀態(tài)的內(nèi)存塊從所述全局空閑內(nèi)存隊(duì)列中刪除;
[0017]所述全局內(nèi)存管理服務(wù)向所述子操作系統(tǒng)發(fā)送所述更新確認(rèn)消息的響應(yīng)消息。
[0018]本發(fā)明實(shí)施例提供一種全局內(nèi)存共享裝置,所述裝置包括:
[0019]統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率和換頁期間的內(nèi)存駐留時(shí)間比值;
[0020]計(jì)算模塊,用于根據(jù)所述頁面換出率和內(nèi)存駐留時(shí)間比值計(jì)算內(nèi)存壓力指標(biāo);
[0021]內(nèi)存申請模塊,用于所述內(nèi)存壓力指標(biāo)大于內(nèi)存壓力閾值時(shí)向全局內(nèi)存管理服務(wù)發(fā)出申請,所述申請用于從全局共享內(nèi)存分配當(dāng)前可獲取的內(nèi)存。
[0022]本發(fā)明另一實(shí)施例提供一種全局內(nèi)存共享裝置,所述裝置包括:
[0023]申請接收模塊,用于接收子操作系統(tǒng)發(fā)出的用于從全局共享內(nèi)存分配當(dāng)前可獲取內(nèi)存的申請;
[0024]空閑內(nèi)存處理模塊,用于將全局空閑內(nèi)存隊(duì)列中可分配的內(nèi)存塊標(biāo)記為不可用狀態(tài)并向所述子操作系統(tǒng)發(fā)送內(nèi)存分配消息,所述內(nèi)存分配消息攜帶可分配內(nèi)存的描述消息;
[0025]第一消息接收模塊,用于接收所述子操作系統(tǒng)返回的更新確認(rèn)消息;
[0026]內(nèi)存刪除模塊,用于根據(jù)所述更新確認(rèn)消息將所述標(biāo)記為不可用狀態(tài)的內(nèi)存塊從所述全局空閑內(nèi)存隊(duì)列中刪除;
[0027]響應(yīng)消息發(fā)送模塊,用于向所述子操作系統(tǒng)發(fā)送所述更新確認(rèn)消息的響應(yīng)消息。
[0028]本發(fā)明實(shí)施例提供一種通信系統(tǒng),所述系統(tǒng)包括全局內(nèi)存管理服務(wù)子系統(tǒng)和至少一個(gè)子操作系統(tǒng),所述全局內(nèi)存管理服務(wù)子系統(tǒng)包括申請接收模塊、空閑內(nèi)存處理模塊、第一消息接收模塊、內(nèi)存刪除模塊和響應(yīng)消息發(fā)送模塊,所述子操作系統(tǒng)包括統(tǒng)計(jì)模塊、計(jì)算模塊和內(nèi)存申請模塊;
[0029]所述統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率和換頁期間的內(nèi)存駐留時(shí)間比值;
[0030]所述計(jì)算模塊,用于根據(jù)所述頁面換出率和內(nèi)存駐留時(shí)間比值計(jì)算內(nèi)存壓力指標(biāo);
[0031]所述內(nèi)存申請模塊,用于所述內(nèi)存壓力指標(biāo)大于內(nèi)存壓力閾值時(shí)向全局內(nèi)存管理服務(wù)發(fā)出申請,以從全局共享內(nèi)存分配當(dāng)前可獲取的內(nèi)存;
[0032]所述申請接收模塊,用于接收子操作系統(tǒng)發(fā)出的用于從全局共享內(nèi)存分配當(dāng)前可獲取內(nèi)存的申請;
[0033]所述空閑內(nèi)存處理模塊,用于將全局空閑內(nèi)存隊(duì)列中可分配的內(nèi)存塊標(biāo)記為不可用狀態(tài)并向所述子操作系統(tǒng)發(fā)送內(nèi)存分配消息,所述內(nèi)存分配消息攜帶可分配內(nèi)存的描述消息;
[0034]所述第一消息接收模塊,用于接收所述子操作系統(tǒng)返回的更新確認(rèn)消息;
[0035]內(nèi)存刪除模塊,用于根據(jù)所述更新確認(rèn)消息將所述標(biāo)記為不可用狀態(tài)的內(nèi)存塊從所述全局空閑內(nèi)存隊(duì)列中刪除;
[0036]所述響應(yīng)消息發(fā)送模塊,用于向所述子操作系統(tǒng)發(fā)送所述更新確認(rèn)消息的響應(yīng)消
肩、O
[0037]從上述本發(fā)明實(shí)施例可知,由于多操作系統(tǒng)中的各個(gè)子操作系統(tǒng)是根據(jù)其自身內(nèi)存壓力指標(biāo)與內(nèi)存壓力閾值的大小關(guān)系,確定是否向全局內(nèi)存管理服務(wù)發(fā)出申請內(nèi)存的請求。因此,本發(fā)明實(shí)施例提供的方法在多操作系統(tǒng)的架構(gòu)下,各個(gè)子操作系統(tǒng)能完成更多的自適應(yīng)工作,降低全局內(nèi)存管理服務(wù)復(fù)雜度,提升系統(tǒng)性能,同時(shí),由于子操作系統(tǒng)之間能夠獨(dú)立地完成內(nèi)存的申請及釋放工作,如此可以提高全局內(nèi)存的利用率,也使得多操作系統(tǒng)架構(gòu)有更好的可擴(kuò)展性。
【專利附圖】

【附圖說明】
[0038]為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對現(xiàn)有技術(shù)或?qū)嵤├枋鲋兴枰褂玫母綀D作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域技術(shù)人員來講,還可以如這些附圖獲得其他的附圖。
[0039]圖1是本發(fā)明實(shí)施例提供的一種全局內(nèi)存共享方法流程示意圖;
[0040]圖2是本發(fā)明實(shí)施例提供的包括全局共享內(nèi)存的多操作系統(tǒng)架構(gòu)示意圖;
[0041]圖3是本發(fā)明實(shí)施例提供的一種全局內(nèi)存共享方法流程示意圖;
[0042]圖4是本發(fā)明實(shí)施例提供的全局內(nèi)存共享裝置結(jié)構(gòu)示意圖;
[0043]圖5是本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置結(jié)構(gòu)示意圖;
[0044]圖6_a是本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置結(jié)構(gòu)示意圖;
[0045]圖6_b是本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置結(jié)構(gòu)示意圖;
[0046]圖7_a是本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置結(jié)構(gòu)示意圖;
[0047]圖7_b是本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置結(jié)構(gòu)示意圖;
[0048]圖8_a是本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置結(jié)構(gòu)示意圖;
[0049]圖8_b是本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置結(jié)構(gòu)示意圖;
[0050]圖9_a是本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置結(jié)構(gòu)示意圖;
[0051]圖9_b是本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置結(jié)構(gòu)示意圖;
[0052]圖10是本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置結(jié)構(gòu)示意圖;
[0053]圖11是本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置結(jié)構(gòu)示意圖;
[0054]圖12是本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置結(jié)構(gòu)示意圖;
[0055]圖13是本發(fā)明實(shí)施例提供的一種通信系統(tǒng)結(jié)構(gòu)示意圖。【具體實(shí)施方式】
[0056]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0057]請參閱附圖1,是本發(fā)明實(shí)施例提供的一種全局內(nèi)存共享方法流程示意圖,其執(zhí)行主體可以是多操作系統(tǒng)結(jié)構(gòu)中的任意一個(gè)子操作系統(tǒng),主要包括步驟S101、步驟S102和步驟 S103:
[0058]S101,子操作系統(tǒng)統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率和換頁期間的內(nèi)存駐留時(shí)間比值。
[0059]在本發(fā)明實(shí)施例中,子操作系統(tǒng)是組成多操作系統(tǒng)架構(gòu)中的任意一個(gè)操作系統(tǒng),每個(gè)子操作系統(tǒng)包含本地內(nèi)存管理服務(wù)(Local Memory Management Service, LMMS)模塊和心跳(Heart Beat,HB)模塊,其中,LMMS負(fù)責(zé)對所屬子操作系統(tǒng)的內(nèi)存進(jìn)行管理,HB模塊提供心跳機(jī)制,負(fù)責(zé)向管理操作系統(tǒng)提供用于表明該子操作系統(tǒng)尚在運(yùn)行的“心跳”信息和其他息。
[0060]每個(gè)子操作系統(tǒng)使用一個(gè)變量記錄預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出次數(shù),該記錄頁面換出次數(shù)的變量在每次換頁(PageFault)期間自增。作為統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率的一個(gè)實(shí)施例,可以由子操作系統(tǒng)統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出次數(shù),當(dāng)任務(wù)輪轉(zhuǎn)期間頁面換出次數(shù)統(tǒng)計(jì)出來后,不難得出此期間總的頁面替換數(shù)(記為R)。對于既定的系統(tǒng),由于總的物理頁面數(shù)(記為P)是已知的,因此,可以計(jì)算出任務(wù)輪轉(zhuǎn)期間總的頁面替換數(shù)與物理頁面數(shù)的比值R/P,以該比值作為預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率。為了便于說明,將預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率記為PRRJij PRR=R/P。
[0061]在多操作系統(tǒng)架構(gòu)中,每個(gè)子操作系統(tǒng)還使用一個(gè)變量TRniin記錄頁面在內(nèi)存中的最小駐留時(shí)間。一個(gè)頁面在內(nèi)存的駐留時(shí)間(記為TR)可使用當(dāng)前時(shí)間戳Tc與頁面換入時(shí)間戳Ti之差表示,即內(nèi)存駐留時(shí)間TR=當(dāng)前時(shí)間戳Tc-頁面換入時(shí)間戳Ti。
[0062]在每次換頁(PageFault)期間,子操作系統(tǒng)都計(jì)算當(dāng)前換出頁面的內(nèi)存駐留時(shí)間。如果當(dāng)前內(nèi)存駐留時(shí)間小于之前的內(nèi)存駐留時(shí)間,則將當(dāng)前內(nèi)存駐留時(shí)間作為最小內(nèi)存駐留時(shí)間TRmin,如果當(dāng)前內(nèi)存駐留時(shí)間大于之前的內(nèi)存駐留時(shí)間,則以之前的內(nèi)存駐留時(shí)間作為最小內(nèi)存駐留時(shí)間TRmin。子操作系統(tǒng)統(tǒng)計(jì)出最小內(nèi)存駐留時(shí)間TRmin后,可以將最小內(nèi)存駐留時(shí)間TRmin與內(nèi)存駐留時(shí)間閾值Tt的比值作為內(nèi)存駐留時(shí)間比值(記為TP),即TP=TRmin/Tt。在本發(fā)明實(shí)施例中,內(nèi)存駐留時(shí)間比值TP是衡量多操作系統(tǒng)架構(gòu)中子操作系統(tǒng)內(nèi)存壓力指標(biāo)的參數(shù)之一。
[0063]S102,子操作系統(tǒng)根據(jù)所述頁面換出率和內(nèi)存駐留時(shí)間比值計(jì)算內(nèi)存壓力指標(biāo)。
[0064]具體計(jì)算方法可以是計(jì)算預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率PRR和內(nèi)存駐留時(shí)間比值TP的線性組合aXPRR+bXTP,以aXPRR+bXTP作為內(nèi)存壓力指標(biāo)P1,其中,a和b為頁面換出率和內(nèi)存駐留時(shí)間比值在線性組合aXPRR+bXTP中的比例調(diào)節(jié)參數(shù),而PRR就是預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率,TP就是內(nèi)存駐留時(shí)間比值。
[0065]S103,若內(nèi)存壓力指標(biāo)大于內(nèi)存壓力閾值,則子操作系統(tǒng)向全局內(nèi)存管理服務(wù)發(fā)出申請,該申請用于全局內(nèi)存管理服務(wù)從全局共享內(nèi)存為該子操作系統(tǒng)分配當(dāng)前可獲取的內(nèi)存。
[0066]在本發(fā)明實(shí)施例中,全局內(nèi)存管理服務(wù)(Global Memory Management Service,GMMS)是多操作系統(tǒng)架構(gòu)中運(yùn)行在管理操作系統(tǒng)上的一個(gè)內(nèi)存管理服務(wù)模塊或子系統(tǒng),負(fù)責(zé)協(xié)調(diào)各個(gè)子操作系統(tǒng)對全局內(nèi)存的使用情況,例如,為各個(gè)子操作系統(tǒng)分配基礎(chǔ)的運(yùn)行內(nèi)存、在子操作系統(tǒng)運(yùn)行過程中應(yīng)子操作系統(tǒng)的申請重新為其分配內(nèi)存以及釋放內(nèi)存等等。全局共享內(nèi)存可以僅僅是一個(gè)內(nèi)存陣列,也可以是由多個(gè)內(nèi)存陣列通過PCIe接口或者其他接口連接起來組成的內(nèi)存池(Memory Pool)。如附圖2所示,是本發(fā)明實(shí)施例提供的包括全局共享內(nèi)存的多操作系統(tǒng)架構(gòu)示意圖。所有子操作系統(tǒng)的數(shù)據(jù)放置在全局共享內(nèi)存的不同區(qū)域,子操作系統(tǒng)啟動時(shí),全局內(nèi)存管理服務(wù)將為其分配基礎(chǔ)的運(yùn)行內(nèi)存,之后子操作系統(tǒng)可以在運(yùn)行時(shí)動態(tài)申請和釋放內(nèi)存,全局內(nèi)存管理服務(wù)會以塊為單位將不同區(qū)域內(nèi)存分配給不同子操作系統(tǒng)。
[0067]記內(nèi)存壓力閾值為Pr,當(dāng)步驟S102中,子操作系統(tǒng)計(jì)算出的內(nèi)存壓力指標(biāo)P1即aXPRR+bXTP > Pr時(shí),則子操作系統(tǒng)向全局內(nèi)存管理服務(wù)發(fā)出申請,以從全局共享內(nèi)存分配當(dāng)前可獲取的內(nèi)存。全局內(nèi)存管理服務(wù)可以按照公式aXR/(P+N)+bXTPXP/(P+N)≤Pr計(jì)算出N,然后,對N向上取整,以向上取整后的N為最小內(nèi)存塊數(shù)向子操作系統(tǒng)分配內(nèi)存。計(jì)算式aXR/ (P+N) +bXTPXP/ (P+N) ( Pr中,R表示前述步驟SlOl中所統(tǒng)計(jì)的預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間總的頁面替換數(shù),P是總的物理頁面數(shù),TP是內(nèi)存駐留時(shí)間比值,Pr是內(nèi)存壓力閾值,a和b是頁面換出率PRR和內(nèi)存駐留時(shí)間比值TP在線性組合a X PRR+b X TP中的比例調(diào)節(jié)參數(shù)。
[0068]子操作系統(tǒng)向全局內(nèi)存管理服務(wù)發(fā)出申請,以從全局共享內(nèi)存分配當(dāng)前可獲取的內(nèi)存包括以下步驟:
[0069]S1031,子操作系統(tǒng)向全局內(nèi)存管理服務(wù)發(fā)送內(nèi)存申請消息。
[0070]全局內(nèi)存管理服務(wù)收`到內(nèi)存申請消息時(shí),根據(jù)當(dāng)前全局空閑內(nèi)存情況決定是否給該子操作系統(tǒng)分配內(nèi)存,其主`要過程包括全局內(nèi)存管理服務(wù)查詢當(dāng)前空閑內(nèi)存隊(duì)列列表以獲取當(dāng)前空閑內(nèi)存塊數(shù)??赡艹霈F(xiàn)如下三種情形,即:1)內(nèi)存足夠分配;2)內(nèi)存不足完成本次分配;3)兩個(gè)子操作系統(tǒng)同時(shí)申請,內(nèi)存不足以為該兩個(gè)子操作系統(tǒng)分配。
[0071]對于情形1),全局內(nèi)存管理服務(wù)可以將內(nèi)存分配給申請內(nèi)存的子操作系統(tǒng)。對于情形2),全局內(nèi)存管理服務(wù)可以將部分內(nèi)存分配給申請內(nèi)存的子操作系統(tǒng),與此同時(shí),更新當(dāng)前全局內(nèi)存的占用情況。對于情形3)的異常情況,交由異常程序處理模塊處理,此時(shí),全局內(nèi)存管理服務(wù)將根據(jù)該兩個(gè)子操作系統(tǒng)內(nèi)存壓力的大小,按比例進(jìn)行部分內(nèi)存分配。
[0072]在獲取了可分配內(nèi)存的大小之后,全局內(nèi)存管理服務(wù)從空閑內(nèi)存隊(duì)列中選取可分配的內(nèi)存塊并將其標(biāo)記為不可用狀態(tài),同時(shí),全局內(nèi)存管理服務(wù)向申請內(nèi)存的子操作系統(tǒng)發(fā)送內(nèi)存分配消息,其中攜帶可分配內(nèi)存的描述消息。
[0073]S1032,子操作系統(tǒng)接收全局內(nèi)存管理服務(wù)發(fā)送的內(nèi)存分配消息。
[0074]S1033,子操作系統(tǒng)根據(jù)所述可分配內(nèi)存的描述消息將可分配內(nèi)存塊加入到自身的物理內(nèi)存隊(duì)列并將所述可分配內(nèi)存塊標(biāo)記為不可用狀態(tài)。
[0075]S1034,子操作系統(tǒng)向所述全局內(nèi)存管理服務(wù)發(fā)送更新確認(rèn)消息。
[0076]在收到來自申請內(nèi)存的子操作系統(tǒng)返回的更新確認(rèn)消息后,全局內(nèi)存管理服務(wù)將原標(biāo)記未不可用的內(nèi)存塊從空閑內(nèi)存隊(duì)列列表中刪除,并向申請內(nèi)存的子操作系統(tǒng)發(fā)送響應(yīng)消息。
[0077]S1035,子操作系統(tǒng)收到全局內(nèi)存管理服務(wù)返回的更新確認(rèn)消息的響應(yīng)消息后,將標(biāo)記為不可用狀態(tài)的可分配內(nèi)存塊標(biāo)記為可用狀態(tài)。
[0078]在本發(fā)明實(shí)施例中,子操作系統(tǒng)使用一個(gè)變量記錄一段時(shí)間的工作集頁面大小,這一段時(shí)間使用預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)來度量。該變量在每次任務(wù)輪轉(zhuǎn)時(shí)時(shí)統(tǒng)計(jì)該任務(wù)的工作集頁面大小,每個(gè)任務(wù)在其所在時(shí)間片內(nèi)的頁面切換次數(shù)作為該任務(wù)的工作頁面大小,取N次任務(wù)輪轉(zhuǎn)中工作頁面的最大值作為這段時(shí)間的工作集頁面。由于子操作系統(tǒng)總是統(tǒng)計(jì)最近N次任務(wù)輪轉(zhuǎn)的工作集頁面,因此,在每次任務(wù)輪轉(zhuǎn)過程中,該值都將被更新。
[0079]為了減少對資源的不合理利用,子操作系統(tǒng)可以主動釋放空閑的內(nèi)存,S卩,若子操作系統(tǒng)確認(rèn)當(dāng)前空閑頁面數(shù)大于其當(dāng)前工作集頁面,則向全局內(nèi)存管理服務(wù)發(fā)送可釋放內(nèi)存消息以申請釋放內(nèi)存;空閑頁面中除工作集頁面之外即物理頁面數(shù)減去工作集頁面數(shù)的內(nèi)存作為可釋放內(nèi)存。子操作系統(tǒng)向全局內(nèi)存管理服務(wù)發(fā)送可釋放內(nèi)存消息以申請釋放內(nèi)存具體包括步驟SI至步驟S:
[0080]SI,子操作系統(tǒng)向全局內(nèi)存管理服務(wù)發(fā)送可釋放內(nèi)存消息。
[0081]全局內(nèi)存管理服務(wù)收到該可釋放內(nèi)存消息之后,向該子操作系統(tǒng)發(fā)送內(nèi)存釋放消息,作為對子操作系統(tǒng)內(nèi)存釋放請求的響應(yīng)。
[0082]S2,子操作系統(tǒng)接收全局內(nèi)存管理服務(wù)返回的內(nèi)存釋放消息。
[0083]子操作系統(tǒng)收到全局內(nèi)存管理服務(wù)返回的內(nèi)存釋放消息后,將可釋放內(nèi)存標(biāo)記為不可用狀態(tài)。
[0084]S3,子操作系統(tǒng)從本地空閑內(nèi)存隊(duì)列中獲取空閑內(nèi)存區(qū)域并更新機(jī)器狀態(tài)后向全局內(nèi)存管理服務(wù)返回釋放內(nèi)存區(qū)域信息,以使所述全局內(nèi)存管理服務(wù)更新全局空閑內(nèi)存隊(duì)列。
[0085]其中,更新機(jī)器狀態(tài)主要是包括更新物理內(nèi)存登記表和內(nèi)存頁面使用表等等。
[0086]全局內(nèi)存管理服務(wù)收到子操作系統(tǒng)返回的釋放內(nèi)存區(qū)域信息后,向子操作系統(tǒng)發(fā)送更新信息。
[0087]子操作系統(tǒng)更新本地空閑內(nèi)存列表,向全局內(nèi)存管理服務(wù)返回確認(rèn)更新信息,全局內(nèi)存管理服務(wù)更新全局空閑內(nèi)存隊(duì)列,完成本次內(nèi)存釋放過程。
[0088]關(guān)于釋放內(nèi)存時(shí)的異常處理,可以根據(jù)空閑內(nèi)存的實(shí)際大小進(jìn)行,S卩,當(dāng)子操作系統(tǒng)收到全局內(nèi)存管理服務(wù)返回的內(nèi)存釋放消息時(shí),空閑內(nèi)存隊(duì)列的空閑內(nèi)存已經(jīng)不足釋放內(nèi)存大小時(shí),取消此次的釋放內(nèi)存,具體方法是可以采取直接丟棄該內(nèi)存釋放消息。如果全局內(nèi)存管理服務(wù)長時(shí)間未收到來自于子操作系統(tǒng)的更新確認(rèn)消息時(shí),全局內(nèi)存管理服務(wù)默認(rèn)已收到更新信息,完成整個(gè)內(nèi)存釋放過程。
[0089]從上述本發(fā)明實(shí)施例提供的全局內(nèi)存共享方法可知,由于多操作系統(tǒng)中的各個(gè)子操作系統(tǒng)是根據(jù)其自身內(nèi)存壓力指標(biāo)與內(nèi)存壓力閾值的大小關(guān)系,確定是否向全局內(nèi)存管理服務(wù)發(fā)出申請內(nèi)存的請求。因此,本發(fā)明實(shí)施例提供的方法在多操作系統(tǒng)的架構(gòu)下,各個(gè)子操作系統(tǒng)能完成更多的自適應(yīng)工作,降低全局內(nèi)存管理服務(wù)復(fù)雜度,提升系統(tǒng)性能,同時(shí),由于子操作系統(tǒng)之間能夠獨(dú)立地完成內(nèi)存的申請及釋放工作,如此可以提高全局內(nèi)存的利用率,也使得多操作系統(tǒng)架構(gòu)有更好的可擴(kuò)展性。
[0090]請參閱附圖3,是本發(fā)明實(shí)施例提供的一種全局內(nèi)存共享方法流程示意圖,主要包括步驟S301、步驟S302、步驟S303和步驟S304:
[0091]S301,全局內(nèi)存管理服務(wù)將全局空閑內(nèi)存隊(duì)列中可分配的內(nèi)存塊標(biāo)記為不可用狀態(tài)并向所述子操作系統(tǒng)發(fā)送內(nèi)存分配消息,所述內(nèi)存分配消息攜帶可分配內(nèi)存塊的描述消
肩、O
[0092]當(dāng)多操作系統(tǒng)中的子操作系統(tǒng)計(jì)算出其內(nèi)存壓力指標(biāo)大于內(nèi)存壓力閾值時(shí),則該子操作系統(tǒng)會向全局內(nèi)存管理服務(wù)發(fā)出申請,以從全局共享內(nèi)存分配當(dāng)前可獲取的內(nèi)存。該申請以內(nèi)存申請消息方式發(fā)出。
[0093]全局內(nèi)存管理服務(wù)收到內(nèi)存申請消息時(shí),根據(jù)當(dāng)前全局空閑內(nèi)存情況決定是否給該子操作系統(tǒng)分配內(nèi)存,其主要過程包括全局內(nèi)存管理服務(wù)查詢當(dāng)前空閑內(nèi)存隊(duì)列列表以獲取當(dāng)前空閑內(nèi)存塊數(shù)??赡艹霈F(xiàn)如下三種情形,即:1)內(nèi)存足夠分配;2)內(nèi)存不足完成本次分配;3)兩個(gè)子操作系統(tǒng)同時(shí)申請,內(nèi)存不足以為該兩個(gè)子操作系統(tǒng)分配。
[0094]對于情形1),全局內(nèi)存管理服務(wù)可以將內(nèi)存分配給申請內(nèi)存的子操作系統(tǒng)。對于情形2),全局內(nèi)存管理服務(wù)可以將部分內(nèi)存分配給申請內(nèi)存的子操作系統(tǒng),與此同時(shí),更新當(dāng)前全局內(nèi)存的占用情況。對于情形3)的異常情況,交由異常程序處理模塊處理,此時(shí),全局內(nèi)存管理服務(wù)將根據(jù)該兩個(gè)子操作系統(tǒng)內(nèi)存壓力的大小,按比例進(jìn)行部分內(nèi)存分配。
[0095]在獲取了可分配內(nèi)存的大小之后,全局內(nèi)存管理服務(wù)從空閑內(nèi)存隊(duì)列中選取可分配的內(nèi)存塊并將其標(biāo)記為不可用狀態(tài),同時(shí),全局內(nèi)存管理服務(wù)向申請內(nèi)存的子操作系統(tǒng)發(fā)送內(nèi)存分配消息,其中攜帶可分配內(nèi)存的描述消息。子操作系統(tǒng)根據(jù)可分配內(nèi)存的描述消息將可分配內(nèi)存塊加入到自身的物理內(nèi)存隊(duì)列并將可分配內(nèi)存塊標(biāo)記為不可用狀態(tài);子操作系統(tǒng)向全局內(nèi)存管理服務(wù)發(fā)送更新確認(rèn)消息。
[0096]S302,全局內(nèi)存管理服務(wù)接收子操作系統(tǒng)返回的更新確認(rèn)消息。
[0097]S303,全局內(nèi)存管理服務(wù)根據(jù)所述更新確認(rèn)消息將所述標(biāo)記為不可用狀態(tài)的內(nèi)存塊從所述全局空閑內(nèi)存隊(duì)列中刪除。
[0098]S304,全局內(nèi)存管理服務(wù)向所述子操作系統(tǒng)發(fā)送所述更新確認(rèn)消息的響應(yīng)消息。
[0099]為了減少對資源的不合理利用,全局內(nèi)存管理服務(wù)還接收子操作系統(tǒng)主動釋放空閑內(nèi)存的申請,即,全局內(nèi)存管理服務(wù)接收子操作系統(tǒng)在確認(rèn)所述子操作系統(tǒng)當(dāng)前空閑頁面數(shù)大于其當(dāng)前工作集頁面時(shí)發(fā)送的可釋放內(nèi)存消息以釋放內(nèi)存。具體包括SI至S4:
[0100]SI,全局內(nèi)存管理服務(wù)接收子操作系統(tǒng)發(fā)送的可釋放內(nèi)存消息。
[0101]S2,全局內(nèi)存管理服務(wù)根據(jù)可釋放內(nèi)存消息向所述子操作系統(tǒng)返回內(nèi)存釋放消肩、O
[0102]子操作系統(tǒng)收到全局內(nèi)存管理服務(wù)返回的內(nèi)存釋放消息后,將可釋放內(nèi)存標(biāo)記為不可用狀態(tài),從本地空閑內(nèi)存隊(duì)列中獲取空閑內(nèi)存區(qū)域并更新機(jī)器狀態(tài)后向全局內(nèi)存管理服務(wù)返回釋放內(nèi)存區(qū)域信息,以使所述全局內(nèi)存管理服務(wù)更新全局空閑內(nèi)存隊(duì)列。
[0103]S3,全局內(nèi)存管理服務(wù)接收子操作系統(tǒng)返回的釋放內(nèi)存區(qū)域信息。
[0104]S4,全局內(nèi)存管理服務(wù)更新全局空閑內(nèi)存隊(duì)列。
[0105]全局內(nèi)存管理服務(wù)收到子操作系統(tǒng)返回的釋放內(nèi)存區(qū)域信息后,向子操作系統(tǒng)發(fā)送更新信息。子操作系統(tǒng)更新本地空閑內(nèi)存列表,向全局內(nèi)存管理服務(wù)返回確認(rèn)更新信息。全局內(nèi)存管理服務(wù)更新全局空閑內(nèi)存隊(duì)列,完成本次內(nèi)存釋放過程。
[0106]請參閱附圖4,是本發(fā)明實(shí)施例提供的全局內(nèi)存共享裝置結(jié)構(gòu)示意圖。為了便于說明,僅僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。附圖4示例的全局內(nèi)存共享裝置可以是多操作系統(tǒng)架構(gòu)中的任意一個(gè)子操作系統(tǒng),其包括統(tǒng)計(jì)模塊401、計(jì)算模塊402和內(nèi)存申請模塊403,其中:
[0107]統(tǒng)計(jì)模塊401,用于統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率和換頁期間的內(nèi)存駐留時(shí)間比值;
[0108]計(jì)算模塊402,用于根據(jù)所述頁面換出率和內(nèi)存駐留時(shí)間比值計(jì)算內(nèi)存壓力指標(biāo);
[0109]內(nèi)存申請模塊403,用于所述內(nèi)存壓力指標(biāo)大于內(nèi)存壓力閾值時(shí)向全局內(nèi)存管理服務(wù)發(fā)出申請,該申請用于全局內(nèi)存管理服務(wù)從全局共享內(nèi)存為該子操作系統(tǒng)分配當(dāng)前可獲取的內(nèi)存。全局內(nèi)存管理服務(wù)(Global Memory Management Service,GMMS)是多操作系統(tǒng)架構(gòu)中運(yùn)行在管理操作系統(tǒng)上的一個(gè)內(nèi)存管理服務(wù)模塊或子系統(tǒng),負(fù)責(zé)協(xié)調(diào)各個(gè)子操作系統(tǒng)對全局內(nèi)存的使用情況,例如,為各個(gè)子操作系統(tǒng)分配基礎(chǔ)的運(yùn)行內(nèi)存、在子操作系統(tǒng)運(yùn)行過程中應(yīng)子操作系統(tǒng)的申請重新為其分配內(nèi)存以及釋放內(nèi)存等等。全局共享內(nèi)存可以僅僅是一個(gè)內(nèi)存陣列,也可以是由多個(gè)內(nèi)存陣列通過PCIe接口或者其他接口連接起來組成的內(nèi)存池(Memory Pool)。如附圖2所示,是本發(fā)明實(shí)施例提供的包括全局共享內(nèi)存的多操作系統(tǒng)架構(gòu)示意圖。所有子操作系統(tǒng)的數(shù)據(jù)放置在全局共享內(nèi)存的不同區(qū)域,子操作系統(tǒng)啟動時(shí),全局內(nèi)存管理服務(wù)將為其分配基礎(chǔ)的運(yùn)行內(nèi)存,之后子操作系統(tǒng)可以在運(yùn)行時(shí)動態(tài)申請和釋放內(nèi)存,全局內(nèi)存管理服務(wù)會以塊為單位將不同區(qū)域內(nèi)存分配給不同子操作系統(tǒng)。
[0110]當(dāng)計(jì)算模塊402根據(jù)頁面換出率和內(nèi)存駐留時(shí)間比值計(jì)算出內(nèi)存壓力指標(biāo)并且該內(nèi)存壓力指標(biāo)大于內(nèi)存壓力閾值時(shí),內(nèi)存申請模塊403向全局內(nèi)存管理服務(wù)發(fā)出申請。全局內(nèi)存管理服務(wù)可以按照公式aXR/ (P+N)+bXTPXP/ (P+N)≤Pr計(jì)算出N,然后,對N向上取整,以向上取整后的N為最小內(nèi)存塊數(shù)向子操作系統(tǒng)分配內(nèi)存。計(jì)算式aXR/(P+N)+bXTPXP/ (P+N)≤ Pr中,R表示統(tǒng)計(jì)模塊401所統(tǒng)計(jì)的預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間總的頁面替換數(shù),P是總的物理頁面數(shù),TP是內(nèi)存駐留時(shí)間比值,Pr是內(nèi)存壓力閾值,a和b是頁面換出率PRR和內(nèi)存駐留時(shí)間比值TP在線性組合a X PRR+b X TP中的比例調(diào)節(jié)參數(shù)。
[0111]需要說明的是,以上全局內(nèi)存共享裝置的實(shí)施方式中,各功能模塊的劃分僅是舉例說明,實(shí)際應(yīng)用中可以根據(jù)需要,例如相應(yīng)硬件的配置要求或者軟件的實(shí)現(xiàn)的便利考慮,而將上述功能分配由不同的功能模塊完成,即將所述全局內(nèi)存共享裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。而且,實(shí)際應(yīng)用中,本實(shí)施例中的相應(yīng)的功能模塊可以是由相應(yīng)的硬件實(shí)現(xiàn),也可以由相應(yīng)的硬件執(zhí)行相應(yīng)的軟件完成,例如,前述的統(tǒng)計(jì)模塊,可以是具有執(zhí)行前述統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率和換頁期間的內(nèi)存駐留時(shí)間比值的硬件,例如統(tǒng)計(jì)器,也可以是能夠執(zhí)行相應(yīng)計(jì)算機(jī)程序從而完成前述功能的一般處理器或者其他硬件設(shè)備;再如前述的內(nèi)存申請模塊,可以是具有執(zhí)行前述內(nèi)存壓力指標(biāo)大于內(nèi)存壓力閾值時(shí)向全局內(nèi)存管理服務(wù)發(fā)出申請,以從全局共享內(nèi)存分配當(dāng)前可獲取的內(nèi)存功能的硬件,例如內(nèi)存申請器,也可以是能夠執(zhí)行相應(yīng)計(jì)算機(jī)程序從而完成前述功能的一般處理器或者其他硬件設(shè)備(本說明書提供的各個(gè)實(shí)施例都可應(yīng)用上述描述原則)。
[0112]附圖4示例的全局內(nèi)存共享裝置中,子操作系統(tǒng)是組成多操作系統(tǒng)架構(gòu)中的任意一個(gè)操作系統(tǒng),每個(gè)子操作系統(tǒng)包含LMMS模塊和HB模塊,其中,LMMS負(fù)責(zé)對所屬子操作系統(tǒng)的內(nèi)存進(jìn)行管理,HB模塊提供心跳機(jī)制,負(fù)責(zé)向管理操作系統(tǒng)提供用于表明該子操作系統(tǒng)尚在運(yùn)行的“心跳”信息和其他信息。
[0113]每個(gè)子操作系統(tǒng)使用一個(gè)變量記錄預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出次數(shù),該記錄頁面換出次數(shù)的變量在每次換頁(PageFault)期間自增。作為統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率的一個(gè)實(shí)施例,可以由統(tǒng)計(jì)模塊401統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出次數(shù),當(dāng)任務(wù)輪轉(zhuǎn)期間頁面換出次數(shù)統(tǒng)計(jì)出來后,不難得出此期間總的頁面替換數(shù)(記為R)。對于既定的系統(tǒng),由于總的物理頁面數(shù)(記為P)是已知的,因此,可以計(jì)算出任務(wù)輪轉(zhuǎn)期間總的頁面替換數(shù)與物理頁面數(shù)的比值R/P,以該比值作為預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率。為了便于說明,將預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率記為PRRJij PRR=R/P。
[0114]在多操作系統(tǒng)架構(gòu)中,每個(gè)子操作系統(tǒng)還使用一個(gè)變量TRniin記錄頁面在內(nèi)存中的最小駐留時(shí)間。一個(gè)頁面在內(nèi)存的駐留時(shí)間(記為TR)可使用當(dāng)前時(shí)間戳Tc與頁面換入時(shí)間戳Ti之差表示,即內(nèi)存駐留時(shí)間TR=當(dāng)前時(shí)間戳Tc-頁面換入時(shí)間戳Ti。
[0115]在每次換頁(PageFault)期間,子操作系統(tǒng)都計(jì)算當(dāng)前換出頁面的內(nèi)存駐留時(shí)間。如果當(dāng)前內(nèi)存駐留時(shí)間小于之前的內(nèi)存駐留時(shí)間,則將當(dāng)前內(nèi)存駐留時(shí)間作為最小內(nèi)存駐留時(shí)間TRmin,如果當(dāng)前內(nèi)存駐留時(shí)間大于之前的內(nèi)存駐留時(shí)間,則以之前的內(nèi)存駐留時(shí)間作為最小內(nèi)存駐留時(shí)間TRmin。子操作系統(tǒng)統(tǒng)計(jì)出最小內(nèi)存駐留時(shí)間TRmin后,統(tǒng)計(jì)模塊401可以將最小內(nèi)存駐留時(shí)間TRmin與內(nèi)存駐留時(shí)間閾值Tt的比值作為內(nèi)存駐留時(shí)間比值(記為TP),即TP=TRmin/Tt。在附圖4示例的全局內(nèi)存共享裝置中,內(nèi)存駐留時(shí)間比值TP是衡量多操作系統(tǒng)架構(gòu)中子操作系統(tǒng)內(nèi)存壓力指標(biāo)的參數(shù)之一。
[0116]附圖4示例的統(tǒng)計(jì)模塊401可以包括第一統(tǒng)計(jì)單元501和第二統(tǒng)計(jì)單元502,如附圖5所示本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置,其中:
[0117]第一統(tǒng)計(jì)單元501,用于統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出次數(shù),以所述任務(wù)輪轉(zhuǎn)期間總的頁面替換數(shù)與物理頁面數(shù)的比值作為所述頁面換出率;
[0118]第二統(tǒng)計(jì)單元502,用于統(tǒng)計(jì)最小內(nèi)存駐留時(shí)間,以所述最小內(nèi)存駐留時(shí)間與內(nèi)存駐留時(shí)間閾值的比值作為所述內(nèi)存駐留時(shí)間比值。
[0119]附圖4或附圖5示例的計(jì)算模塊402可以包括線性組合單元601,如附圖6_a或附圖6-b所示本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置。線性組合單元601用于計(jì)算所述頁面換出率和內(nèi)存駐留時(shí)間比值的線性組合aXPRR+bXTP,以所述aXPRR+bXTP作為所述內(nèi)存壓力指標(biāo),其中,所述a和所述b為所述頁面換出率PRR和內(nèi)存駐留時(shí)間比值在所述線性組合中的比例調(diào)節(jié)參數(shù),而PRR就是預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率,TP就是內(nèi)存駐留時(shí)間比值。
[0120]附圖6-a或附圖6-b示例的內(nèi)存申請模塊403可以包括第一發(fā)送單元701、接收單元702、內(nèi)存添加單元703、第二發(fā)送單元704和標(biāo)記單元705,如附圖7_a或附圖7_b所示本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置,其中:
[0121]第一發(fā)送單元701,用于向全局內(nèi)存管理服務(wù)發(fā)送內(nèi)存申請消息;
[0122]接收單元702,用于接收全局內(nèi)存管理服務(wù)發(fā)送的內(nèi)存分配消息,內(nèi)存分配消息攜帶可分配內(nèi)存的描述消息;
[0123]內(nèi)存添加單元703,用于根據(jù)可分配內(nèi)存的描述消息將可分配內(nèi)存塊加入到自身的物理內(nèi)存隊(duì)列并將可分配內(nèi)存塊標(biāo)記為不可用狀態(tài);
[0124]第二發(fā)送單元704,用于向全局內(nèi)存管理服務(wù)發(fā)送更新確認(rèn)消息;
[0125]標(biāo)記單元705,用于收到全局內(nèi)存管理服務(wù)返回的更新確認(rèn)消息的響應(yīng)消息后,將標(biāo)記為不可用狀態(tài)的可分配內(nèi)存塊標(biāo)記為可用狀態(tài)。
[0126]需要說明的是,全局內(nèi)存管理服務(wù)收到第一發(fā)送單元701發(fā)送的內(nèi)存申請消息時(shí),根據(jù)當(dāng)前全局空閑內(nèi)存情況決定是否給該子操作系統(tǒng)分配內(nèi)存,其主要過程包括全局內(nèi)存管理服務(wù)查詢當(dāng)前空閑內(nèi)存隊(duì)列列表以獲取當(dāng)前空閑內(nèi)存塊數(shù)??赡艹霈F(xiàn)如下三種情形,即:1)內(nèi)存足夠分配;2)內(nèi)存不足完成本次分配;3)兩個(gè)子操作系統(tǒng)同時(shí)申請,內(nèi)存不足以為該兩個(gè)子操作系統(tǒng)分配。對于情形1),全局內(nèi)存管理服務(wù)可以將內(nèi)存分配給申請內(nèi)存的子操作系統(tǒng)。對于情形2),全局內(nèi)存管理服務(wù)可以將部分內(nèi)存分配給申請內(nèi)存的子操作系統(tǒng),與此同時(shí),更新當(dāng)前全局內(nèi)存的占用情況。對于情形3)的異常情況,交由異常程序處理模塊處理,此時(shí),全局內(nèi)存管理服務(wù)將根據(jù)該兩個(gè)子操作系統(tǒng)內(nèi)存壓力的大小,按比例進(jìn)行部分內(nèi)存分配。在獲取了可分配內(nèi)存的大小之后,全局內(nèi)存管理服務(wù)從空閑內(nèi)存隊(duì)列中選取可分配的內(nèi)存塊并將其標(biāo)記為不可用狀態(tài),同時(shí),全局內(nèi)存管理服務(wù)向申請內(nèi)存的子操作系統(tǒng)發(fā)送內(nèi)存分配消息,其中攜帶可分配內(nèi)存的描述消息;接收單元702接收該內(nèi)存分配消息。
[0127]附圖7-a或附圖7-b示例的全局內(nèi)存共享裝置還可以包括申請釋放內(nèi)存模塊801,如附圖8-a或附圖8-b所示本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置。申請釋放內(nèi)存模塊801用于確認(rèn)當(dāng)前空閑頁面數(shù)大于子操作系統(tǒng)當(dāng)前工作集頁面時(shí)向全局內(nèi)存管理服務(wù)發(fā)送可釋放內(nèi)存消息以申請釋放內(nèi)存。
[0128]在附圖8_a或附圖8_b示例的全局內(nèi)存共享裝置中,子操作系統(tǒng)使用一個(gè)變量記錄一段時(shí)間的工作集頁面大小,這一段時(shí)間使用預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)來度量。該變量在每次任務(wù)輪轉(zhuǎn)時(shí)時(shí)統(tǒng)計(jì)該任務(wù)的工作集頁面大小,每個(gè)任務(wù)在其所在時(shí)間片內(nèi)的頁面切換次數(shù)作為該任務(wù)的工作頁面大小,取N次任務(wù)輪轉(zhuǎn)中工作頁面的最大值作為這段時(shí)間的工作集頁面。由于子操作系統(tǒng)總是統(tǒng)計(jì)最近N次任務(wù)輪轉(zhuǎn)的工作集頁面,因此,在每次任務(wù)輪轉(zhuǎn)過程中,該值都將被更新。
[0129]為了減少對資源的不合理利用,子操作系統(tǒng)可以主動釋放空閑的內(nèi)存,S卩,若子操作系統(tǒng)確認(rèn)當(dāng)前空閑頁面數(shù)大于其當(dāng)前工作集頁面,則向全局內(nèi)存管理服務(wù)發(fā)送可釋放內(nèi)存消息以申請釋放內(nèi)存;空閑頁面中除工作集頁面之外即物理頁面數(shù)減去工作集頁面數(shù)的內(nèi)存作為可釋放內(nèi)存,如此,附圖8-a或附圖8-b示例的申請釋放內(nèi)存模塊801可以包括消息發(fā)送單元901、消息接收單元902和狀態(tài)更新單元903,如附圖9_a或附圖9_b所示本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置,其中:
[0130]消息發(fā)送單元901,用于向全局內(nèi)存管理服務(wù)發(fā)送可釋放內(nèi)存消息;
[0131]消息接收單元902,用于接收全局內(nèi)存管理服務(wù)返回的所述內(nèi)存釋放消息;
[0132]狀態(tài)更新單元903,用于子操作系統(tǒng)從本地空閑內(nèi)存隊(duì)列中獲取空閑內(nèi)存區(qū)域并更新機(jī)器狀態(tài)后向全局內(nèi)存管理服務(wù)返回釋放內(nèi)存區(qū)域信息,以使全局內(nèi)存管理服務(wù)更新全局空閑內(nèi)存隊(duì)列。
[0133]請參閱附圖10,是本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置結(jié)構(gòu)示意圖。為了便于說明,僅僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。附圖10示例的全局內(nèi)存共享裝置10可以是多操作系統(tǒng)架構(gòu)中的全局內(nèi)存管理服務(wù)模塊或子系統(tǒng),其包括申請接收模塊1001、空閑內(nèi)存處理模塊1002、第一消息接收模塊1003、內(nèi)存刪除模塊1004和響應(yīng)消息發(fā)送模塊1005,其中:
[0134]申請接收模塊1001,用于接收子操作系統(tǒng)發(fā)出的用于從全局共享內(nèi)存分配當(dāng)前可獲取內(nèi)存的申請;
[0135]空閑內(nèi)存處理模塊1002,用于將全局空閑內(nèi)存隊(duì)列中可分配的內(nèi)存塊標(biāo)記為不可用狀態(tài)并向所述子操作系統(tǒng)發(fā)送內(nèi)存分配消息,所述內(nèi)存分配消息攜帶可分配內(nèi)存的描述消息;
[0136]第一消息接收模塊1003,用于接收所述子操作系統(tǒng)返回的更新確認(rèn)消息;
[0137]內(nèi)存刪除模塊1004,用于根據(jù)所述更新確認(rèn)消息將所述標(biāo)記為不可用狀態(tài)的內(nèi)存塊從所述全局空閑內(nèi)存隊(duì)列中刪除;
[0138]響應(yīng)消息發(fā)送模塊1005,用于向所述子操作系統(tǒng)發(fā)送所述更新確認(rèn)消息的響應(yīng)消
肩、O
[0139]附圖10示例的全局內(nèi)存共享裝置中,申請接收模塊1001收到內(nèi)存申請消息時(shí),全局內(nèi)存管理服務(wù)模塊根據(jù)當(dāng)前全局空閑內(nèi)存情況決定是否給該子操作系統(tǒng)分配內(nèi)存,其主要過程包括全局內(nèi)存管理服務(wù)查詢當(dāng)前空閑內(nèi)存隊(duì)列列表以獲取當(dāng)前空閑內(nèi)存塊數(shù)??赡艹霈F(xiàn)如下三種情形,即:1)內(nèi)存足夠分配;2)內(nèi)存不足完成本次分配;3)兩個(gè)子操作系統(tǒng)同時(shí)申請,內(nèi)存不足以為該兩個(gè)子操作系統(tǒng)分配。對于情形1),全局內(nèi)存管理服務(wù)可以將內(nèi)存分配給申請內(nèi)存的子操作系統(tǒng)。對于情形2),全局內(nèi)存管理服務(wù)可以將部分內(nèi)存分配給申請內(nèi)存的子操作系統(tǒng),與此同時(shí),更新當(dāng)前全局內(nèi)存的占用情況。對于情形3)的異常情況,交由異常程序處理模塊處理,此時(shí),全局內(nèi)存管理服務(wù)模塊將根據(jù)該兩個(gè)子操作系統(tǒng)內(nèi)存壓力的大小,按比例進(jìn)行部分內(nèi)存分配。在獲取了可分配內(nèi)存的大小之后,空閑內(nèi)存處理模塊1002從空閑內(nèi)存隊(duì)列中選取可分配的內(nèi)存塊并將其標(biāo)記為不可用狀態(tài),同時(shí),空閑內(nèi)存處理模塊1002向申請內(nèi)存的子操作系統(tǒng)發(fā)送內(nèi)存分配消息,其中攜帶可分配內(nèi)存的描述消息。子操作系統(tǒng)根據(jù)可分配內(nèi)存的描述消息將可分配內(nèi)存塊加入到自身的物理內(nèi)存隊(duì)列并將可分配內(nèi)存塊標(biāo)記為不可用狀態(tài);子操作系統(tǒng)向全局內(nèi)存管理服務(wù)發(fā)送更新確認(rèn)消肩、O
[0140]需要說明的是,以上全局內(nèi)存共享裝置的實(shí)施方式中,各功能模塊的劃分僅是舉例說明,實(shí)際應(yīng)用中可以根據(jù)需要,例如相應(yīng)硬件的配置要求或者軟件的實(shí)現(xiàn)的便利考慮,而將上述功能分配由不同的功能模塊完成,即將所述全局內(nèi)存共享裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。而且,實(shí)際應(yīng)用中,本實(shí)施例中的相應(yīng)的功能模塊可以是由相應(yīng)的硬件實(shí)現(xiàn),也可以由相應(yīng)的硬件執(zhí)行相應(yīng)的軟件完成,例如,前述的申請接收模塊,可以是具有執(zhí)行前述接收子操作系統(tǒng)發(fā)出的用于從全局共享內(nèi)存分配當(dāng)前可獲取內(nèi)存的申請的硬件,例如申請接收器,也可以是能夠執(zhí)行相應(yīng)計(jì)算機(jī)程序從而完成前述功能的一般處理器或者其他硬件設(shè)備;再如前述的空閑內(nèi)存處理模塊,可以是具有執(zhí)行前述將全局空閑內(nèi)存隊(duì)列中可分配的內(nèi)存塊標(biāo)記為不可用狀態(tài)并向所述子操作系統(tǒng)發(fā)送內(nèi)存分配消息的硬件,例如空閑內(nèi)存處理器,也可以是能夠執(zhí)行相應(yīng)計(jì)算機(jī)程序從而完成前述功能的一般處理器或者其他硬件設(shè)備(本說明書提供的各個(gè)實(shí)施例都可應(yīng)用上述描述原則)。[0141]附圖10示例的全局內(nèi)存共享裝置還包括第二消息接收模塊1101,如附圖11所示本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置11。第二消息接收模塊1101用于接收子操作系統(tǒng)在確認(rèn)所述子操作系統(tǒng)當(dāng)前空閑頁面數(shù)大于所述子操作系統(tǒng)當(dāng)前工作集頁面時(shí)發(fā)送的可釋放內(nèi)存消息以釋放內(nèi)存。
[0142]附圖11示例的第二消息接收模塊1101可以包括第一接收單元1201、發(fā)送單元1202、第二接收單元1203和內(nèi)存更新單元1204,如附圖12所示本發(fā)明另一實(shí)施例提供的全局內(nèi)存共享裝置12。
[0143]第一接收單元1201,用于接收子操作系統(tǒng)發(fā)送的可釋放內(nèi)存消息;
[0144]發(fā)送單元1202,用于根據(jù)可釋放內(nèi)存消息向子操作系統(tǒng)返回內(nèi)存釋放消息;
[0145]第二接收單元1203,用于接收子操作系統(tǒng)返回的釋放內(nèi)存區(qū)域信息;
[0146]內(nèi)存更新單元1204,用于更新全局空閑內(nèi)存隊(duì)列。
[0147]請參閱附圖13,是本發(fā)明實(shí)施例提供的一種通信系統(tǒng)結(jié)構(gòu)示意圖。為了便于說明,僅僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。附圖13示例的通信系統(tǒng)包括全局內(nèi)存管理服務(wù)子系統(tǒng)131和至少一個(gè)子操作系統(tǒng)132,全局內(nèi)存管理服務(wù)子系統(tǒng)131包括申請接收模塊1311、空閑內(nèi)存處理模塊1312、第一消息接收模塊1313、內(nèi)存刪除模塊1314和響應(yīng)消息發(fā)送模塊1315,子操作系統(tǒng)132包括統(tǒng)計(jì)模塊1321、計(jì)算模塊1322和內(nèi)存申請模塊1323,其中:
[0148]統(tǒng)計(jì)模塊1321,用于統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率PRR和換頁期間的內(nèi)存駐留時(shí)間比值TP;
[0149]計(jì)算模塊1322,用于根據(jù)所述頁面換出率PRR和內(nèi)存駐留時(shí)間比值TP計(jì)算內(nèi)存壓力指標(biāo);
[0150]內(nèi)存申請模塊1323,用于所述內(nèi)存壓力指標(biāo)大于內(nèi)存壓力閾值時(shí)向全局內(nèi)存管理服務(wù)子系統(tǒng)131發(fā)出申請,以從全局共享內(nèi)存分配當(dāng)前可獲取的內(nèi)存;
[0151]申請接收模塊1311,用于接收子操作系統(tǒng)132發(fā)出的用于從全局共享內(nèi)存分配當(dāng)前可獲取內(nèi)存的申請;
[0152]空閑內(nèi)存處理模塊1312,用于將全局空閑內(nèi)存隊(duì)列中可分配的內(nèi)存塊標(biāo)記為不可用狀態(tài)并向子操作系統(tǒng)132發(fā)送內(nèi)存分配消息,所述內(nèi)存分配消息攜帶可分配內(nèi)存的描述消息;
[0153]第一消息接收模塊1313,用于接收子操作系統(tǒng)132返回的更新確認(rèn)消息;
[0154]內(nèi)存刪除模塊1314,用于根據(jù)更新確認(rèn)消息將所述標(biāo)記為不可用狀態(tài)的內(nèi)存塊從全局空閑內(nèi)存隊(duì)列中刪除;
[0155]響應(yīng)消息發(fā)送模塊1315,用于向子操作系統(tǒng)132發(fā)送更新確認(rèn)消息的響應(yīng)消息。
[0156]需要說明的是,上述裝置各模塊/單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,其帶來的技術(shù)效果與本發(fā)明方法實(shí)施例相同,具體內(nèi)容可參見本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。
[0157]本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,比如以下各種方法的一種或多種或全部:
[0158]方法一:子操作系統(tǒng)統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率和換頁期間的內(nèi)存駐留時(shí)間比值;子操作系統(tǒng)根據(jù)所述頁面換出率和內(nèi)存駐留時(shí)間比值計(jì)算內(nèi)存壓力指標(biāo);若所述內(nèi)存壓力指標(biāo)大于內(nèi)存壓力閾值,則子操作系統(tǒng)向全局內(nèi)存管理服務(wù)發(fā)出申請,以從全局共享內(nèi)存分配當(dāng)前可獲取的內(nèi)存。
[0159]方法二:全局內(nèi)存管理服務(wù)接收子操作系統(tǒng)發(fā)出的用于從全局共享內(nèi)存分配當(dāng)前可獲取內(nèi)存的申請;全局內(nèi)存管理服務(wù)將全局空閑內(nèi)存隊(duì)列中可分配的內(nèi)存塊標(biāo)記為不可用狀態(tài)并向所述子操作系統(tǒng)發(fā)送內(nèi)存分配消息,所述內(nèi)存分配消息攜帶可分配內(nèi)存塊的描述消息;全局內(nèi)存管理服務(wù)接收所述子操作系統(tǒng)返回的更新確認(rèn)消息;全局內(nèi)存管理服務(wù)根據(jù)所述更新確認(rèn)消息將所述標(biāo)記為不可用狀態(tài)的內(nèi)存塊從所述全局空閑內(nèi)存隊(duì)列中刪除;全局內(nèi)存管理服務(wù)向所述子操作系統(tǒng)發(fā)送所述更新確認(rèn)消息的響應(yīng)消息。
[0160]本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計(jì)算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:只讀存儲器(ROM,Read Only Memory)、隨機(jī)存取存儲器(RAM,RandomAccess Memory)、磁盤或光盤等。
[0161]以上對本發(fā)明實(shí)施例提供的全局內(nèi)存共享方法、裝置和一種通信系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【權(quán)利要求】
1.一種全局內(nèi)存共享方法,其特征在于,所述方法包括: 子操作系統(tǒng)統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率和換頁期間的內(nèi)存駐留時(shí)間比值; 所述子操作系統(tǒng)根據(jù)所述頁面換出率和內(nèi)存駐留時(shí)間比值計(jì)算內(nèi)存壓力指標(biāo); 若所述內(nèi)存壓力指標(biāo)大于內(nèi)存壓力閾值,則所述子操作系統(tǒng)向全局內(nèi)存管理服務(wù)發(fā)出申請,所述申請用于從全局共享內(nèi)存分配當(dāng)前可獲取的內(nèi)存。
2.如權(quán)利要求1所述的方法,其特征在于,所述子操作系統(tǒng)統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率和換頁期間的內(nèi)存駐留時(shí)間比值包括: 所述子操作系統(tǒng)統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出次數(shù),以所述任務(wù)輪轉(zhuǎn)期間總的頁面替換數(shù)與物理頁面數(shù)的比值作為所述頁面換出率;以及 所述子操作系統(tǒng)統(tǒng)計(jì)最小內(nèi)存駐留時(shí)間,以所述最小內(nèi)存駐留時(shí)間與內(nèi)存駐留時(shí)間閾值的比值作為所述內(nèi)存駐留時(shí)間比值。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述子操作系統(tǒng)根據(jù)所述頁面換出率和內(nèi)存駐留時(shí)間比值計(jì)算內(nèi)存壓力指標(biāo)包括: 計(jì)算所述頁面換出率和內(nèi)存駐留時(shí)間比值的線性組合a X PRR+b X TP,以所述aXPRR+bXTP作為所述內(nèi)存壓力指標(biāo),所述a和所述b為所述頁面換出率和內(nèi)存駐留時(shí)間比值在所述線性組合中的比例調(diào)節(jié)參數(shù),所述PRR為所述頁面換出率,所述TP為所述內(nèi)存駐留時(shí)間比值。
4.如權(quán)利要求3所述的方法,其特征在于,所述所述子操作系統(tǒng)向全局內(nèi)存管理服務(wù)發(fā)出申請,以從全局共享內(nèi)`存分配當(dāng)前可獲取的內(nèi)存包括: 所述子操作系統(tǒng)向所述全局內(nèi)存管理服務(wù)發(fā)送內(nèi)存申請消息; 所述子操作系統(tǒng)接收所述全局內(nèi)存管理服務(wù)發(fā)送的內(nèi)存分配消息,所述內(nèi)存分配消息攜帶可分配內(nèi)存塊的描述消息; 所述子操作系統(tǒng)根據(jù)所述可分配內(nèi)存的描述消息將可分配內(nèi)存塊加入到自身的物理內(nèi)存隊(duì)列并將所述可分配內(nèi)存塊標(biāo)記為不可用狀態(tài); 所述子操作系統(tǒng)向所述全局內(nèi)存管理服務(wù)發(fā)送更新確認(rèn)消息; 所述子操作系統(tǒng)收到所述全局內(nèi)存管理服務(wù)返回的更新確認(rèn)消息的響應(yīng)消息后,將所述標(biāo)記為不可用狀態(tài)的可分配內(nèi)存塊標(biāo)記為可用狀態(tài)。
5.如權(quán)利要求4所述的方法,其特征在于,所述方法還包括: 若所述子操作系統(tǒng)確認(rèn)當(dāng)前空閑頁面數(shù)大于所述子操作系統(tǒng)當(dāng)前工作集頁面,則向所述全局內(nèi)存管理服務(wù)發(fā)送可釋放內(nèi)存消息以申請釋放內(nèi)存。
6.如權(quán)利要求5所述的方法,其特征在于,所述向所述全局內(nèi)存管理服務(wù)發(fā)送可釋放內(nèi)存消息以申請釋放內(nèi)存包括: 所述子操作系統(tǒng)向所述全局內(nèi)存管理服務(wù)發(fā)送可釋放內(nèi)存消息; 所述子操作系統(tǒng)接收所述全局內(nèi)存管理服務(wù)返回的所述內(nèi)存釋放消息; 所述子操作系統(tǒng)從本地空閑內(nèi)存隊(duì)列中獲取空閑內(nèi)存區(qū)域并更新機(jī)器狀態(tài)后向所述全局內(nèi)存管理服務(wù)返回釋放內(nèi)存區(qū)域信息,以使所述全局內(nèi)存管理服務(wù)更新全局空閑內(nèi)存隊(duì)列。
7.一種全局內(nèi)存共享方法,其特征在于,所述方法包括:全局內(nèi)存管理服務(wù)接收子操作系統(tǒng)發(fā)出的用于從全局共享內(nèi)存分配當(dāng)前可獲取內(nèi)存的申請; 所述全局內(nèi)存管理服務(wù)將全局空閑內(nèi)存隊(duì)列中可分配的內(nèi)存塊標(biāo)記為不可用狀態(tài)并向所述子操作系統(tǒng)發(fā)送內(nèi)存分配消息,所述內(nèi)存分配消息攜帶可分配內(nèi)存塊的描述消息;所述全局內(nèi)存管理服務(wù)接收所述子操作系統(tǒng)返回的更新確認(rèn)消息; 所述全局內(nèi)存管理服務(wù)根據(jù)所述更新確認(rèn)消息將所述標(biāo)記為不可用狀態(tài)的內(nèi)存塊從所述全局空閑內(nèi)存隊(duì)列中刪除; 所述全局內(nèi)存管理服務(wù)向所述子操作系統(tǒng)發(fā)送所述更新確認(rèn)消息的響應(yīng)消息。
8.如權(quán)利要求7所述的方法,其特征在于,所述方法還包括: 所述全局內(nèi)存管理服務(wù)接收所述子操作系統(tǒng)在確認(rèn)所述子操作系統(tǒng)當(dāng)前空閑頁面數(shù)大于所述子操作系統(tǒng)當(dāng)前工作集頁面時(shí)發(fā)送的可釋放內(nèi)存消息以釋放內(nèi)存。
9.如權(quán)利要求8所述的方法,其特征在于,所述全局內(nèi)存管理服務(wù)接收所述子操作系統(tǒng)在確認(rèn)所述子操作系統(tǒng)當(dāng)前空閑頁面數(shù)大于所述子操作系統(tǒng)當(dāng)前工作集頁面時(shí)發(fā)送的可釋放內(nèi)存消息以釋放內(nèi)存包括: 所述全局內(nèi)存管理服務(wù)接收所述子操作系統(tǒng)發(fā)送的可釋放內(nèi)存消息; 所述全局內(nèi)存管理服務(wù)根據(jù)所述可釋放內(nèi)存消息向所述子操作系統(tǒng)返回內(nèi)存釋放消息; 所述全局內(nèi)存管理服務(wù)接收所述子操作系統(tǒng)返回的釋放內(nèi)存區(qū)域信息; 所述全局內(nèi)存管理服務(wù)更新全局空閑內(nèi)存隊(duì)列。`
10.一種全局內(nèi)存共享裝置,其特征在于,所述裝置包括: 統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率和換頁期間的內(nèi)存駐留時(shí)間比值; 計(jì)算模塊,用于根據(jù)所述頁面換出率和內(nèi)存駐留時(shí)間比值計(jì)算內(nèi)存壓力指標(biāo); 內(nèi)存申請模塊,用于所述內(nèi)存壓力指標(biāo)大于內(nèi)存壓力閾值時(shí)向全局內(nèi)存管理服務(wù)發(fā)出申請,所述申請用于從全局共享內(nèi)存分配當(dāng)前可獲取的內(nèi)存。
11.如權(quán)利要求10所述的裝置,其特征在于,所述統(tǒng)計(jì)模塊包括: 第一統(tǒng)計(jì)單元,用于統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出次數(shù),以所述任務(wù)輪轉(zhuǎn)期間總的頁面替換數(shù)與物理頁面數(shù)的比值作為所述頁面換出率PRR;以及 第二統(tǒng)計(jì)單元,用于統(tǒng)計(jì)最小內(nèi)存駐留時(shí)間,以所述最小內(nèi)存駐留時(shí)間與內(nèi)存駐留時(shí)間閾值的比值作為所述內(nèi)存駐留時(shí)間比值。
12.如權(quán)利要求10或11所述的裝置,其特征在于,所述計(jì)算模塊包括: 線性組合單元,用于計(jì)算所述頁面換出率PRR和內(nèi)存駐留時(shí)間比值TP的線性組合aXPRR+bXTP,以所述aXPRR+bXTP作為所述內(nèi)存壓力指標(biāo),所述a和所述b為所述頁面換出率和內(nèi)存駐留時(shí)間比值在所述線性組合中的比例調(diào)節(jié)參數(shù),所述PRR為所述頁面換出率,所述TP為所述內(nèi)存駐留時(shí)間比值。
13.如權(quán)利要求12所述的裝置,其特征在于,所述內(nèi)存申請模塊包括: 第一發(fā)送單元,用于向所述全局內(nèi)存管理服務(wù)發(fā)送內(nèi)存申請消息; 接收單元,用于接收所述全局內(nèi)存管理服務(wù)發(fā)送的內(nèi)存分配消息,所述內(nèi)存分配消息攜帶可分配內(nèi)存的描述消息;內(nèi)存添加單元,用于根據(jù)所述可分配內(nèi)存的描述消息將可分配內(nèi)存塊加入到自身的物理內(nèi)存隊(duì)列并將所述可分配內(nèi)存塊標(biāo)記為不可用狀態(tài); 第二發(fā)送單元,用于向所述全局內(nèi)存管理服務(wù)發(fā)送更新確認(rèn)消息; 標(biāo)記單元,用于收到所述全局內(nèi)存管理服務(wù)返回的更新確認(rèn)消息的響應(yīng)消息后,將所述標(biāo)記為不可用狀態(tài)的可分配內(nèi)存塊標(biāo)記為可用狀態(tài)。
14.如權(quán)利要求13所述的裝置,其特征在于,所述裝置還包括: 申請釋放內(nèi)存模塊,用于確認(rèn)當(dāng)前空閑頁面數(shù)大于所述子操作系統(tǒng)當(dāng)前工作集頁面時(shí)向所述全局內(nèi)存管理服務(wù)發(fā)送可釋放內(nèi)存消息以申請釋放內(nèi)存。
15.如權(quán)利要求14所述的裝置,其特征在于,所述申請釋放內(nèi)存模塊包括: 消息發(fā)送單元,用于向所述全局內(nèi)存管理服務(wù)發(fā)送可釋放內(nèi)存消息; 消息接收單元,用于接收所述全局內(nèi)存管理服務(wù)返回的所述內(nèi)存釋放消息; 狀態(tài)更新單元,用于所述子操作系統(tǒng)從本地空閑內(nèi)存隊(duì)列中獲取空閑內(nèi)存區(qū)域并更新機(jī)器狀態(tài)后向所述全局內(nèi)存管理服務(wù)返回釋放內(nèi)存區(qū)域信息,以使所述全局內(nèi)存管理服務(wù)更新全局空閑內(nèi)存隊(duì)列。
16.一種全局內(nèi)存共享裝置,其特征在于,所述裝置包括: 申請接收模塊,用于接收子操作系統(tǒng)發(fā)出的用于從全局共享內(nèi)存分配當(dāng)前可獲取內(nèi)存的申請; 空閑內(nèi)存處理模塊,用于將全局空閑內(nèi)存隊(duì)列中可分配的內(nèi)存塊標(biāo)記為不可用狀態(tài)并向所述子操作系統(tǒng)發(fā)送 內(nèi)存分配消息,所述內(nèi)存分配消息攜帶可分配內(nèi)存的描述消息;第一消息接收模塊,用于接收所述子操作系統(tǒng)返回的更新確認(rèn)消息; 內(nèi)存刪除模塊,用于根據(jù)所述更新確認(rèn)消息將所述標(biāo)記為不可用狀態(tài)的內(nèi)存塊從所述全局空閑內(nèi)存隊(duì)列中刪除; 響應(yīng)消息發(fā)送模塊,用于向所述子操作系統(tǒng)發(fā)送所述更新確認(rèn)消息的響應(yīng)消息。
17.如權(quán)利要求16所述的裝置,其特征在于,所述裝置還包括: 第二消息接收模塊,用于接收所述子操作系統(tǒng)在確認(rèn)所述子操作系統(tǒng)當(dāng)前空閑頁面數(shù)大于所述子操作系統(tǒng)當(dāng)前工作集頁面時(shí)發(fā)送的可釋放內(nèi)存消息以釋放內(nèi)存。
18.如權(quán)利要求17所述的裝置,其特征在于,所述第二消息接收模塊包括: 第一接收單元,用于接收所述子操作系統(tǒng)發(fā)送的可釋放內(nèi)存消息; 發(fā)送單元,用于根據(jù)所述可釋放內(nèi)存消息向所述子操作系統(tǒng)返回內(nèi)存釋放消息; 第二接收單元,用于接收所述子操作系統(tǒng)返回的釋放內(nèi)存區(qū)域信息; 內(nèi)存更新單元,用于更新全局空閑內(nèi)存隊(duì)列。
19.一種通信系統(tǒng),其特征在于,所述通信系統(tǒng)包括全局內(nèi)存管理服務(wù)子系統(tǒng)和至少一個(gè)子操作系統(tǒng),所述全局內(nèi)存管理服務(wù)子系統(tǒng)包括申請接收模塊、空閑內(nèi)存處理模塊、第一消息接收模塊、內(nèi)存刪除模塊和響應(yīng)消息發(fā)送模塊,所述子操作系統(tǒng)包括統(tǒng)計(jì)模塊、計(jì)算模塊和內(nèi)存申請模塊; 所述統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)預(yù)定次數(shù)的任務(wù)輪轉(zhuǎn)期間頁面換出率和換頁期間的內(nèi)存駐留時(shí)間比值; 所述計(jì)算模塊,用于根據(jù)所述頁面換出率和內(nèi)存駐留時(shí)間比值計(jì)算內(nèi)存壓力指標(biāo); 所述內(nèi)存申請模塊,用于所述內(nèi)存壓力指標(biāo)大于內(nèi)存壓力閾值時(shí)向全局內(nèi)存管理服務(wù)發(fā)出申請,以從全局共享內(nèi)存分配當(dāng)前可獲取的內(nèi)存; 所述申請接收模塊,用于接收子操作系統(tǒng)發(fā)出的用于從全局共享內(nèi)存分配當(dāng)前可獲取內(nèi)存的申請; 所述空閑內(nèi)存處理模塊,用于將全局空閑內(nèi)存隊(duì)列中可分配的內(nèi)存塊標(biāo)記為不可用狀態(tài)并向所述子操作系統(tǒng)發(fā)送內(nèi)存分配消息,所述內(nèi)存分配消息攜帶可分配內(nèi)存的描述消息; 所述第一消息接收模塊,用于接收所述子操作系統(tǒng)返回的更新確認(rèn)消息; 內(nèi)存刪除模塊,用于根據(jù)所述更新確認(rèn)消息將所述標(biāo)記為不可用狀態(tài)的內(nèi)存塊從所述全局空閑內(nèi)存隊(duì)列中刪除; 所述響應(yīng)消息發(fā) 送模塊,用于向所述子操作系統(tǒng)發(fā)送所述更新確認(rèn)消息的響應(yīng)消息。
【文檔編號】G06F9/50GK103870333SQ201210548012
【公開日】2014年6月18日 申請日期:2012年12月17日 優(yōu)先權(quán)日:2012年12月17日
【發(fā)明者】譚崇康, 陸鋼, 詹劍鋒, 張立新 申請人:華為技術(shù)有限公司, 中國科學(xué)院計(jì)算技術(shù)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1