具有增強(qiáng)的應(yīng)用元數(shù)據(jù)的存儲(chǔ)器管理器的制造方法
【專(zhuān)利摘要】本文描述了一種存儲(chǔ)器管理系統(tǒng),它從各應(yīng)用接收描述存儲(chǔ)器正被如何使用的信息并且允許應(yīng)用主機(jī)對(duì)使用存儲(chǔ)器的應(yīng)用請(qǐng)求施加更多控制。該系統(tǒng)提供應(yīng)用存儲(chǔ)器管理應(yīng)用編程接口(API),該API允許應(yīng)用指定與存儲(chǔ)器分配有關(guān)的有助于后來(lái)管理存儲(chǔ)器的更多信息。該系統(tǒng)還提供以下能力:靜態(tài)地和/或動(dòng)態(tài)地分析傳統(tǒng)應(yīng)用以便向未被修改成與該系統(tǒng)一起工作的各應(yīng)用給予參與更有效的存儲(chǔ)器管理的一些能力。該系統(tǒng)提供應(yīng)用主機(jī)改變以利用各應(yīng)用所提供的信息并通過(guò)使用該信息和該應(yīng)用的存儲(chǔ)器使用中的勾連來(lái)更有效地管理存儲(chǔ)器。由此,該系統(tǒng)提供用于管理存儲(chǔ)器的新模型,它改進(jìn)了應(yīng)用主機(jī)行為并允許各應(yīng)用更有效地使用計(jì)算資源。
【專(zhuān)利說(shuō)明】具有增強(qiáng)的應(yīng)用元數(shù)據(jù)的存儲(chǔ)器管理器
【背景技術(shù)】
[0001]計(jì)算機(jī)系統(tǒng)中的存儲(chǔ)器管理指的是多個(gè)應(yīng)用和操作系統(tǒng)對(duì)存儲(chǔ)器的使用達(dá)成一致的方式。雖然每一計(jì)算機(jī)系統(tǒng)具有固定量的物理隨機(jī)存取存儲(chǔ)器(RAM)或其他存儲(chǔ)器,但操作系統(tǒng)可向各應(yīng)用和各操作系統(tǒng)組件呈現(xiàn)表示與物理存儲(chǔ)器不同的存儲(chǔ)器大小的虛擬存儲(chǔ)器。在一些情況下,虛擬存儲(chǔ)器允許操作系統(tǒng)限制每一應(yīng)用訪(fǎng)問(wèn)存儲(chǔ)器的特定部分、阻止一個(gè)應(yīng)用通過(guò)無(wú)意地或有意地修改另一應(yīng)用的存儲(chǔ)器來(lái)干擾該另一應(yīng)用的操作。操作系統(tǒng)一般提供用于響應(yīng)于應(yīng)用和操作系統(tǒng)組件請(qǐng)求來(lái)分配并釋放存儲(chǔ)器的一個(gè)或多個(gè)功能。操作系統(tǒng)可向應(yīng)用提供存儲(chǔ)器池,該應(yīng)用可從該池中分配存儲(chǔ)器塊。如果一應(yīng)用使用或者一組應(yīng)用一起使用比所安裝的物理存儲(chǔ)器的量更多的虛擬存儲(chǔ)器,則操作系統(tǒng)可以在被稱(chēng)為分頁(yè)或盤(pán)交換(即,向盤(pán)存儲(chǔ)和從中取回存儲(chǔ)器的各頁(yè))的過(guò)程中使用較慢的基于盤(pán)的存儲(chǔ)來(lái)通過(guò)交換文件擴(kuò)展存儲(chǔ)器的表觀大小。
[0002]除了所提供的分配和釋放功能之外,操作系統(tǒng)對(duì)各應(yīng)用如何使用存儲(chǔ)器具有非常少的洞察。許多計(jì)算設(shè)備包含圍繞存儲(chǔ)器的特定限制。例如,移動(dòng)計(jì)算設(shè)備可包括與在臺(tái)式計(jì)算機(jī)系統(tǒng)上可用的存儲(chǔ)器量相比小得多的存儲(chǔ)器量(或系統(tǒng)可能想要解除某存儲(chǔ)器的電力以降低能耗),從而產(chǎn)生對(duì)該設(shè)備的與多少應(yīng)用可同時(shí)運(yùn)行、每一應(yīng)用可請(qǐng)求/消費(fèi)多少存儲(chǔ)器等等有關(guān)的限制。在特定計(jì)算系統(tǒng)內(nèi)主存應(yīng)用代碼的其他計(jì)算環(huán)境也可對(duì)該環(huán)境的存儲(chǔ)器使用施加限制或上限。諸如VMware和MICROSOFT TM Virtual PC、系統(tǒng)管理程序、操作系統(tǒng)以及其他的主機(jī)可分配到有限的資源。在所有這些情況中,有效的存儲(chǔ)器管理變得更加值得注意。
[0003]新計(jì)算平臺(tái)引入新技術(shù)或重新利用舊技術(shù)來(lái)解決各應(yīng)用之間共享的存儲(chǔ)器有限的問(wèn)題。例如,移動(dòng)電話(huà)操作系統(tǒng)可以創(chuàng)建每一應(yīng)用的存儲(chǔ)器快照,以使得在該應(yīng)用不在前臺(tái)(例如,被主動(dòng)使用)時(shí),操作系統(tǒng)將它關(guān)閉并將該應(yīng)用的存儲(chǔ)器的鏡像儲(chǔ)存在較慢存儲(chǔ)上(例如,閃存或其他存儲(chǔ))。在該應(yīng)用被選擇時(shí),操作系統(tǒng)將所存儲(chǔ)的鏡像重新加載到存儲(chǔ)器并起動(dòng)該應(yīng)用。該應(yīng)用可能甚至不知道它被關(guān)閉過(guò)。雖然這些技術(shù)是有用的,但操作系統(tǒng)仍然將遭受該應(yīng)用對(duì)使用存儲(chǔ)器的不透明請(qǐng)求的損害。當(dāng)前,關(guān)于動(dòng)態(tài)存儲(chǔ)器使用作出的大多數(shù)決策是基于在運(yùn)行時(shí)期間找到的信息來(lái)作出的。這樣的信息的示例包括對(duì)所分配的存儲(chǔ)器段的引用的大小和數(shù)量。這一信息隨后可被用來(lái)確定哪些分配將被分頁(yè)到盤(pán),被高速緩存到高性能存儲(chǔ)器,或被某種自動(dòng)存儲(chǔ)器管理系統(tǒng)釋放。不幸的是,任何平臺(tái)都受到可能多年的傳統(tǒng)應(yīng)用的限制,所以在與存儲(chǔ)器管理一樣寬廣的區(qū)域中采用新模型是困難的。
[0004]概述
[0005]本文描述了一種存儲(chǔ)器管理系統(tǒng),它從各應(yīng)用接收描述存儲(chǔ)器被如何使用的信息并且允許應(yīng)用主機(jī)對(duì)使用存儲(chǔ)器的應(yīng)用請(qǐng)求施加更多控制。當(dāng)今,除了應(yīng)用已作出了多少存儲(chǔ)器請(qǐng)求和每一請(qǐng)求請(qǐng)求了多大的存儲(chǔ)器之外,應(yīng)用主機(jī)對(duì)該應(yīng)用的存儲(chǔ)器使用知之甚少。然而,應(yīng)用主機(jī)不知道每一存儲(chǔ)器分配的目的,哪些存儲(chǔ)器分配將很快被使用,在應(yīng)用主機(jī)需要更多存儲(chǔ)器的情況下哪些存儲(chǔ)器分配可被容易地重新創(chuàng)建,哪些存儲(chǔ)器分配暫時(shí)不會(huì)被使用并且因此可被分頁(yè)到盤(pán)而不影響該應(yīng)用的性能,等等。不幸的是,雖然應(yīng)用主機(jī)的任務(wù)是作出這些類(lèi)型的決策,但應(yīng)用擁有與有效作出這些決策有關(guān)的最多信息。
[0006]本存儲(chǔ)器管理系統(tǒng)用若干方式克服了這些問(wèn)題。首先,該系統(tǒng)提供應(yīng)用存儲(chǔ)器管理應(yīng)用程序編程接口(API),該API允許該應(yīng)用指定與存儲(chǔ)器分配有關(guān)的有助于后來(lái)管理存儲(chǔ)器的更多信息。該API還可向應(yīng)用主機(jī)提供通知該應(yīng)用何時(shí)需要存儲(chǔ)器以及在需要時(shí)搶先釋放并重新創(chuàng)建存儲(chǔ)器分配而無(wú)需該應(yīng)用的交互的能力。其次,該系統(tǒng)提供以下能力:在統(tǒng)計(jì)上和/或動(dòng)態(tài)地分析傳統(tǒng)應(yīng)用以向未被修改成與該系統(tǒng)一起工作的各應(yīng)用給予參與更高效的存儲(chǔ)器管理的某能力。第三,該系統(tǒng)提供應(yīng)用主機(jī)改變以利用各應(yīng)用所提供的信息并使用該信息和該應(yīng)用的存儲(chǔ)器使用中的勾連來(lái)更高效地管理存儲(chǔ)器。因而,本存儲(chǔ)器管理系統(tǒng)提供用于管理存儲(chǔ)器的新模型,它改進(jìn)了應(yīng)用主機(jī)行為并潛在地允許各應(yīng)用更高效地使用計(jì)算資源。
[0007]提供本概述是為了以簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的選擇的概念。本概述并不旨在標(biāo)識(shí)所要求保護(hù)主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護(hù)主題的范圍。
[0008]附圖簡(jiǎn)述
[0009]圖1是示出在一個(gè)實(shí)施例中的存儲(chǔ)器管理系統(tǒng)的各組件的框圖。
[0010]圖2是示出在一個(gè)實(shí)施例中的存儲(chǔ)器管理系統(tǒng)的操作環(huán)境的框圖。
[0011]圖3是示出在一個(gè)實(shí)施例中的軟件應(yīng)用內(nèi)的存儲(chǔ)器管理系統(tǒng)請(qǐng)求分配和使用存儲(chǔ)器的處理的流程圖。
[0012]圖4是示出在一個(gè)實(shí)施例中的主機(jī)內(nèi)的存儲(chǔ)器管理系統(tǒng)接收分配和使用存儲(chǔ)器的應(yīng)用請(qǐng)求的處理的流程圖。
[0013]圖5是示出在一個(gè)實(shí)施例中的存儲(chǔ)器管理系統(tǒng)分析沒(méi)有被專(zhuān)門(mén)設(shè)計(jì)成提供存儲(chǔ)器分配信息的應(yīng)用的處理的流程圖。
[0014]圖6是示出在一個(gè)實(shí)施例中的存儲(chǔ)器管理系統(tǒng)在統(tǒng)計(jì)上分析應(yīng)用并提供增強(qiáng)的存儲(chǔ)器信息的清單的處理的流程圖。
[0015]圖7是示出一個(gè)實(shí)施例中的存儲(chǔ)器管理系統(tǒng)響應(yīng)于檢測(cè)到的存儲(chǔ)器壓力來(lái)采取與存儲(chǔ)器有關(guān)的動(dòng)作的處理的流程圖。
[0016]圖8是示出一個(gè)實(shí)施例中的存儲(chǔ)器管理系統(tǒng)激活存儲(chǔ)器先前已針對(duì)其被主機(jī)修改的應(yīng)用的處理的流程圖。
[0017]詳細(xì)描述
[0018]本文描述了一種存儲(chǔ)器管理系統(tǒng),它從各應(yīng)用接收描述存儲(chǔ)器被如何使用的信息并且允許應(yīng)用主機(jī)對(duì)使用存儲(chǔ)器的應(yīng)用請(qǐng)求施加更多控制。當(dāng)今,除了應(yīng)用已作出了多少存儲(chǔ)器請(qǐng)求和每一請(qǐng)求請(qǐng)求了多大的存儲(chǔ)器之外,應(yīng)用主機(jī)對(duì)該應(yīng)用的存儲(chǔ)器使用知之甚少。然而,應(yīng)用主機(jī)不知道每一存儲(chǔ)器分配的目的,哪些存儲(chǔ)器分配將很快被使用,在應(yīng)用主機(jī)需要更多存儲(chǔ)器的情況下哪些存儲(chǔ)器分配可被容易地重新創(chuàng)建,哪些存儲(chǔ)器分配暫時(shí)不會(huì)被使用并且因此可被分頁(yè)到盤(pán)而不影響該應(yīng)用的性能,等等。不幸的是,雖然應(yīng)用主機(jī)的任務(wù)是作出這些類(lèi)型的決策,但應(yīng)用擁有與有效作出這些決策有關(guān)的最多信息。這一沖突當(dāng)今是通過(guò)應(yīng)用主機(jī)提供基本水平的功能并猜測(cè)要采取哪些動(dòng)作來(lái)解決的。在許多情況下,應(yīng)用主機(jī)可能恰好在應(yīng)用需要存儲(chǔ)器之前將該存儲(chǔ)器分頁(yè)到盤(pán),或者應(yīng)用主機(jī)可能花費(fèi)大量努力來(lái)管理對(duì)應(yīng)用幾乎不重要的存儲(chǔ)器。[0019]本存儲(chǔ)器管理系統(tǒng)用本文進(jìn)一步討論的若干方式克服了這些問(wèn)題。首先,該系統(tǒng)提供應(yīng)用存儲(chǔ)器管理應(yīng)用程序編程接口(API),該API允許該應(yīng)用指定與存儲(chǔ)器分配有關(guān)的有助于后來(lái)管理存儲(chǔ)器的更多信息。該API還可向應(yīng)用主機(jī)提供通知該應(yīng)用何時(shí)需要存儲(chǔ)器以及在需要時(shí)搶先釋放并重新創(chuàng)建存儲(chǔ)器分配而無(wú)需該應(yīng)用的交互的能力。其次,該系統(tǒng)提供以下能力:在統(tǒng)計(jì)上和/或動(dòng)態(tài)地分析傳統(tǒng)應(yīng)用以向未被修改成與該系統(tǒng)一起工作的各應(yīng)用給予參與更高效的存儲(chǔ)器管理的某能力。第三,該系統(tǒng)提供內(nèi)核級(jí)操作系統(tǒng)(或主機(jī))改變以利用各應(yīng)用所提供的信息并通過(guò)使用該信息和該應(yīng)用的存儲(chǔ)器使用中的勾連來(lái)更高效地管理存儲(chǔ)器。因而,本存儲(chǔ)器管理系統(tǒng)提供用于管理存儲(chǔ)器的新模型,它改進(jìn)了應(yīng)用主機(jī)行為并潛在地允許各應(yīng)用更高效地使用計(jì)算資源。如本文所描述的,應(yīng)用主機(jī)可指執(zhí)行應(yīng)用的操作系統(tǒng)或另一類(lèi)型的主機(jī)(例如,本身在操作系統(tǒng)或虛擬化子系統(tǒng)上運(yùn)行的應(yīng)用),如SILVERLIGHT TM、.NET所提供的運(yùn)行時(shí),本機(jī)Win32主機(jī),或VMware和虛擬PC所提供的其他主機(jī)或虛擬機(jī)。以上介紹的這三個(gè)區(qū)域中的每一個(gè)在以下各節(jié)中進(jìn)一步詳細(xì)描述。
[0020]經(jīng)修改的應(yīng)用
[0021]在許多情況下,軟件開(kāi)發(fā)人員修改軟件應(yīng)用以與存儲(chǔ)器管理系統(tǒng)進(jìn)行交互是可能的。對(duì)于主動(dòng)開(kāi)發(fā)的應(yīng)用,軟件開(kāi)發(fā)人員可選擇采用存儲(chǔ)器管理系統(tǒng)來(lái)獲得它所提供的益處,或可被該應(yīng)用在其上操作的特定平臺(tái)強(qiáng)制采用存儲(chǔ)器管理系統(tǒng)。在許多情況下,應(yīng)用可能保持該應(yīng)用不可能使用的存儲(chǔ)器的分配。例如,在用戶(hù)從該應(yīng)用的用戶(hù)界面的一部分轉(zhuǎn)移到另一部分時(shí),該應(yīng)用可保持來(lái)自先前界面的信息以防萬(wàn)一用戶(hù)重新訪(fǎng)問(wèn)該界面。當(dāng)今,該存儲(chǔ)器的需要程度在主機(jī)看來(lái)就與其他主動(dòng)使用的存儲(chǔ)器一樣。存儲(chǔ)器管理系統(tǒng)提供了供應(yīng)用將諸如此類(lèi)情形通知給主機(jī)以使得這類(lèi)存儲(chǔ)器可被降低優(yōu)先級(jí)的方式。作為響應(yīng),主機(jī)可將這類(lèi)存儲(chǔ)器選為分頁(yè)的良好候選或由于來(lái)自應(yīng)用的添加信息而作出更高效的其它存儲(chǔ)器管理決策。
[0022]在一些實(shí)施例中,存儲(chǔ)器管理系統(tǒng)提供應(yīng)用編程模型或框架,該應(yīng)用編程模型或框架使存儲(chǔ)器管理器能夠作出關(guān)于優(yōu)化運(yùn)行時(shí)期間的存儲(chǔ)器使用的智能決策。這可通過(guò)利用接收用于分配和填充被指定給應(yīng)用請(qǐng)求的任何給定存儲(chǔ)器對(duì)象的存儲(chǔ)器分配的元數(shù)據(jù)和動(dòng)作兩者的應(yīng)用編程模型/框架來(lái)完成。元數(shù)據(jù)提供應(yīng)用想要傳遞給主機(jī)的描述存儲(chǔ)器分配的性質(zhì)或目的的信息,諸如存儲(chǔ)器的優(yōu)先級(jí)、正被分配的存儲(chǔ)器的數(shù)量、從頭重新創(chuàng)建存儲(chǔ)器內(nèi)容的容易度(例如,這些內(nèi)容可以從文件加載或者可通過(guò)算法來(lái)計(jì)算)、訪(fǎng)問(wèn)頻率、應(yīng)用可能多久以后使用存儲(chǔ)器,等等。用于分配和填充存儲(chǔ)器的動(dòng)作可以向主機(jī)提供足夠的信息以使得能夠釋放存儲(chǔ)器并且隨后應(yīng)應(yīng)用的請(qǐng)求重新創(chuàng)建所釋放的存儲(chǔ)器。通過(guò)允許開(kāi)發(fā)者指定用于填充存儲(chǔ)器的元數(shù)據(jù)和動(dòng)作,存儲(chǔ)器管理系統(tǒng)能夠與應(yīng)用所指定的所需使用一致地優(yōu)化存儲(chǔ)器使用。
[0023]存儲(chǔ)器管理系統(tǒng)提供給應(yīng)用的API為應(yīng)用開(kāi)發(fā)者提供了通過(guò)應(yīng)用框架或編程模型來(lái)指定描述對(duì)存儲(chǔ)器分配的使用的元數(shù)據(jù)的手段。另外,該API允許應(yīng)用框架規(guī)定開(kāi)發(fā)者利用標(biāo)準(zhǔn)手段來(lái)通過(guò)公知的功能填充或修改存儲(chǔ)器。這允許存儲(chǔ)器管理系統(tǒng)出于性能原因不失時(shí)機(jī)地填充存儲(chǔ)器,以便在低存儲(chǔ)器可用性時(shí)段期間(即,在釋放存儲(chǔ)器的機(jī)會(huì)成本大于后來(lái)重新分配和重新填充存儲(chǔ)器的成本時(shí))釋放存儲(chǔ)器。
[0024]優(yōu)化存儲(chǔ)器使用可涵蓋本領(lǐng)域內(nèi)已知的許多技術(shù),但將一般意味著針對(duì)性能或大小而進(jìn)行優(yōu)化。在性能的情況下,優(yōu)化可能意味著在完成存儲(chǔ)器分配的手段可用的情況下允許進(jìn)行尚不需要的存儲(chǔ)器分配。這在當(dāng)前CPU使用率較低且應(yīng)用空閑的情況下可以是合乎需要的。在某些情況下,應(yīng)用分配存儲(chǔ)器的請(qǐng)求可變成主機(jī)存儲(chǔ)的筆記以供將來(lái)參考,而不在此時(shí)進(jìn)行任何分配。后來(lái),當(dāng)應(yīng)用通過(guò)API請(qǐng)求使用存儲(chǔ)器時(shí)或者在主機(jī)確定完成該請(qǐng)求的合適時(shí)間時(shí),存儲(chǔ)器管理系統(tǒng)實(shí)際分配所請(qǐng)求的存儲(chǔ)器。在大小的情況下,優(yōu)化可能意味著減少存儲(chǔ)器占用或基于當(dāng)前分配的存儲(chǔ)器和未來(lái)存儲(chǔ)器需求來(lái)作出決策。
[0025]應(yīng)用和主機(jī)之間的實(shí)際接口可采取本領(lǐng)域內(nèi)的普通技術(shù)人員將會(huì)認(rèn)識(shí)到的各種形式。例如,應(yīng)用可以為每一種類(lèi)型的分配提供分配函數(shù)并在分配請(qǐng)求中向主機(jī)傳遞針對(duì)該分配的指針或引用。當(dāng)主機(jī)準(zhǔn)備好執(zhí)行分配時(shí),主機(jī)調(diào)用所提供的分配函數(shù)并且應(yīng)用使用常規(guī)存儲(chǔ)器分配函數(shù)來(lái)創(chuàng)建存儲(chǔ)器。類(lèi)似地,應(yīng)用可傳遞對(duì)其它函數(shù)的引用以使得主機(jī)能夠請(qǐng)求釋放存儲(chǔ)器、移動(dòng)存儲(chǔ)器、將存儲(chǔ)器內(nèi)容切換至不同類(lèi)型的存儲(chǔ),等等。相同的概念還可用于分配,當(dāng)應(yīng)用向操作系統(tǒng)請(qǐng)求存儲(chǔ)器時(shí),操作系統(tǒng)可基于多個(gè)因素來(lái)延遲分配。當(dāng)操作系統(tǒng)準(zhǔn)備好分配時(shí),(用所分配的存儲(chǔ)器)回調(diào)函數(shù)引用或者引發(fā)一事件(或類(lèi)似機(jī)制)。該接口還可接收元數(shù)據(jù),諸如存儲(chǔ)器大小(其可以不同于所請(qǐng)求的大小)、優(yōu)先級(jí)、高速緩存偏好、可分頁(yè)性、如何填充存儲(chǔ)器、對(duì)存儲(chǔ)器的依賴(lài)或引用、是否更新存儲(chǔ)器,等等。在一些實(shí)施例中,系統(tǒng)提供分配從中導(dǎo)出以定義每一種類(lèi)型的存儲(chǔ)器分配的存儲(chǔ)器接口類(lèi)。該類(lèi)可包括用于檢索應(yīng)用指定分配函數(shù)的GetPointer函數(shù)或用于檢索執(zhí)行其它存儲(chǔ)器處理任務(wù)的函數(shù)的其它GetX函數(shù)。另選地或另外地,應(yīng)用可以按傳統(tǒng)方式進(jìn)行分配并且然后調(diào)用RegisterPointer函數(shù),該函數(shù)向主機(jī)注冊(cè)所分配的存儲(chǔ)器并指定要與所分配的存儲(chǔ)
器相關(guān)聯(lián)的本文描述的附加信息。以下偽代碼提供了應(yīng)用可使用的一個(gè)存儲(chǔ)器類(lèi)的示例。
[0026]
【權(quán)利要求】
1.一種計(jì)算機(jī)實(shí)現(xiàn)的用于在從各應(yīng)用接收存儲(chǔ)器優(yōu)先級(jí)信息的應(yīng)用主機(jī)中處理存儲(chǔ)器管理的方法,所述方法包括: 在應(yīng)用主機(jī)中接收710描述多個(gè)存儲(chǔ)器分配請(qǐng)求以及一個(gè)或多個(gè)應(yīng)用如何使用存儲(chǔ)器分配的信息; 檢測(cè)720指示要采取動(dòng)作以在所述主機(jī)上繼續(xù)高效地運(yùn)行各應(yīng)用的需求的至少一個(gè)存儲(chǔ)器狀況; 枚舉730接收到的分配請(qǐng)求以確定要對(duì)其采取動(dòng)作的分配; 選擇740所枚舉的分配中的要對(duì)其采取動(dòng)作的一個(gè)或多個(gè)分配;以及 對(duì)所選分配執(zhí)行750動(dòng)作以減輕所檢測(cè)到的存儲(chǔ)器狀況, 其中前述步驟由至少一個(gè)處理器來(lái)執(zhí)行。
2.如權(quán)利要求1所述的方法,其特征在于,接收描述存儲(chǔ)器分配請(qǐng)求的信息包括訪(fǎng)問(wèn)在所述主機(jī)從各應(yīng)用接收到各分配時(shí)所存儲(chǔ)的這些分配的列表或其他數(shù)據(jù)結(jié)構(gòu)。
3.如權(quán)利要求1所述的方法,其特征在于,接收描述存儲(chǔ)器分配請(qǐng)求的信息包括訪(fǎng)問(wèn)幫助所述主機(jī)確定哪些分配可被釋放、分頁(yè)、或以其他方式處理以高效地管理可用存儲(chǔ)器的優(yōu)先級(jí)或其他信息。
4.如權(quán)利要求1所述的方法,其特征在于,檢測(cè)所述存儲(chǔ)器狀況包括確定一應(yīng)用正用完了執(zhí)行所需的存儲(chǔ)器并從其他正在運(yùn)行的應(yīng)用取得存儲(chǔ)器來(lái)給予該應(yīng)用。
5.如權(quán)利要求1所述的方法,其特征在于,檢測(cè)所述存儲(chǔ)器狀況包括確定即將到來(lái)的應(yīng)用存儲(chǔ)器請(qǐng)求不能被滿(mǎn)足并且預(yù)先使得更多存儲(chǔ)器可用以在所述主機(jī)接收到所述請(qǐng)求之時(shí)滿(mǎn)足所述應(yīng)用的請(qǐng)求。
6.如權(quán)利要求1所述的方法,其特征在于,枚舉所述請(qǐng)求包括遍歷分配的列表或其他數(shù)據(jù)結(jié)構(gòu)以確定在需要被釋放的情況下能被容易地恢復(fù)的分配。
7.如權(quán)利要求1所述的方法,其特征在于,枚舉所述請(qǐng)求包括遍歷分配的列表或其他數(shù)據(jù)結(jié)構(gòu)以確定應(yīng)用不可能很快使用的分配。
8.如權(quán)利要求1所述的方法,其特征在于,選擇分配包括基于接收到的描述請(qǐng)求分配的應(yīng)用如何使用所述分配的信息來(lái)選擇分配。
9.如權(quán)利要求1所述的方法,其特征在于,選擇分配包括選擇多個(gè)分配來(lái)操作特定總大小的存儲(chǔ)器并選擇加起來(lái)達(dá)到或超過(guò)所述大小的分配。
10.如權(quán)利要求1所述的方法,其特征在于,執(zhí)行所述動(dòng)作包括釋放先前分配的存儲(chǔ)器或者將存儲(chǔ)器內(nèi)容交換到盤(pán)或其他存儲(chǔ)。
11.如權(quán)利要求1所述的方法,其特征在于,執(zhí)行所述動(dòng)作包括向所述應(yīng)用通知所述動(dòng)作,使得所述應(yīng)用能修改依賴(lài)于所述分配的行為。
12.一種用于使用從在主機(jī)上運(yùn)行的應(yīng)用接收到的分配元數(shù)據(jù)來(lái)在所述主機(jī)內(nèi)高效地管理存儲(chǔ)器的計(jì)算機(jī)系統(tǒng),所述系統(tǒng)包括: 被配置成執(zhí)行包含在以下組件內(nèi)的軟件指令的處理器和存儲(chǔ)器; 提供一個(gè)或多個(gè)應(yīng)用和所述主機(jī)之間的通信接口以協(xié)商對(duì)存儲(chǔ)器分配的使用的應(yīng)用接口組件125 ; 包括應(yīng)用在其中運(yùn)行的環(huán)境并提供對(duì)所述系統(tǒng)提供的存儲(chǔ)器管理的訪(fǎng)問(wèn)的主機(jī)組件
.140 ;從各應(yīng)用接收分配存儲(chǔ)器的請(qǐng)求的請(qǐng)求接收組件145,其中每一請(qǐng)求包括向所述主機(jī)提供描述所述應(yīng)用如何使用所分配的存儲(chǔ)器的信息的元數(shù)據(jù); 存儲(chǔ)接收到的請(qǐng)求及相關(guān)聯(lián)的元數(shù)據(jù)信息以供后續(xù)在存儲(chǔ)器管理決策制定期間使用的請(qǐng)求存儲(chǔ)組件150 ; 執(zhí)行分配存儲(chǔ)器的實(shí)際動(dòng)作以滿(mǎn)足接收到的一個(gè)或多個(gè)應(yīng)用分配請(qǐng)求的分配組件155 ;以及 執(zhí)行管理設(shè)備上的存儲(chǔ)器的動(dòng)作并訪(fǎng)問(wèn)先前存儲(chǔ)的接收到的請(qǐng)求信息以確定將受到所執(zhí)行動(dòng)作影響的一個(gè)或多個(gè)合適的存儲(chǔ)器分配的存儲(chǔ)器動(dòng)作組件160。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述應(yīng)用接口組件包括所述主機(jī)提供給所述應(yīng)用的應(yīng)用編程接口(API),所述應(yīng)用可通過(guò)所述API來(lái)提供描述所述分配的信息以允許所述主機(jī)代表所述應(yīng)用來(lái)管理存儲(chǔ)器。
14.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述應(yīng)用接口組件靜態(tài)地或動(dòng)態(tài)地分析應(yīng)用二進(jìn)制模塊以向所述主機(jī)提供存儲(chǔ)器使用行為信息。
15.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述請(qǐng)求接收組件、所述請(qǐng)求存儲(chǔ)組件、所述分配組件、以及所述存儲(chǔ)器動(dòng)作組件組成了所述主機(jī)能訪(fǎng)問(wèn)以管理應(yīng)用存儲(chǔ)器的存儲(chǔ)器管理器的各組件。
【文檔編號(hào)】G06F9/44GK103620548SQ201280030154
【公開(kāi)日】2014年3月5日 申請(qǐng)日期:2012年6月18日 優(yōu)先權(quán)日:2011年6月20日
【發(fā)明者】S·馬耶, M·豪爾, J·勞瑞斯, J·C·斯帕德林 申請(qǐng)人:微軟公司