亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

跨越存儲器邊界的選擇性存儲器合并的方法與系統(tǒng)的制作方法

文檔序號:6423867閱讀:127來源:國知局
專利名稱:跨越存儲器邊界的選擇性存儲器合并的方法與系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明通常涉及改進的計算機系統(tǒng),具體地,涉及一種用于管理所分配的存儲器堆(memory heap)的改進的方法與系統(tǒng)。更具體地,本發(fā)明涉及一種在計算機系統(tǒng)中用于跨越存儲器堆邊界有效地合并(coalescing)存儲器塊的改進的方法與系統(tǒng)。
背景技術(shù)
許多計算機系統(tǒng)支持存儲器的動態(tài)分配(allocation)。存儲器一般在多個任務(wù)或多個處理器之間動態(tài)地分配。例如,多任務(wù)操作系統(tǒng)可以有存儲器管理器,其向每個任務(wù)分配存儲器。另外,特定的編程語言支持存儲器管理。程序可能要求存儲器管理器分配給定大小的存儲器塊。然后,存儲器管理器確定向請求程序分配哪塊存儲器,并向該請求程序傳遞指向系統(tǒng)存儲器內(nèi)所分配的存儲器塊的指針。此后,該程序部分能夠使用該存儲器。當(dāng)該程序不再需要該存儲器時,該程序通知存儲器管理器該塊已經(jīng)“空閑(free)”。通常,存儲器管理器解除分配該塊,使其可被另一處理器或處理(process)使用。在計算機系統(tǒng)內(nèi),指定用做此用途的存儲器一般被稱為“堆(heap)”。
隨著存儲器塊被分配到或解除分配到計算機系統(tǒng)內(nèi)的處理器或線程(thread),這些存儲器堆經(jīng)常會變成碎片(fragment)。即,在已分配空間塊之間會有空閑空間塊出現(xiàn)。雖然可能存在足夠的空閑空間來滿足來自處理器或處理的分配請求,但其可能是不連續(xù)的。另外,存儲器堆形成越多碎片,就需要越長的時間來取得滿足用于來自系統(tǒng)內(nèi)的處理器或處理的特定分配請求的塊的空閑空間。因此,許多存儲器管理器試圖通過壓縮或者合并存儲器堆來整理碎片存儲器或整理碎片。因此,存儲器合并的目標(biāo)是將已分配存儲器塊移動到一起,從而將可用的空閑空間合并成為大的存儲器塊,而不是許多小存儲器塊。
用于合并多個存儲器堆中的存儲器塊的現(xiàn)有技術(shù)一般在各個存儲器堆邊界之內(nèi)進行。跨越存儲器堆邊界合并存儲器的嘗試一般要求限制或鎖定到所有存儲器堆的訪問,從而可以自由地分配或解除分配存儲器,將現(xiàn)有數(shù)據(jù)拷貝到新近空閑的存儲器塊中,從而可以更有效地使用存儲器。因此,很明顯需要提供一種系統(tǒng)與方法,由此能夠跨越存儲器堆邊界地合并存儲器,而不要求暫時擱置對所有存儲器堆的訪問。

發(fā)明內(nèi)容
因此,本發(fā)明的一個目的是提供一種改進的計算機系統(tǒng)。
本發(fā)明的另一目的是提供一種用來管理計算機系統(tǒng)內(nèi)已分配存儲器堆的改進的方法與系統(tǒng)。
本發(fā)明的另一目的是提供一種用來在計算機系統(tǒng)內(nèi)跨越堆邊界有效地合并存儲器塊的改進的方法與系統(tǒng)。
上述目的通過下述來實現(xiàn)。提供了一種在多處理器或多線程計算機系統(tǒng)中有效地跨越存儲器堆邊界合并存儲器塊的方法與系統(tǒng)。存儲器塊被分配到多個堆中,以通過增加可能的并行訪問來減少串行化。變化的存儲器需求導(dǎo)致形成碎片并且必須提高存儲器的時間利用率與存儲器合并。對于分配給存儲器堆的每個存儲器塊,維持包含前導(dǎo)相鄰存儲器塊與后續(xù)相鄰存儲器塊的每個存儲器堆的標(biāo)識。此后,每次存儲器塊空閑時,通過暫時只鎖定對那些包含空閑的前導(dǎo)或后續(xù)相鄰存儲器塊的存儲器堆的訪問,該空閑的存儲器塊都跨越堆邊界與相鄰的前導(dǎo)或后續(xù)存儲器塊有效地合并。


認為是本發(fā)明特性的本發(fā)明的新穎的技術(shù)特征在權(quán)利要求中列出。然而,結(jié)合附圖閱讀時通過對本發(fā)明優(yōu)選實施方式的詳細描述,可以更好地了解本發(fā)明自身、以及優(yōu)選使用模式、進一步的目的及其優(yōu)點,其中圖1為可以用來實現(xiàn)本發(fā)明的方法與系統(tǒng)的計算機系統(tǒng)的高層方框圖;圖2為表示可以用來實現(xiàn)本發(fā)明的方法與系統(tǒng)的多個已分配存儲器堆的示意圖;圖3為表示以用來實現(xiàn)本發(fā)明的方法與系統(tǒng)的存儲器塊堆標(biāo)識(identification)注冊表的示意圖;圖4為用于實現(xiàn)本發(fā)明的方法與系統(tǒng)的過程的高層邏輯流程圖。
具體實施例方式
現(xiàn)在參照附圖,具體參照圖1,其中表示了可以用來實現(xiàn)本發(fā)明的方法與系統(tǒng)的計算機系統(tǒng)10的高層方框圖。如圖所示,計算機系統(tǒng)10包括多個處理器或處理12、14、16、以及18。本領(lǐng)域技術(shù)人員應(yīng)該理解,在參照本說明書的情況下,本發(fā)明的方法與系統(tǒng)可以應(yīng)用到多處理器計算機系統(tǒng)或者所謂的多線程或多任務(wù)計算機系統(tǒng)中,在所述多處理器計算機系統(tǒng),每個處理器要求用于執(zhí)行其特定任務(wù)的所分配的存儲器,在所謂的多線程或多任務(wù)計算機系統(tǒng)中,多個處理單獨地運行并要求分配的存儲器以完成這些處理。
如圖所示,計算機系統(tǒng)10中的每個處理器或處理都通過總線20耦合至系統(tǒng)存儲器22。系統(tǒng)存儲器22包括存儲器的一大存儲裝置,(例如)其可以用來存儲操作系統(tǒng)12。另外,系統(tǒng)存儲器22的各個部分一般以所謂“堆”分配給計算機系統(tǒng)10中的每個單獨的處理器或者處理,以由該處理器或處理使用來完成其特定任務(wù)。
現(xiàn)在參照圖2,其中表示了可以用來實現(xiàn)本發(fā)明的方法與系統(tǒng)的多個已分配存儲器堆的示意圖。如上圖1所示,表示了多個處理器或處理12、14、16、以及18。然后,每個處理器或處理耦合至存儲器堆。因此,處理器或處理12耦合至存儲器堆30,如圖2所示。處理器或處理14耦合至存儲器堆32。處理器或處理16耦合至存儲器堆34,處理器或處理18耦合至存儲器堆36。當(dāng)然,本領(lǐng)域技術(shù)人員應(yīng)該理解多個處理器可以訪問同一存儲器堆,或者每個處理器能夠訪問多個存儲器堆。
如圖2進一步所示,每個存儲器堆可以包含一個或更多個存儲器塊,這些存儲器塊已經(jīng)由存儲器分配器響應(yīng)于來自有關(guān)存儲器或處理的請求分配給該存儲器堆。在本發(fā)明中為了說明,存儲器堆30包括三個存儲器塊“A”、“B”、“C”。存儲器堆32包括單獨一個存儲器塊“D”。存儲器堆34包括兩個存儲器塊“E”、“F”。最后,存儲器堆36包括三個存儲器塊,標(biāo)記為“G”、“H”、“I”。
在本發(fā)明中為了說明,每個存儲器塊己由拼寫字母指定,這些字母只是用于說明目的,用來指示系統(tǒng)存儲器22中每個存儲器塊的相對位置。因此,為了本發(fā)明的目的,在系統(tǒng)22中,存儲器塊“A”與存儲器塊“B”相鄰。類似地,在系統(tǒng)22中,存儲器塊“C”與存儲器塊“D”相鄰,存儲器塊“F”與“G”也一樣。當(dāng)然,本領(lǐng)域技術(shù)人員應(yīng)該理解在實際的運行中,可能向或可能不向特定存儲器堆分配相鄰的存儲器塊,這要取決于向各個存儲器或處理分配這些存儲器塊的命令(order)。
下面,參照圖3,其中表示了存儲器塊堆標(biāo)識26的示意圖,其可以用來實現(xiàn)本發(fā)明的方法與系統(tǒng)。存儲器堆標(biāo)識26中的每一行都表示在每個所指定的存儲器塊中存儲的數(shù)據(jù)。如圖所示,在所示例子中,每一存儲器塊用名稱標(biāo)識;然而,本領(lǐng)域技術(shù)人員應(yīng)該理解更通常是使用存儲器地址。因此,在每一存儲器的標(biāo)識之后,出現(xiàn)三個附加列。第一列包括一包含該存儲器塊的存儲器堆的標(biāo)識。第二列包括一包含當(dāng)前塊的前導(dǎo)相鄰存儲器塊的存儲器堆的標(biāo)識,最后,第三列包括一包含后續(xù)相鄰的存儲器塊的堆的標(biāo)識。因此,塊“A”列出存在于當(dāng)前30號堆內(nèi),沒有前導(dǎo)相鄰塊,并且其后續(xù)相鄰塊(“B”)位于堆30內(nèi)。
仍然參照圖3,例如,存儲器堆“D”列出存在于存儲器塊32中,并且其前導(dǎo)相鄰存儲器塊(“C”)列出存在于堆30內(nèi),而其后續(xù)相鄰存儲器塊(“D”)列出存在于堆34內(nèi)。
在參照上述情況下,本領(lǐng)域技術(shù)人員應(yīng)該理解通過簡單的存儲器登錄(entry),可以維持分配給特定堆的每個存儲器塊的位置,該堆的標(biāo)識,以及系統(tǒng)存儲器內(nèi)包含前導(dǎo)相鄰存儲器塊的堆的標(biāo)識,以及系統(tǒng)存儲器內(nèi)包含后續(xù)相鄰存儲器塊的堆的標(biāo)識。如此處所示,這樣小量的附加輔助操作提供了一種跨越堆邊界合并存儲器塊的有效技術(shù)。
現(xiàn)在參照圖4,其中表示了用于實現(xiàn)本發(fā)明的方法與系統(tǒng)的過程的高層邏輯流程圖。如圖所示,該過程開始于框40,此后轉(zhuǎn)到框42。框42表示列出每個存儲器塊及其前導(dǎo)與后續(xù)相鄰存儲器塊的堆位置,如圖3所示。下面,該過程轉(zhuǎn)到框44。
框44表示確定所表示的在存儲器堆中任意位置的特定存儲器塊是否已經(jīng)空閑,或者不再需要。如果否,則該過程只循環(huán)直至已經(jīng)與該存儲器堆相關(guān)聯(lián)的處理器或處理已經(jīng)釋放了存儲器塊的時間為止。
仍然參照框44,在存儲器堆中所選擇的存儲器塊已經(jīng)空閑的情況下,該過程轉(zhuǎn)到框46???6表示確定已經(jīng)空閑的存儲器塊的前導(dǎo)與后續(xù)的相鄰塊的堆位置。此后,該過程轉(zhuǎn)到框48???8表示確定與已經(jīng)空閑的所選擇的塊相關(guān)聯(lián)的前導(dǎo)與后續(xù)相鄰存儲器塊的空閑或已分配狀態(tài)。在確定了對于空閑與后續(xù)存儲器塊兩者的空閑或已分配狀態(tài)之后,該過程轉(zhuǎn)到框50。
現(xiàn)在參照框50,表示啟動只對那些包含空閑的前導(dǎo)或后續(xù)相鄰存儲器塊的堆的鎖定。此后,該過程轉(zhuǎn)到框52。然后,框52表示根據(jù)所指定的合并規(guī)則合并存儲器塊。本領(lǐng)域技術(shù)人員應(yīng)該理解可以提供各種規(guī)則集合,用來控制合并的命令與方法。例如,根據(jù)本發(fā)明一個所示實施方式,提出了以下合并規(guī)則。即,(1)如果前導(dǎo)與后續(xù)相鄰存儲器塊兩者都存在于同一存儲器堆內(nèi),則新近空閑的存儲器塊與這兩個塊兩者合并,并移動到包含這兩個塊的堆中;(2)如果前導(dǎo)與后續(xù)相鄰存儲器塊兩者都是空閑的但是存在于兩個不同的堆中,則新近空閑的存儲器塊和前導(dǎo)與后續(xù)相鄰存儲器塊中較大的塊合并在先前包含新近空閑的存儲器塊的堆之中;以及(3)如果前導(dǎo)與后續(xù)相鄰存儲器塊只有一個是空閑的,則應(yīng)將其與新近空閑的存儲器塊合并,由此提供兩個存儲器塊的部分合并。當(dāng)然,其中在同一存儲器堆中存在多個空閑相鄰塊的情況是一種簡并情況,此處不討論。
在參照上述的情況下,本領(lǐng)域技術(shù)人員應(yīng)該理解通過使用這種技術(shù),為進行部分合并,將暫時限制對最小數(shù)目的存儲器堆的訪問。與其中限制到所有存儲器堆的現(xiàn)有合并技術(shù)不同,本方法與系統(tǒng)只部分地合并存儲器;然而,有利的結(jié)果是對剩余存儲器堆的訪問得到提高。
可從上述中明顯看到,在當(dāng)前、前導(dǎo)、以及后續(xù)存儲器塊都是空閑的并且每一個都在不同存儲器堆的情況下,最多將有三個存儲器堆需要通過鎖定限制對它們的訪問。在只要合并前導(dǎo)以及后續(xù)相鄰存儲器塊其中之一并且該塊在不同的存儲器堆中的情況下,將限制對兩個存儲器堆的訪問。這樣一來,通過將施加到存儲器堆的鎖定的數(shù)目限制到最大值三,本發(fā)明的部分合并系統(tǒng)提供了良好的可伸縮性。因此,例如,在具有三十二個處理器或線程的系統(tǒng)中,根據(jù)本發(fā)明的方法與系統(tǒng),部分合并所需的三個鎖將限制到9.4%存儲器堆的訪問。在具有六十四個處理器或處理的計算機系統(tǒng)中,鎖定對三個存儲器堆的訪問只限制到4.7%存儲器堆的訪問,因此,本發(fā)明的系統(tǒng)與方法在越來越大的計算機系統(tǒng)中將會有越來越廣泛的應(yīng)用。
回去參照圖4,根據(jù)本發(fā)明的一個重要技術(shù)特征,在將新近空閑的存儲器塊與空閑的前導(dǎo)或后續(xù)相鄰存儲器塊合并并將這些存儲器塊其中之一或兩者再次分配給不同的存儲器堆之后,反映每個塊、其前導(dǎo)塊與后續(xù)塊的存儲器堆位置的堆位置指示必須被更新,從而該過程能夠繼續(xù),如框54所示。接著,解除所有的鎖定,如框56所示,然后該過程返回,如框58所示。
在參照上述的情況下,本領(lǐng)域技術(shù)人員應(yīng)該理解本申請?zhí)峁┝艘环N技術(shù),由此在大型多處理器或多處理計算機系統(tǒng)中的小部分存儲器可以連續(xù)地跨越堆邊界地合并,同時將對該系統(tǒng)內(nèi)大部分其他處理器或處理對存儲器堆的訪問的限制最小化。
雖然參照優(yōu)選實施方式具體表示并描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員應(yīng)該理解在不脫離本發(fā)明的精神與范圍的前提下可以進行形式與細節(jié)上的各種修改。
權(quán)利要求
1.一種在計算機系統(tǒng)中跨越存儲器堆邊界選擇地合并存儲器的方法,該計算機系統(tǒng)具有多個已分配存儲器堆,所述方法包括以下步驟對于所述多個已分配存儲器堆中的每個存儲器塊,維持包含前導(dǎo)相鄰存儲器塊的已分配存儲器堆的標(biāo)識,以及包含后續(xù)相鄰存儲器塊的已分配存儲器堆的標(biāo)識;響應(yīng)于所選擇的存儲器塊的空閑,確定前導(dǎo)相鄰存儲器塊與后續(xù)相鄰存儲器塊兩者的使用狀態(tài);暫時只鎖定對那些包含對于所選擇的存儲器塊的空閑的前導(dǎo)或空閑的后續(xù)相鄰存儲器塊的已分配存儲器堆的訪問;將所選擇的存儲器塊與空閑的前導(dǎo)相鄰存儲器塊和/或空閑的后續(xù)相鄰存儲器塊合并;更新所維持的包含所述前導(dǎo)相鄰存儲器塊與所述后續(xù)相鄰存儲器塊的已分配存儲器堆的標(biāo)識,以反映所述合并;以及解除所述暫時被鎖定的訪問。
2.根據(jù)權(quán)利要求1所述的用于選擇地合并存儲器的方法,其中將所述所選擇的存儲器塊與空閑的前導(dǎo)相鄰存儲器塊和/或空閑的后續(xù)相鄰存儲器塊合并的步驟包括以下步驟合并所選擇的存儲器塊到一個已分配存儲器堆中,該一個已分配存儲器堆包含空閑的前導(dǎo)相鄰存儲器塊與空閑的后續(xù)相鄰存儲器塊兩者。
3.根據(jù)權(quán)利要求1所述的用于選擇地合并存儲器的方法,其中將所述所選擇的存儲器塊與空閑的前導(dǎo)相鄰存儲器塊和/或空閑的后續(xù)相鄰存儲器塊合并的步驟包括以下步驟響應(yīng)于所述空閑的前導(dǎo)相鄰存儲器塊與所述空閑的后續(xù)相鄰存儲器塊在兩個不同的已分配存儲器堆中的位置,將所選擇的存儲器塊與空閑的前導(dǎo)相鄰存儲器塊和空閑的后續(xù)相鄰存儲器塊中較大的塊合并。
4.根據(jù)權(quán)利要求1所述的用于選擇地合并存儲器的方法,其中所述計算機系統(tǒng)為多處理器計算機,并且其中所述方法進一步包括以下步驟分配存儲器堆給所述多處理器計算機系統(tǒng)中的每個處理器。
5.根據(jù)權(quán)利要求1所述的用于選擇地合并存儲器的方法,其中所述計算機系統(tǒng)為多線程計算機,并且其中所述方法進一步包括以下步驟分配存儲器堆給所述多線程計算機系統(tǒng)中的每個線程。
6.一種在計算機系統(tǒng)中跨越存儲器堆邊界選擇地合并存儲器的系統(tǒng),該計算機系統(tǒng)具有多個已分配存儲器堆,所述系統(tǒng)包括用于對于所述多個已分配存儲器堆中的每個存儲器塊,維持包含前導(dǎo)相鄰存儲器塊的已分配存儲器堆的標(biāo)識,以及包含后續(xù)相鄰存儲器塊的已分配存儲器堆的標(biāo)識的裝置;用于響應(yīng)于所選擇的存儲器塊的空閑,確定前導(dǎo)相鄰存儲器塊與后續(xù)相鄰存儲器塊兩者的使用狀態(tài)的裝置;用于暫時只鎖定對那些包含對于所選擇的存儲器塊的空閑的前導(dǎo)或空閑的后續(xù)相鄰存儲器塊的已分配存儲器堆的訪問的裝置;用于將所選擇的存儲器塊與空閑的前導(dǎo)相鄰存儲器塊和/或空閑的后續(xù)相鄰存儲器塊合并的裝置;用于更新所維持的包含所述前導(dǎo)相鄰存儲器塊與所述后續(xù)相鄰存儲器塊的已分配存儲器堆的標(biāo)識,以反映所述合并的裝置;以及用于解除所述暫時被鎖定的訪問的裝置。
7.根據(jù)權(quán)利要求6所述的用于選擇地合并存儲器的系統(tǒng),其中所述用于將所選擇的存儲器塊與空閑的前導(dǎo)相鄰存儲器塊和/或空閑的后續(xù)相鄰存儲器塊合并的裝置包括用于合并所選擇的存儲器塊到一個已分配存儲器堆中的裝置,該一個已分配存儲器堆包含空閑的前導(dǎo)相鄰存儲器塊與空閑的后續(xù)相鄰存儲器塊兩者。
8.根據(jù)權(quán)利要求6所述的用于選擇地合并存儲器的系統(tǒng),其中所述用于合并所選擇的存儲器塊與空閑的前導(dǎo)相鄰存儲器塊和/或空閑的后續(xù)相鄰存儲器塊的裝置包括一裝置,用于響應(yīng)于所述空閑的前導(dǎo)相鄰存儲器塊與所述空閑的后續(xù)相鄰存儲器塊在兩個不同的已分配存儲器堆中的位置,將所選擇的存儲器塊與空閑的前導(dǎo)相鄰存儲器塊和空閑的后續(xù)相鄰存儲器塊中較大的塊合并。
9.根據(jù)權(quán)利要求6所述的用于選擇地合并存儲器的系統(tǒng),其中所述計算機系統(tǒng)為多處理器計算機,并且其中所述系統(tǒng)進一步包括用于分配存儲器堆給所述多處理器計算機系統(tǒng)中的每個處理器的裝置。
10.根據(jù)權(quán)利要求6所述的用于選擇地合并存儲器的系統(tǒng),其中所述計算機系統(tǒng)為多線程計算機,并且其中所述系統(tǒng)進一步包括用于分配存儲器堆給所述多線程計算機系統(tǒng)中的每個線程的裝置。
11.一種用于在計算機系統(tǒng)中跨越存儲器堆邊界選擇地合并存儲器的計算機程序產(chǎn)品,該計算機系統(tǒng)具有多個已分配存儲器堆,所述計算機程序產(chǎn)品包括計算機可讀介質(zhì);在所述計算機可讀介質(zhì)中實現(xiàn)的指令裝置,用于對于所述多個已分配存儲器堆中的每個存儲器塊,維持包含前導(dǎo)相鄰存儲器塊的已分配存儲器堆的標(biāo)識,以及包含后續(xù)相鄰存儲器塊的已分配存儲器堆的標(biāo)識;在所述計算機可讀介質(zhì)中實現(xiàn)的指令裝置,用于響應(yīng)于所選擇的存儲器塊的空閑,確定前導(dǎo)相鄰存儲器塊與后續(xù)相鄰存儲器塊兩者的使用狀態(tài);在所述計算機可讀介質(zhì)中實現(xiàn)的指令裝置,用于暫時只鎖定對那些包含對于所選擇的存儲器塊的空閑的前導(dǎo)或空閑的后續(xù)相鄰存儲器塊的已分配存儲器堆的訪問;在所述計算機可讀介質(zhì)中實現(xiàn)的指令裝置,用于將所選擇的存儲器塊與空閑的前導(dǎo)相鄰存儲器塊和/或空閑的后續(xù)相鄰存儲器塊合并;在所述計算機可讀介質(zhì)中實現(xiàn)的指令裝置,用于更新所維持的包含所述前導(dǎo)相鄰存儲器塊與所述后續(xù)相鄰存儲器塊的已分配存儲器堆的標(biāo)識,以反映所述合并;以及在所述計算機可讀介質(zhì)中實現(xiàn)的指令裝置,用于解除所述暫時被鎖定的訪問。
12.根據(jù)權(quán)利要求11所述的用于選擇地合并存儲器的計算機程序產(chǎn)品,其中所述用于將所選擇的存儲器塊與空閑的前導(dǎo)相鄰存儲器塊和/或空閑的后續(xù)相鄰存儲器塊合并的指令裝置包括用于合并所選擇的存儲器塊到一個已分配存儲器堆中的指令裝置,該一個已分配存儲器堆包含空閑的前導(dǎo)相鄰存儲器塊與空閑的后續(xù)相鄰存儲器塊兩者。
13.根據(jù)權(quán)利要求11所述的用于選擇地合并存儲器的計算機程序產(chǎn)品,其中所述用于將所選擇的存儲器塊與空閑的前導(dǎo)相鄰存儲器塊和/或空閑的后續(xù)相鄰存儲器塊合并的指令裝置包括一指令裝置,用于響應(yīng)于所述空閑的前導(dǎo)相鄰存儲器塊與所述空閑的后續(xù)相鄰存儲器塊在兩個不同的已分配存儲器堆中的位置,將所選擇的存儲器塊與空閑的前導(dǎo)相鄰存儲器塊和空閑的后續(xù)相鄰存儲器塊中較大的塊合并。
14.根據(jù)權(quán)利要求11所述的用于選擇地合并存儲器的計算機程序產(chǎn)品,其中所述計算機系統(tǒng)為多處理器計算機,并且其中所述計算機程序產(chǎn)品進一步包括用于分配存儲器堆給所述多處理器計算機系統(tǒng)中的每個處理器的指令裝置。
15.根據(jù)權(quán)利要求11所述的用于選擇地合并存儲器的計算機程序產(chǎn)品,其中所述計算機系統(tǒng)為多線程計算機,并且其中所述計算機程序產(chǎn)品進一步包括用于分配存儲器堆給所述多線程計算機系統(tǒng)中的每個線程的指令裝置。
全文摘要
一種在多處理器或多線程計算機系統(tǒng)中有效地跨越存儲器堆邊界合并存儲器塊的方法與系統(tǒng)。存儲器塊被分配到多個堆中,以由各個處理器或處理獨占地使用。變化的存儲器需求導(dǎo)致形成碎片并且必須提高存儲器的時間利用率與存儲器合并。對于所有的存儲器塊,維持包含前導(dǎo)相鄰存儲器塊與后續(xù)相鄰存儲器塊的每個存儲器堆的標(biāo)識。此后,每次存儲器塊空閑時,通過暫時只鎖定對那些包含空閑的前導(dǎo)或后續(xù)相鄰存儲器塊的存儲器堆的訪問,該空閑的存儲器塊都可以跨越堆邊界與相鄰的前導(dǎo)或后續(xù)存儲器塊合并。
文檔編號G06F12/02GK1598786SQ20041006999
公開日2005年3月23日 申請日期2004年7月20日 優(yōu)先權(quán)日2003年9月18日
發(fā)明者喬爾·H·肖普 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1