国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種用于管理存儲器的方法和裝置制造方法

      文檔序號:6545174閱讀:248來源:國知局
      一種用于管理存儲器的方法和裝置制造方法
      【專利摘要】本發(fā)明涉及一種用于管理存儲器的方法和裝置。提供一種用于在計(jì)算系統(tǒng)中管理存儲器的方法,所述計(jì)算系統(tǒng)包括在虛擬化控制層之上執(zhí)行的應(yīng)用,其中所述虛擬化控制層將虛擬存儲器的各部分映射到物理存儲器的各部分,所述方法包括以下步驟:由所述應(yīng)用標(biāo)識虛擬存儲器范圍,所述虛擬存儲器范圍在所述虛擬存儲器中重復(fù)的概率超過給定閾值;由所述應(yīng)用獲得與所述虛擬存儲器范圍對應(yīng)的至少一個(gè)存儲器地址;以及將所述虛擬存儲器范圍的標(biāo)識符和與所述虛擬存儲器范圍對應(yīng)的所述存儲器地址從所述應(yīng)用傳遞到所述虛擬化控制層,其中所述虛擬化控制層可使用所述標(biāo)識符來標(biāo)識所述虛擬存儲器中的類似范圍。
      【專利說明】—種用于管理存儲器的方法和裝置

      【技術(shù)領(lǐng)域】
      [0001]本申請涉及計(jì)算系統(tǒng)中的數(shù)據(jù)管理,更具體地說,涉及存儲器去重。

      【背景技術(shù)】
      [0002]存儲器去重允許多個(gè)虛擬存儲器頁(這些虛擬存儲器頁跨在同一系統(tǒng)管理程序下運(yùn)行的不同虛擬機(jī)(VM)具有相同的內(nèi)容)共享單個(gè)物理存儲器頁。由于備援相同數(shù)量的虛擬頁所需的物理頁更少,因此支持相同應(yīng)用負(fù)載所需的實(shí)際存儲器也變少。相關(guān)技術(shù)經(jīng)常在單個(gè)操作系統(tǒng)實(shí)例內(nèi)使用,以便共享備援各個(gè)進(jìn)程的虛擬頁的物理頁。
      [0003]所需總存儲器的潛在節(jié)省刺激某些操作系統(tǒng)設(shè)計(jì)實(shí)施去重?,F(xiàn)有的實(shí)現(xiàn)依賴于在后臺掃描頁,或者在引導(dǎo)下掃描系統(tǒng)中的剩余頁以查找相同頁。這些操作系統(tǒng)設(shè)計(jì)支持有關(guān)哪些頁可能是去重的良好候選的暗示,以便立即對照系統(tǒng)中的剩余頁比較這些頁,或者基于優(yōu)先級來比較這些頁。無論有無此提示,均對照被考慮進(jìn)行去重的集合中的所有其它頁,通過搜索找到匹配。即使在不支持去重的操作系統(tǒng)中,通常也會設(shè)置此機(jī)制以便嘗試跨多個(gè)VM共享頁。
      [0004]掃描所有頁的成本不可謂不大,現(xiàn)有的實(shí)現(xiàn)反映出此成本。例如,某些操作系統(tǒng)延遲掃描頁,直到這些頁在一段時(shí)間(例如,數(shù)分鐘)內(nèi)“穩(wěn)定下來”(即,達(dá)到穩(wěn)態(tài)),而另一些操作系統(tǒng)選擇根本不實(shí)現(xiàn)去重。對于某些計(jì)算平臺而言,特別是對于其中基于CPU周期對客戶收費(fèi)的平臺而言,成本也可以是一個(gè)重要的問題。
      [0005]盡管現(xiàn)有實(shí)現(xiàn)中的提示可在掃描方面給與某些頁優(yōu)先級,但是它們不會降低整體成本,因?yàn)槿詫φ毡豢紤]進(jìn)行去重的集合中的剩余頁掃描這些頁。現(xiàn)有掃描全部頁以查找重復(fù)的方法隨著頁大小的增加也變得缺乏效率,因?yàn)樵诿宽撋险业狡ヅ涞膸茁首兊汀4藛栴}的后果是:一些支持去重的系統(tǒng)管理程序延遲大量頁的處理,直到系統(tǒng)已在存儲器壓力下為止。在這些情況下,無法評估對頁執(zhí)行去重時(shí)獲得的益處,從而更難計(jì)算和供應(yīng)所需的存儲器量。
      [0006]這樣,現(xiàn)有的去重實(shí)現(xiàn)包括一但不限于一以下一個(gè)或多個(gè)缺點(diǎn):(i)沒有提示,無法立即找到重復(fù),因?yàn)樵试S頁先趨于穩(wěn)定,然后再考慮執(zhí)行去重;(ii)在找到重復(fù)之前,需要有段延遲才能開始掃描,因?yàn)楸仨毐容^許多頁才能找到匹配頁;(iii)比較不匹配的頁會消耗CPU周期;(iv)去重可被延遲,直到系統(tǒng)受到存儲器壓力,從而更難及時(shí)恢復(fù)以避免性能降級;以及(V)如果沒有存儲器壓力,頁可能不會被去重,從而更難計(jì)算和供應(yīng)所需的存儲器量。


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

      [0007]本發(fā)明的各實(shí)施例提供用于存儲器去重的技術(shù)。
      [0008]例如,在一個(gè)實(shí)施例中,一種方法包括以下步驟。一種用于在計(jì)算系統(tǒng)中管理存儲器的方法,所述計(jì)算系統(tǒng)包括在虛擬化控制層之上執(zhí)行的應(yīng)用,其中所述虛擬化控制層將虛擬存儲器的各部分映射到物理存儲器的各部分,所述方法包括以下步驟:由所述應(yīng)用標(biāo)識虛擬存儲器范圍,所述虛擬存儲器范圍在所述虛擬存儲器中重復(fù)的概率超過給定閾值;由所述應(yīng)用獲得與所述虛擬存儲器范圍對應(yīng)的至少一個(gè)存儲器地址;以及將所述虛擬存儲器范圍的標(biāo)識符和與所述虛擬存儲器范圍對應(yīng)的所述存儲器地址從所述應(yīng)用傳遞到所述虛擬化控制層,其中所述虛擬化控制層可使用所述標(biāo)識符來標(biāo)識所述虛擬存儲器中的類似范圍。
      [0009]在另一實(shí)施例中,一種方法包括以下步驟。一種用于在計(jì)算系統(tǒng)中管理存儲器的方法,所述計(jì)算系統(tǒng)包括在虛擬化控制層之上執(zhí)行的應(yīng)用,其中所述虛擬化控制層將虛擬存儲器的各部分映射到物理存儲器的各部分,所述方法包括以下步驟:在所述虛擬化控制層處從所述應(yīng)用接收虛擬存儲器范圍的標(biāo)識符以及與所述虛擬存儲器范圍對應(yīng)的至少一個(gè)存儲器地址,所述虛擬存儲器范圍在所述虛擬存儲器中重復(fù)的概率超過給定閾值;以及由所述虛擬化控制層使用所述標(biāo)識符來標(biāo)識所述虛擬存儲器內(nèi)的類似范圍。
      [0010]在又一實(shí)施例中,一種用于在計(jì)算系統(tǒng)中管理存儲器的裝置,所述計(jì)算系統(tǒng)包括在虛擬化控制層之上執(zhí)行的應(yīng)用,其中所述虛擬化控制層將虛擬存儲器的各部分映射到物理存儲器的各部分,所述裝置包括:被配置為由所述應(yīng)用標(biāo)識虛擬存儲器范圍的模塊,所述虛擬存儲器范圍在所述虛擬存儲器中重復(fù)的概率超過給定閾值;被配置為由所述應(yīng)用獲得與所述虛擬存儲器范圍對應(yīng)的至少一個(gè)存儲器地址的模塊;以及被配置為將所述虛擬存儲器范圍的標(biāo)識符和與所述虛擬存儲器范圍對應(yīng)的所述存儲器地址從所述應(yīng)用傳遞到所述虛擬化控制層的模塊,其中所述虛擬化控制層可使用所述標(biāo)識符來標(biāo)識所述虛擬存儲器中的類似范圍。
      [0011]在又一實(shí)施例中,一種用于在計(jì)算系統(tǒng)中管理存儲器的裝置,所述計(jì)算系統(tǒng)包括在虛擬化控制層之上執(zhí)行的應(yīng)用,其中所述虛擬化控制層將虛擬存儲器的各部分映射到物理存儲器的各部分,所述裝置包括:被配置為在所述虛擬化控制層處從所述應(yīng)用接收虛擬存儲器范圍的標(biāo)識符以及與所述虛擬存儲器范圍對應(yīng)的至少一個(gè)存儲器地址的模塊,所述虛擬存儲器范圍在所述虛擬存儲器中重復(fù)的概率超過給定閾值;以及被配置為由所述虛擬化控制層使用所述標(biāo)識符來標(biāo)識所述虛擬存儲器內(nèi)的類似范圍的模塊。
      [0012]當(dāng)結(jié)合附圖閱讀下面對示例性實(shí)施例的詳細(xì)描述時(shí),本發(fā)明的這些及其它目標(biāo)、特征和優(yōu)點(diǎn)將變得顯而易見。

      【專利附圖】

      【附圖說明】
      [0013]圖1示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的具有存儲器去重的虛擬化主機(jī)計(jì)算系統(tǒng)的框圖;
      [0014]圖2示出根據(jù)本發(fā)明一個(gè)實(shí)施例的存儲器去重模塊的框圖;
      [0015]圖3A示出根據(jù)本發(fā)明一個(gè)實(shí)施例的存儲器去重方法的流程圖;
      [0016]圖3B示出根據(jù)本發(fā)明的另一實(shí)施例的存儲器去重方法的流程圖;
      [0017]圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的計(jì)算系統(tǒng)的框圖,根據(jù)該計(jì)算系統(tǒng),實(shí)現(xiàn)存儲器去重模塊/方法的一個(gè)或多個(gè)組件/步驟。

      【具體實(shí)施方式】
      [0018]下面將在示例性虛擬化主機(jī)計(jì)算系統(tǒng)環(huán)境的上下文中描述涉及存儲器去重的本發(fā)明的各實(shí)施例。但是應(yīng)該理解,此處描述的存儲器去重技術(shù)不限于此特定類型的示例性虛擬化主機(jī)計(jì)算系統(tǒng)環(huán)境,而且更一般地可應(yīng)用于任何從這種改進(jìn)的存儲器去重技術(shù)中受益的虛擬化計(jì)算系統(tǒng)。例如,盡管某些實(shí)施例在此通過直接在主機(jī)計(jì)算系統(tǒng)的硬件上執(zhí)行的系統(tǒng)管理程序(被稱為“類型I”系統(tǒng)管理程序)進(jìn)行描述,但是本發(fā)明的某些實(shí)施例也包括其中系統(tǒng)管理程序(被稱為“類型2”系統(tǒng)管理程序)在主機(jī)計(jì)算系統(tǒng)的操作系統(tǒng)(在主機(jī)硬件上執(zhí)行)上執(zhí)行的配置。進(jìn)一步地,本發(fā)明的某些實(shí)施例包括類型I和類型2系統(tǒng)管理程序配置的混合。更進(jìn)一步地,本發(fā)明的某些實(shí)施例向沒有系統(tǒng)管理程序的計(jì)算系統(tǒng)中的操作系統(tǒng)提供改進(jìn)的存儲器去重。
      [0019]因此,如此處所用,系統(tǒng)管理程序、操作系統(tǒng)或它們的某一組合可更一般地被稱為“虛擬化控制層”。
      [0020]如此處所用,短語“虛擬化主機(jī)計(jì)算系統(tǒng)”指托管諸如一個(gè)或多個(gè)虛擬機(jī)(VM)之類的一個(gè)或多個(gè)邏輯處理組件的物理計(jì)算系統(tǒng)。
      [0021]如此處所用,術(shù)語“存儲器去重”指避免和/或撤銷存儲器部分重復(fù)的過程,即,避免或撤銷兩個(gè)或更多存儲相同數(shù)據(jù)的存儲器部分。例如,在包括虛擬存儲器和物理存儲器的虛擬化主機(jī)計(jì)算系統(tǒng)的情況下,存儲器去重旨在避免或撤銷針對相同的虛擬存儲器部分分配的兩個(gè)或更多物理存儲器部分,下面將對此進(jìn)行描述。
      [0022]圖1示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的具有存儲器去重功能的虛擬化主機(jī)計(jì)算系統(tǒng)。虛擬化主機(jī)計(jì)算系統(tǒng)100在圖1中按照功能層示出,在所述功能層中,直接位于另一層之上的層被視為在該另一層上執(zhí)行(運(yùn)行)(它們直接交互)。這樣,如圖所示,系統(tǒng)100包括主機(jī)硬件102、在主機(jī)硬件102上執(zhí)行的系統(tǒng)管理程序104,以及在系統(tǒng)管理程序104上執(zhí)行的多個(gè)VM106-1至106-M。如上所述,在備選配置中,主機(jī)操作系統(tǒng)可在功能上駐留于主機(jī)硬件102與系統(tǒng)管理程序104之間。另外,系統(tǒng)管理程序104和主機(jī)操作系統(tǒng)可以在其它備選實(shí)施例中形成混合層。進(jìn)一步地,在備選實(shí)施例中,計(jì)算系統(tǒng)可以根本不包括系統(tǒng)管理程序?qū)樱瑥亩芍鳈C(jī)操作系統(tǒng)處理存儲器去重功能。
      [0023]如圖所示,VM106-1至106-M均包括來賓操作系統(tǒng)(即,來賓操作系統(tǒng)108_1至108-M)。如圖所示,系統(tǒng)管理程序104提供多個(gè)來賓操作系統(tǒng)同時(shí)在單個(gè)主機(jī)計(jì)算系統(tǒng)上執(zhí)行并彼此共享硬件資源(主機(jī)硬件102)的能力。在每個(gè)來賓操作系統(tǒng)中執(zhí)行的有應(yīng)用(即,分別為應(yīng)用110-1至110-M)、一個(gè)或多個(gè)應(yīng)用編程接口(即,分別為API112-1至112-M),以及虛擬存儲器(S卩,分別為虛擬存儲器114-1至114-M)。應(yīng)用可以包括一個(gè)或多個(gè)被設(shè)計(jì)為執(zhí)行一項(xiàng)或多項(xiàng)功能(具體取決于該應(yīng)用在設(shè)計(jì)上指定的特殊目的)的軟件程序。虛擬存儲器通常被分為多個(gè)虛擬存儲器頁。虛擬存儲器頁是虛擬存儲器的由一組(或一系列)虛擬存儲器地址所標(biāo)識的一部分。在一個(gè)實(shí)施例中,由起始地址和虛擬頁大小定義虛擬頁。
      [0024]主機(jī)硬件102包括物理處理組件,例如一個(gè)或多個(gè)CPU (中央處理單元)116和物理存儲器118。物理存儲器118指主機(jī)計(jì)算系統(tǒng)100的一個(gè)或多個(gè)物理存儲設(shè)備的存儲器。與虛擬存儲器相同,物理存儲器一般也分為多個(gè)存儲器頁,但是在此情況下指多個(gè)物理存儲器頁。在此,物理存儲器頁是物理存儲器的由一組(或一系列)物理存儲器地址所標(biāo)識的一部分。在一個(gè)實(shí)施例中,由起始地址和物理頁大小定義物理頁。眾所周知,物理存儲器頁用于“備援”虛擬存儲器頁,即,數(shù)據(jù)并非實(shí)際存儲在虛擬存儲器中,而是虛擬存儲器位置指向?qū)嶋H存儲數(shù)據(jù)的物理存儲器位置。
      [0025]例如,存儲器去重的主要目的是分配將被多個(gè)虛擬存儲器頁共享的單個(gè)物理存儲器頁,這些虛擬存儲器頁跨在同一系統(tǒng)管理程序下運(yùn)行的不同虛擬機(jī)(VM)具有相同的內(nèi)容。如下面將進(jìn)一步詳細(xì)描述的,在圖1的系統(tǒng)管理程序104中,使用頁表(多個(gè))122的去重處理機(jī)120管理虛擬存儲器頁與物理存儲器頁之間的對應(yīng)并提供存儲器去重功能。此外將理解,本發(fā)明的存儲器去重實(shí)施例擴(kuò)展到“增量編碼”概念,在此概念中,存儲器中的頁稍有不同,因此,每個(gè)存儲器頁可被存儲為基頁和偏移,其中偏移表示兩個(gè)存儲器頁之間的差異。這樣,通過對基頁執(zhí)行去重而實(shí)現(xiàn)存儲器節(jié)省。
      [0026]將理解,盡管圖1的實(shí)例中僅示出單個(gè)系統(tǒng)管理程序104,但是本發(fā)明的一個(gè)給定實(shí)施例可以包括多個(gè)系統(tǒng)管理程序,每個(gè)系統(tǒng)管理程序在其自己的主機(jī)硬件102部分上運(yùn)行。而且,在備選實(shí)施例中,虛擬化主機(jī)計(jì)算系統(tǒng)100可實(shí)現(xiàn)為一個(gè)以上的計(jì)算系統(tǒng),其中包括主機(jī)計(jì)算系統(tǒng)100的多個(gè)計(jì)算系統(tǒng)彼此相對地進(jìn)行分布。
      [0027]相應(yīng)地,如下面更詳細(xì)描述的,本發(fā)明的各實(shí)施例提供改進(jìn)的存儲器去重。僅作為實(shí)例,各存儲器去重實(shí)施例:通過僅比較具有極高匹配可能性(優(yōu)選地為100%的可能性)的存儲器頁來減少對存儲器執(zhí)行去重的成本;在創(chuàng)建重復(fù)的存儲器頁之后立即執(zhí)行掃描;以及無需有關(guān)可能被共享的工件(例如Java?工件(Oracle Corporat1n,雷德伍德城,力口州))的先驗(yàn)知識。
      [0028]現(xiàn)有的存儲器去重方法不能實(shí)現(xiàn)這些優(yōu)點(diǎn),因?yàn)槌似渌蛩刂?,它們不具備?zhí)行此操作的信息。本發(fā)明的各實(shí)施例認(rèn)識到所需的信息僅對系統(tǒng)管理程序104之上的層已知(即,為來賓操作系統(tǒng)108和/或應(yīng)用110所知),并且所需的信息多于現(xiàn)有方法中支持的提示所傳遞的信息。
      [0029]本發(fā)明的各實(shí)施例允許系統(tǒng)管理程序之上的一個(gè)或多個(gè)層提供有關(guān)哪些虛擬頁與其它頁重復(fù)的具體信息。在一個(gè)實(shí)施例中,至少一個(gè)此類更高的層被配置為向系統(tǒng)管理程序提供包括一個(gè)或多個(gè)頁的范圍以及標(biāo)識該范圍的標(biāo)識符(例如,稱為match_token)。系統(tǒng)管理程序僅將所提供的頁范圍與其它具備相同matchjoken的范圍進(jìn)行比較。較高層(多個(gè))選擇其標(biāo)志(token),以便相同和/或不同來賓操作系統(tǒng)中的多個(gè)進(jìn)程可針對將重復(fù)的頁提供同一match_t0ken。這允許系統(tǒng)管理程序(或諸如主機(jī)操作系統(tǒng)之類的其它層)中的有效去重成為可共享的一組存儲頁。
      [0030]相應(yīng)地,如此處進(jìn)一步描述的,示例性存儲器去重實(shí)施例除了其它項(xiàng)之外,還包括:(i)將match_t0ken和頁范圍傳遞到系統(tǒng)管理程序以引導(dǎo)去重,以使系統(tǒng)僅比較彼此重復(fù)的頁(系統(tǒng)仍執(zhí)行比較以驗(yàn)證頁相同);(ii) 一個(gè)或多個(gè)API,其允許將match_token和頁范圍從應(yīng)用向下傳遞到來賓操作系統(tǒng),然后在運(yùn)行時(shí)從來賓操作系統(tǒng)傳遞到系統(tǒng)管理程序;(iii) 一個(gè)或多個(gè)API,其允許在Java?環(huán)境中運(yùn)行的應(yīng)用輕松引導(dǎo)Java?工件的去重;以及Qv)用于選擇可跨來賓操作系統(tǒng)使用的match_token的技術(shù)。
      [0031]圖2示出根據(jù)本發(fā)明一個(gè)實(shí)施例的存儲器去重模塊。將理解,去重處理機(jī)(模塊)200對應(yīng)于圖1中的去重處理機(jī)120。雖然上面已提到,在各示例性實(shí)施例中,去重處理機(jī)由系統(tǒng)管理程序?qū)崿F(xiàn),但是該模塊也可以備選地在虛擬化主機(jī)計(jì)算系統(tǒng)的其它層中實(shí)現(xiàn)。
      [0032]下面的示例性描述假設(shè)去重處理機(jī)200在系統(tǒng)管理程序中實(shí)現(xiàn)。圖3A示出根據(jù)本發(fā)明一個(gè)實(shí)施例的與圖2的去重處理機(jī)200相結(jié)合的存儲器去重方法300。方法300被稱為“應(yīng)用引導(dǎo)的”存儲器去重,因?yàn)樵谠搶?shí)施例中,應(yīng)用為系統(tǒng)管理程序(即,去重處理機(jī)200)提供用于實(shí)現(xiàn)此處描述的改進(jìn)型存儲器去重的信息。
      [0033]在該實(shí)施例中,系統(tǒng)管理程序(圖1中的104)為每個(gè)來賓操作系統(tǒng)(圖1中的108-1至108-M)提供API (圖1中的112-1至112-M),此API用于針對虛擬存儲器202 (來自圖1中的虛擬存儲器114-1至114-M之一)的至少一個(gè)頁傳遞該虛擬頁的起始地址208、該虛擬頁的大小210,以及標(biāo)識該虛擬頁的match_token212。在圖3的步驟302,針對由給定來賓操作系統(tǒng)中運(yùn)行的給定應(yīng)用所標(biāo)識的每個(gè)虛擬頁,將此信息傳遞到去重處理機(jī)。一個(gè)或多個(gè)虛擬存儲器頁表示給定虛擬存儲器的一個(gè)區(qū)域或范圍。
      [0034]例如,假設(shè)Java?環(huán)境一 Java?虛擬機(jī)(JVM)—將只讀工件置于共享存儲器區(qū)域中以便跨進(jìn)程分?jǐn)侸VM占用。也可跨虛擬來賓操作系統(tǒng)共享該存儲器區(qū)域。因此,根據(jù)此處描述的存儲器去重方法,JVM被配置為提供match_token (例如,JVM_shared_data_〈jvm_vers1n?以加速頁去重。
      [0035]在一個(gè)備選實(shí)施例中,起始地址208、大小201和match_token212可從來賓操作系統(tǒng)被傳遞到去重處理機(jī)200 (而非直接從應(yīng)用傳遞),盡管由應(yīng)用確定要傳遞的信息仍然是優(yōu)選的。
      [0036]在步驟304,系統(tǒng)管理程序104 (或操作系統(tǒng))經(jīng)由映射結(jié)構(gòu)將虛擬地址和范圍映射成備援該虛擬存儲器范圍的一組物理存儲器頁。
      [0037]在步驟306,去重處理機(jī)200針對在步驟302傳遞到該處的match_token,在頁表(多個(gè))214中搜索匹配。頁表(多個(gè))214也可被視為映射結(jié)構(gòu)。如果未找到匹配的match_token,則在步驟308,去重處理機(jī)200在頁表(多個(gè))214中創(chuàng)建新記錄,并使用在步驟302傳遞的標(biāo)識物理頁204-1至204-N(它們備援指定范圍中的虛擬頁)的match_token以及頁總數(shù)標(biāo)記該記錄。備選地,系統(tǒng)管理程序可存儲其以后查找指定范圍的物理頁所需的信息(例如,起始地址和總長度)。
      [0038]如果針對被傳遞到去重處理機(jī)的match_token找到匹配,則去重處理機(jī)200在步驟310驗(yàn)證指定范圍中的存儲器的內(nèi)容與現(xiàn)有已找到的記錄的內(nèi)容相同。如果存儲器內(nèi)容匹配,則方法300繼續(xù),否則返回錯(cuò)誤消息。
      [0039]在步驟312,配置系統(tǒng)管理程序存儲器映射(映射結(jié)構(gòu)),使得用于備援現(xiàn)有記錄的虛擬存儲器的物理頁被用于備援新的虛擬存儲器范圍。在一個(gè)實(shí)施例中,可使用存儲器管理單元(MMU)頁保護(hù)和寫時(shí)復(fù)制處理分頁來實(shí)現(xiàn)此目的。
      [0040]在步驟314,針對在步驟302被傳遞到去重處理機(jī)200的給定虛擬存儲器范圍釋放物理頁(204-1 至 204-N)。
      [0041]需要注意,在一個(gè)備選實(shí)施例中,步驟312可進(jìn)一步被增強(qiáng)為擴(kuò)展現(xiàn)有重新映射,以修改用于備援虛擬存儲器的頁大小以便更好地實(shí)現(xiàn)共享。此重新映射可在系統(tǒng)管理程序或操作系統(tǒng)級別執(zhí)行,以便最終用戶應(yīng)用中無需更改。
      [0042]例如,如果頁表(多個(gè))214中的現(xiàn)有記錄涵蓋由大型2M(MB)頁備援的為512k(千)字節(jié)的范圍,則存儲器映射可被重新配置為更改用于2MB范圍的頁大小,以便實(shí)際使用64k頁,從而允許作為八個(gè)64k頁對512k字節(jié)記錄進(jìn)行去重。
      [0043]如上所述,在來賓操作系統(tǒng)中提供一個(gè)或多個(gè)API (圖1中的112-1至112-M)。此類API可用于將應(yīng)用(圖1中的110-1至110-M)看到的地址映射到系統(tǒng)管理程序(104)看到的地址。但是,如上所述,可以備選地在系統(tǒng)管理程序或主機(jī)操作系統(tǒng)中提供此類API。
      [0044]此類API允許應(yīng)用指定虛擬存儲器的給定部分的起始地址(208)、大小(210)和match_t0ken(212)。所指定的地址是應(yīng)用進(jìn)程所看到的地址。來賓操作系統(tǒng)(或在備選實(shí)施例中位于其它位置)中的API(112)以系統(tǒng)管理程序可識別的方式,將此地址映射到向系統(tǒng)管理程序標(biāo)識所述頁所需的信息。擴(kuò)展執(zhí)行轉(zhuǎn)換所需的功能以便能夠轉(zhuǎn)換大量頁,并且即使當(dāng)系統(tǒng)管理程序看到的頁信息不連續(xù)時(shí),也可傳遞此頁信息。也就是說,應(yīng)用提供虛擬頁的地址和長度,但是需要將其映射到物理頁地址(所述物理頁中的一個(gè)或多個(gè)物理頁可能不連續(xù),并且無法表示為起始地址和長度)。因此,API提供生成該映射的能力。
      [0045]本發(fā)明的各實(shí)施例還包括一個(gè)或多個(gè)可用于標(biāo)識可被去重的Java?工件(只讀程序件(program artifact)的一個(gè)實(shí)例)的API (112-1至112-M)。其實(shí)例包括一但不限于一⑴直接字節(jié)緩沖區(qū);(ii)存儲器映射文件;以及(iii)預(yù)編譯代碼。在這些API中,match_token可由應(yīng)用指定(如果希望指定唯一標(biāo)識符),也可使用下面進(jìn)一步描述的技術(shù)(例如,void com.1bm.jvm.Deduplicate.byteBuffer (DirectByffer b、String match_token))之一針對調(diào)用方自動生成match_token。
      [0046]應(yīng)該理解,應(yīng)用被配置為選擇match_token。例如,當(dāng)JVM發(fā)送預(yù)填充共享類高速緩存時(shí),可在該高速緩存每次被加載到存儲器時(shí),為該高速緩存分配唯一標(biāo)識符,該唯一標(biāo)識符可用作match_token。如果使用共享文件系統(tǒng)加載相同的文件,則文件名可被提供為match_token。
      [0047]利用應(yīng)用特定的域知識提供最低的開銷,因?yàn)闊o需運(yùn)行時(shí)成本來生成match_token ο在沒有明顯match_token的情況下,仍可獲知存儲器的內(nèi)容對于給定工件將是相同的。由于應(yīng)用參與引導(dǎo)去重,因此當(dāng)創(chuàng)建工件的主副本時(shí),應(yīng)用可從存儲器內(nèi)容生成match_token,并將該match_token連同工件本身一起存儲(例如,將match_token存儲為以后共享的文件中的標(biāo)頭)。每個(gè)來賓操作系統(tǒng)中應(yīng)用的實(shí)例然后可以讀取match_token連同工件的存儲器,并將其提供給系統(tǒng)管理程序。由于針對工件僅執(zhí)行一次生成,因此可使用強(qiáng)散列算法來從存儲器內(nèi)容生成match_token。在一個(gè)實(shí)施例中,可使用MD5散列算法,其中沖突的可能性接近于零。但是,也可采用其它散列算法。
      [0048]本發(fā)明的各實(shí)施例也可與增量編碼結(jié)合使用。在此情景下,match_token用于標(biāo)識類似但不一定相同的頁。增量編碼用于使用基頁和與基頁的偏差編碼具有相同match_token的類似但不一定相同的頁。對于類似的頁,這導(dǎo)致與存儲每個(gè)頁的單個(gè)完全副本相t匕,極大地減小了空間開銷。
      [0049]本發(fā)明的各實(shí)施例還可用于實(shí)現(xiàn)多個(gè)進(jìn)程或VM之間的共享。在此情景下,由希望共享同一對象副本的每個(gè)進(jìn)程或VM使用相同的match_token。在這種情況下,并非所有進(jìn)程或VM均需要實(shí)例化對象副本。只需實(shí)例化對應(yīng)于match_token的對象的一個(gè)副本。其它進(jìn)程和VM然后可共享該對象的副本。
      [0050]相應(yīng)地,本發(fā)明的各實(shí)施例提供至少兩種方法來處理對共享頁的更新。在一種方法中,針對正在執(zhí)行更新的進(jìn)程或VM,對共享頁的更新產(chǎn)生頁的單獨(dú)副本。在另一方法中,直接使更新在共享頁中就位。所有進(jìn)程或VM均看到頁的更新后的版本。這適合于跨多個(gè)進(jìn)程或VM共享數(shù)據(jù)對象的情況。
      [0051]現(xiàn)在參考圖3B,其中示出根據(jù)本發(fā)明另一實(shí)施例的存儲器去重方法。在方法320,假設(shè)計(jì)算機(jī)系統(tǒng)包括在操作系統(tǒng)或系統(tǒng)管理程序上運(yùn)行的應(yīng)用,其中操作系統(tǒng)或系統(tǒng)管理程序?qū)⑻摂M存儲器頁映射到物理存儲器頁。如上所述,為應(yīng)用提供API,該API將應(yīng)用級處的數(shù)據(jù)結(jié)構(gòu)映射到存儲該數(shù)據(jù)結(jié)構(gòu)的至少一個(gè)虛擬存儲器地址。在一個(gè)實(shí)施例中,所述數(shù)據(jù)結(jié)構(gòu)是虛擬存儲器中的虛擬存儲器頁或某一存儲器范圍。所述數(shù)據(jù)結(jié)構(gòu)可以備選地為對象(例如,讀入存儲器的文件)或Java?工件。
      [0052]在步驟322,應(yīng)用標(biāo)識這樣的數(shù)據(jù)結(jié)構(gòu):其在存儲器中重復(fù)的概率超過給定閾值。給定閾值的一個(gè)實(shí)例可以是約90%,但是本發(fā)明的各實(shí)施例并非旨在限于任何特定的閾值。應(yīng)用使用API獲得與所述數(shù)據(jù)結(jié)構(gòu)對應(yīng)的至少一個(gè)虛擬存儲器地址。
      [0053]在步驟324,應(yīng)用將所述數(shù)據(jù)結(jié)構(gòu)的標(biāo)識符(即,match_t0ken)和與所述數(shù)據(jù)結(jié)構(gòu)對應(yīng)的至少一個(gè)虛擬存儲器地址傳遞到系統(tǒng)管理程序(或主機(jī)操作系統(tǒng))。在步驟326,系統(tǒng)管理程序(或主機(jī)操作系統(tǒng))使用應(yīng)用提供的信息來標(biāo)識虛擬存儲器中的類似頁。在步驟328,基于所標(biāo)識的存儲器區(qū)域而減少系統(tǒng)物理存儲器中存儲的數(shù)據(jù)。步驟328包括使用去重或增量編碼來減少物理存儲器頁中的冗余信息。
      [0054]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各實(shí)施例可以實(shí)現(xiàn)為系統(tǒng)、裝置、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明各實(shí)施例可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明的各實(shí)施例還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
      [0055]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號介質(zhì)或者計(jì)算機(jī)可讀存儲介質(zhì)。計(jì)算機(jī)可讀存儲介質(zhì)例如可以是一但不限于一電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
      [0056]計(jì)算機(jī)可讀的信號介質(zhì)可以包括例如在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括一但不限于一電磁信號、光信號或上述的任意合適的組合。計(jì)算機(jī)可讀的信號介質(zhì)還可以是計(jì)算機(jī)可讀存儲介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
      [0057]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
      [0058]可以以一種或多種程序設(shè)計(jì)語言的任意組合來編寫用于執(zhí)行本發(fā)明實(shí)施例的操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計(jì)語言一諸如“C”語言或類似的程序設(shè)計(jì)語言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
      [0059]在此將參照方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明的各實(shí)施例。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些指令在通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動作的裝置。
      [0060]也可以把這些計(jì)算機(jī)程序指令存儲在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備以特定方式工作,從而,存儲在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動作的指令的制造品(article of manufacture)。
      [0061]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令提供實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動作的過程。
      [0062]再次參考圖1至3B,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
      [0063]相應(yīng)地,例如如上所述,圖1-3B所示的本發(fā)明的各實(shí)施例還可包括提供一種系統(tǒng),其中所述系統(tǒng)包括獨(dú)立模塊(例如,包括軟件、硬件或軟件及硬件的模塊)。僅作為實(shí)例,這些模塊可以包括一但不限于一語言模型轉(zhuǎn)換模塊。這些以及其它模塊例如可被配置為執(zhí)行圖1-3B的上下文中描述和示出的步驟。
      [0064]一個(gè)或多個(gè)實(shí)施例可使用在通用計(jì)算機(jī)或工作站上運(yùn)行的軟件?,F(xiàn)在參考圖4,此類實(shí)現(xiàn)400例如采用處理器402、存儲器404、顯示器406 (輸出設(shè)備的一個(gè)實(shí)例)和鍵盤408 (輸入設(shè)備的一個(gè)實(shí)例)。如在此使用的,術(shù)語“處理器”旨在包括(但不限于)任何處理設(shè)備,例如包括CPU(中央處理單元)和/或其它形式的處理電路的處理設(shè)備。此外,術(shù)語“處理器”可指一個(gè)以上的單獨(dú)處理器。術(shù)語“存儲器”旨在包括(但不限于)與處理器或CPU關(guān)聯(lián)的存儲器,例如,RAM(隨機(jī)存取存儲器)、R0M(只讀存儲器)、固定存儲器件(例如,硬盤)、可移動存儲器件(例如,軟盤)、閃存等。此外,如在此使用的,短語“輸入/輸出設(shè)備”旨在包括(但不限于)一個(gè)或多個(gè)用于將數(shù)據(jù)輸入處理單元的裝置,以及一個(gè)或多個(gè)用于提供與處理單元關(guān)聯(lián)的結(jié)果的裝置。
      [0065]處理器402、存儲器404和輸入/輸出設(shè)備406/408例如可通過作為數(shù)據(jù)處理單元412 —部分的總線410互連。例如通過總線410,可將適合的互連提供給網(wǎng)絡(luò)接口414 (例如,網(wǎng)卡,可提供此接口以便與計(jì)算機(jī)網(wǎng)絡(luò)對接)和介質(zhì)接口 416 (例如軟盤驅(qū)動器或⑶-ROM驅(qū)動器,可通過此接口以便與介質(zhì)418對接)。
      [0066]適合于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括至少一個(gè)通過系統(tǒng)總線410直接或間接連接到存儲器元件404的處理器402。所述存儲器元件可以包括在程序代碼的實(shí)際執(zhí)行期間采用的本地存儲器、大容量存儲裝置以及提供至少某些程序代碼的臨時(shí)存儲以減少必須在執(zhí)行期間從大容量存儲裝置檢索代碼的次數(shù)的高速緩沖存儲器。
      [0067]輸入/輸出(I/O)設(shè)備406/408可以直接(例如,通過總線410)或通過中間I/O控制器(為清晰起見已省略)與系統(tǒng)相連。
      [0068]諸如網(wǎng)絡(luò)接口 414之類的網(wǎng)絡(luò)適配器也可以被連接到系統(tǒng)以使所述數(shù)據(jù)處理系統(tǒng)能夠通過中間專用或公共網(wǎng)絡(luò)變得與其它數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲器件相連。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡只是當(dāng)前可用的網(wǎng)絡(luò)適配器類型中的少數(shù)幾種。
      [0069]相應(yīng)地將理解,圖4所示的計(jì)算機(jī)體系結(jié)構(gòu)400可以代表圖1所示的虛擬化主機(jī)計(jì)算系統(tǒng)100的一個(gè)示例性物理實(shí)現(xiàn)。
      [0070]如此處使用的那樣,服務(wù)器包括運(yùn)行服務(wù)器程序的物理數(shù)據(jù)處理系統(tǒng)(例如,圖4所示的系統(tǒng)412)。另外,計(jì)算機(jī)體系結(jié)構(gòu)400可以表示諸如膝上型計(jì)算機(jī)、平板計(jì)算機(jī)、智能手機(jī)或個(gè)人計(jì)算機(jī)之類的客戶機(jī)的一種示例性實(shí)現(xiàn)。
      [0071]將認(rèn)識到并且應(yīng)該理解,上面描述的本發(fā)明的示例性實(shí)施例可通過多種不同的方式實(shí)現(xiàn)。給予了此處提供的本發(fā)明的教導(dǎo)后,所屬領(lǐng)域的普通技術(shù)人員將能夠構(gòu)想本發(fā)明的其它實(shí)現(xiàn)。實(shí)際上,盡管參考附圖在此描述了本發(fā)明的示例性實(shí)施例,但是應(yīng)當(dāng)理解,本發(fā)明并不限于這些精確的實(shí)施例,并且在不偏離本發(fā)明的精神和范圍的情況下,本領(lǐng)域的技術(shù)人員可以做出各種其它更改和修改。
      【權(quán)利要求】
      1.一種用于在計(jì)算系統(tǒng)中管理存儲器的方法,所述計(jì)算系統(tǒng)包括在虛擬化控制層之上執(zhí)行的應(yīng)用,其中所述虛擬化控制層將虛擬存儲器的各部分映射到物理存儲器的各部分,所述方法包括以下步驟: 由所述應(yīng)用標(biāo)識虛擬存儲器范圍,所述虛擬存儲器范圍在所述虛擬存儲器中重復(fù)的概率超過給定閾值; 由所述應(yīng)用獲得與所述虛擬存儲器范圍對應(yīng)的至少一個(gè)存儲器地址;以及 將所述虛擬存儲器范圍的標(biāo)識符和與所述虛擬存儲器范圍對應(yīng)的所述存儲器地址從所述應(yīng)用傳遞到所述虛擬化控制層,其中所述虛擬化控制層可使用所述標(biāo)識符來標(biāo)識所述虛擬存儲器中的類似范圍。
      2.根據(jù)權(quán)利要求1的方法,還包括以下步驟:使用去重和增量編碼中的至少一個(gè)減少所述物理存儲器中的冗余信息。
      3.根據(jù)權(quán)利要求1的方法,其中所述應(yīng)用還獲得與所述虛擬存儲器范圍對應(yīng)的大小并將該大小連同所述標(biāo)識符和與所述虛擬存儲器范圍對應(yīng)的所述存儲器地址一起傳遞到所述虛擬化控制層。
      4.根據(jù)權(quán)利要求3的方法,還包括以下步驟:由所述虛擬化控制層在第一映射結(jié)構(gòu)中搜索與所述應(yīng)用所傳遞的所述標(biāo)識符的匹配。
      5.根據(jù)權(quán)利要求4的方法,還包括以下步驟:當(dāng)針對所述應(yīng)用所傳遞的所述標(biāo)識符未找到匹配時(shí),所述虛擬化控制層在所述第一映射結(jié)構(gòu)中創(chuàng)建新項(xiàng)。
      6.根據(jù)權(quán)利要求5的方法,還包括以下步驟:在所述虛擬化控制層處驗(yàn)證所述虛擬存儲器范圍與所述第一映射結(jié)構(gòu)中的匹配項(xiàng)具有相同內(nèi)容。
      7.根據(jù)權(quán)利要求6的方法,還包括以下步驟:配置第二映射結(jié)構(gòu),以便用于備援與所述范圍對應(yīng)的虛擬存儲器部分的物理存儲器部分同樣用于備援與所述第一映射結(jié)構(gòu)中的所述匹配項(xiàng)對應(yīng)的虛擬存儲器部分。
      8.根據(jù)權(quán)利要求1的方法,其中所述虛擬存儲器范圍表示至少一個(gè)虛擬存儲器頁。
      9.根據(jù)權(quán)利要求1的方法,其中所述虛擬存儲器范圍用于存儲至少一個(gè)讀入存儲器的文件。
      10.根據(jù)權(quán)利要求1的方法,其中所述虛擬存儲器范圍用于存儲至少一個(gè)只讀程序件。
      11.根據(jù)權(quán)利要求1的方法,其中所述虛擬化控制層包括系統(tǒng)管理程序。
      12.根據(jù)權(quán)利要求1的方法,其中所述虛擬化控制層包括操作系統(tǒng)。
      13.一種用于在計(jì)算系統(tǒng)中管理存儲器的方法,所述計(jì)算系統(tǒng)包括在虛擬化控制層之上執(zhí)行的應(yīng)用,其中所述虛擬化控制層將虛擬存儲器的各部分映射到物理存儲器的各部分,所述方法包括以下步驟: 在所述虛擬化控制層處從所述應(yīng)用接收虛擬存儲器范圍的標(biāo)識符以及與所述虛擬存儲器范圍對應(yīng)的至少一個(gè)存儲器地址,所述虛擬存儲器范圍在所述虛擬存儲器中重復(fù)的概率超過給定閾值;以及 由所述虛擬化控制層使用所述標(biāo)識符來標(biāo)識所述虛擬存儲器內(nèi)的類似范圍。
      14.一種用于在計(jì)算系統(tǒng)中管理存儲器的裝置,所述計(jì)算系統(tǒng)包括在虛擬化控制層之上執(zhí)行的應(yīng)用,其中所述虛擬化控制層將虛擬存儲器的各部分映射到物理存儲器的各部分,所述裝置包括: 被配置為由所述應(yīng)用標(biāo)識虛擬存儲器范圍的模塊,所述虛擬存儲器范圍在所述虛擬存儲器中重復(fù)的概率超過給定閾值; 被配置為由所述應(yīng)用獲得與所述虛擬存儲器范圍對應(yīng)的至少一個(gè)存儲器地址的模塊;以及 被配置為將所述虛擬存儲器范圍的標(biāo)識符和與所述虛擬存儲器范圍對應(yīng)的所述存儲器地址從所述應(yīng)用傳遞到所述虛擬化控制層的模塊,其中所述虛擬化控制層可使用所述標(biāo)識符來標(biāo)識所述虛擬存儲器中的類似范圍。
      15.根據(jù)權(quán)利要求14的裝置,還包括被配置為使用去重和增量編碼中的至少一個(gè)減少所述物理存儲器中的冗余信息的模塊。
      16.根據(jù)權(quán)利要求14的裝置,其中所述應(yīng)用還獲得與所述虛擬存儲器范圍對應(yīng)的大小并將該大小連同所述標(biāo)識符和與所述虛擬存儲器范圍對應(yīng)的所述存儲器地址一起傳遞到所述虛擬化控制層。
      17.根據(jù)權(quán)利要求16的裝置,還包括被配置為由所述虛擬化控制層在第一映射結(jié)構(gòu)中搜索與所述應(yīng)用所傳遞的所述標(biāo)識符的匹配的模塊。
      18.根據(jù)權(quán)利要求17的裝置,還包括被配置為當(dāng)針對所述應(yīng)用所傳遞的所述標(biāo)識符未找到匹配時(shí),由所述虛擬化控制層在所述第一映射結(jié)構(gòu)中創(chuàng)建新項(xiàng)的模塊。
      19.根據(jù)權(quán)利要求18的裝置,還包括被配置為在所述虛擬化控制層處驗(yàn)證所述虛擬存儲器范圍與所述第一映射結(jié)構(gòu)中的匹配項(xiàng)具有相同內(nèi)容的模塊。
      20.根據(jù)權(quán)利要求19的裝置,還包括被配置為配置第二映射結(jié)構(gòu),以便用于備援與所述范圍對應(yīng)的虛擬存儲器部分的物理存儲器部分同樣用于備援與所述第一映射結(jié)構(gòu)中的所述匹配項(xiàng)對應(yīng)的虛擬存儲器部分的模塊。
      21.根據(jù)權(quán)利要求14的裝置,其中所述虛擬存儲器范圍表示至少一個(gè)虛擬存儲器頁。
      22.根據(jù)權(quán)利要求14的裝置,其中所述虛擬存儲器范圍用于存儲至少一個(gè)讀入存儲器的文件。
      23.根據(jù)權(quán)利要求14的裝置,其中所述虛擬存儲器范圍用于存儲至少一個(gè)只讀程序件。
      24.根據(jù)權(quán)利要求14的裝置,其中所述虛擬化控制層包括系統(tǒng)管理程序。
      25.根據(jù)權(quán)利要求14的裝置,其中所述虛擬化控制層包括操作系統(tǒng)。
      26.一種用于在計(jì)算系統(tǒng)中管理存儲器的裝置,所述計(jì)算系統(tǒng)包括在虛擬化控制層之上執(zhí)行的應(yīng)用,其中所述虛擬化控制層將虛擬存儲器的各部分映射到物理存儲器的各部分,所述裝置包括: 被配置為在所述虛擬化控制層處從所述應(yīng)用接收虛擬存儲器范圍的標(biāo)識符以及與所述虛擬存儲器范圍對應(yīng)的至少一個(gè)存儲器地址的模塊,所述虛擬存儲器范圍在所述虛擬存儲器中重復(fù)的概率超過給定閾值;以及 被配置為由所述虛擬化控制層使用所述標(biāo)識符來標(biāo)識所述虛擬存儲器內(nèi)的類似范圍的模塊。
      【文檔編號】G06F12/02GK104133775SQ201410176022
      【公開日】2014年11月5日 申請日期:2014年4月29日 優(yōu)先權(quán)日:2013年5月2日
      【發(fā)明者】M·H·道森, A·K·延格爾, G·約翰遜 申請人:國際商業(yè)機(jī)器公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1