專利名稱:一種支持物理存儲(chǔ)器動(dòng)態(tài)加載或卸載的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息技術(shù)領(lǐng)域,具體涉及一種支持物理存儲(chǔ)器動(dòng)態(tài)加載和卸載的方法。
背景技術(shù):
現(xiàn)有計(jì)算機(jī)物理存儲(chǔ)器的管理采用靜態(tài)編制方式,即在計(jì)算機(jī)上電自檢時(shí)檢查物理內(nèi)存的大小并將其編址到操作系統(tǒng)中,并不支持物理內(nèi)存的熱插拔。但在對(duì)服務(wù)器等一些7XM小時(shí)的計(jì)算機(jī)進(jìn)行升級(jí)時(shí),停機(jī)升級(jí)將會(huì)產(chǎn)生不必要、甚至重大的損失。存儲(chǔ)管理子系統(tǒng)是操作系統(tǒng)中最重要的組成部分之一。經(jīng)典的存儲(chǔ)管理主要面向如何高效利用物理存儲(chǔ)器,減少內(nèi)存分配碎片,加快讀寫(xiě)效率;主要的存儲(chǔ)管理方式包括1.分區(qū)存儲(chǔ)管理分區(qū)存儲(chǔ)管理又有三種不同的方式靜態(tài)分區(qū)、可變分區(qū)、可重定位分區(qū)。這種早期的邏輯管理方法有很多弊端,現(xiàn)主要用于編譯階段和簡(jiǎn)單嵌入式系統(tǒng)。2.分頁(yè)存儲(chǔ)管理分頁(yè)存儲(chǔ)管理是將一個(gè)進(jìn)程的邏輯地址空間分成若干個(gè)大小相等的片,稱為頁(yè)面或頁(yè),并為各頁(yè)加以編號(hào),從0開(kāi)始,如第0頁(yè)、第1頁(yè)等。相應(yīng)地,也把內(nèi)存空間分成與頁(yè)面相同大小的若干個(gè)存儲(chǔ)塊,稱為(物理)塊或頁(yè)框(frame),也同樣為它們加以編號(hào),如 0#塊、1#塊等等。這種管理方法主要為了解決內(nèi)存碎片問(wèn)題。3.分段存儲(chǔ)管理分段存儲(chǔ)管理方式將邏輯地址空間被劃分為若干個(gè)段,每個(gè)段定義了一組邏輯信息。主要用于解決讀寫(xiě)保護(hù)引發(fā)的效率問(wèn)題。4.段頁(yè)式存儲(chǔ)管理分段存儲(chǔ)管理方式和基本分頁(yè)存儲(chǔ)管理方式原理的結(jié)合,同時(shí)解決讀寫(xiě)保護(hù)的效率問(wèn)題和內(nèi)存碎片的問(wèn)題。5.虛擬存儲(chǔ)管理依據(jù)程序的局部性原理,虛擬存儲(chǔ)技術(shù)利用物理內(nèi)存空間和相對(duì)大得多的外部?jī)?chǔ)存器存儲(chǔ)空間相結(jié)合構(gòu)成一個(gè)遠(yuǎn)遠(yuǎn)大于實(shí)際內(nèi)存空間的虛擬存儲(chǔ)空間。主要解決線性內(nèi)存空間受物理存儲(chǔ)器限制的問(wèn)題。以上存儲(chǔ)管理方法均假定物理存儲(chǔ)器的數(shù)量已確定、連接方式已確定。在此基礎(chǔ)上實(shí)施對(duì)內(nèi)存資源的高效使用。主要管理對(duì)象是對(duì)存儲(chǔ)器的邏輯空間進(jìn)行管理,并不支持物理空間的動(dòng)態(tài)變化。而現(xiàn)代計(jì)算機(jī)系統(tǒng)的可維護(hù)性要求越來(lái)越高,物理存儲(chǔ)器的加載和卸載需要計(jì)算機(jī)執(zhí)行重新初始化的過(guò)程,因此必須停止服務(wù)以重新初始化。針對(duì)現(xiàn)代的硬件技術(shù)而言,這種停機(jī)后重新啟動(dòng)的初始化過(guò)程并不是必要的,但由于軟件算法的限制,涉及物理存儲(chǔ)器的維護(hù),仍需停機(jī)執(zhí)行重新初始化。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)中存在的技術(shù)問(wèn)題,本發(fā)明的目的在于提供一種支持物理存儲(chǔ)器動(dòng)態(tài)加載或卸載的方法,本方法允許計(jì)算機(jī)系統(tǒng)運(yùn)行時(shí)動(dòng)態(tài)地激活使用物理內(nèi)存,也可以隨時(shí)釋放和關(guān)閉特定的物理內(nèi)存,為計(jì)算機(jī)系統(tǒng)的物理內(nèi)存實(shí)現(xiàn)熱插拔提供了一種實(shí)現(xiàn)方法。本發(fā)明的技術(shù)方案為一種支持物理存儲(chǔ)器動(dòng)態(tài)加載或卸載的方法,其步驟為、1)初始化計(jì)算機(jī)的物理存儲(chǔ)器;建立數(shù)據(jù)結(jié)構(gòu)M記錄當(dāng)前可用存儲(chǔ)器總數(shù)、物理存儲(chǔ)器總數(shù)、該計(jì)算機(jī)物理存儲(chǔ)器的連接能力;2)建立一動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)A記錄物理存儲(chǔ)器頁(yè)框的占用狀態(tài)及物理屬性;3)在系統(tǒng)缺頁(yè)處理時(shí)將數(shù)據(jù)結(jié)構(gòu)A中的記錄引入系統(tǒng)頁(yè)表,實(shí)現(xiàn)由數(shù)據(jù)結(jié)構(gòu)A所記錄的存儲(chǔ)器能被系統(tǒng)使用;4)當(dāng)系統(tǒng)收到物理存儲(chǔ)器可訪問(wèn)狀態(tài)信號(hào)后,探測(cè)新連入系統(tǒng)的物理存儲(chǔ)器,根據(jù)數(shù)據(jù)結(jié)構(gòu)M執(zhí)行遍歷和新增存儲(chǔ)器的初始化,根據(jù)遍歷和初始化結(jié)果更新數(shù)據(jù)結(jié)構(gòu)A和 M,使新增存儲(chǔ)器能被當(dāng)前系統(tǒng)使用;當(dāng)系統(tǒng)收到指定區(qū)塊的物理存儲(chǔ)器釋放請(qǐng)求后,檢索數(shù)據(jù)結(jié)構(gòu)A中相應(yīng)的區(qū)塊占用狀態(tài)和物理屬性,若有不能滿足釋放條件的區(qū)塊,轉(zhuǎn)移數(shù)據(jù)至釋放條件達(dá)成;最終將滿足釋放條件的區(qū)塊在數(shù)據(jù)結(jié)構(gòu)A中的標(biāo)識(shí)恢復(fù)為未初始化狀態(tài),并更新M。進(jìn)一步的,所述數(shù)據(jù)結(jié)構(gòu)M中包含至少3個(gè)元素;其中,M
記錄可用存儲(chǔ)器總數(shù),M[l]記錄物理存儲(chǔ)器總數(shù),M[2]記錄物理存儲(chǔ)器的連接能力,M[l]等于M
加上計(jì)算機(jī)已連接但未初始化的物理存儲(chǔ)器,MD] >M[1]。進(jìn)一步的,所述數(shù)據(jù)結(jié)構(gòu)A中包含頁(yè)框所屬物理存儲(chǔ)器屬性的數(shù)據(jù)結(jié)構(gòu)或包含指向該數(shù)據(jù)結(jié)構(gòu)的指針。進(jìn)一步的,所述數(shù)據(jù)結(jié)構(gòu)A的長(zhǎng)度可變。進(jìn)一步的,所述物理存儲(chǔ)器屬性包括所屬總線、區(qū)塊、性能、功耗。進(jìn)一步的,根據(jù)物理存儲(chǔ)器的區(qū)塊屬性、或性能屬性、或功耗屬性對(duì)物理存儲(chǔ)器內(nèi)存進(jìn)行區(qū)別化操作。進(jìn)一步的,若沒(méi)有滿足釋放條件的區(qū)塊,則觸發(fā)頁(yè)交換調(diào)用,將部分頁(yè)框交換到外存儲(chǔ)設(shè)備,直至有足夠的空閑區(qū)塊或需保留頁(yè)交換完成,轉(zhuǎn)移數(shù)據(jù)至釋放條件達(dá)成。進(jìn)一步的,根據(jù)存儲(chǔ)器的物理屬性數(shù)據(jù),將分散于不同物理區(qū)塊的數(shù)據(jù)集中到一起,實(shí)現(xiàn)對(duì)某塊物理存儲(chǔ)器徹底釋放或完全占用。 進(jìn)一步的,采用塊操作指令完成物理內(nèi)存數(shù)據(jù)的轉(zhuǎn)移復(fù)制。本發(fā)明仍支持現(xiàn)有計(jì)算機(jī)的虛擬存儲(chǔ)和頁(yè)式管理算法,通過(guò)設(shè)置如下機(jī)制1.開(kāi)放編址機(jī)制,允許系統(tǒng)在加電啟動(dòng)時(shí)不初始化全部物理內(nèi)存;允許在運(yùn)行中添加和初始化新的物理內(nèi)存并納入全局編址中;允許運(yùn)行中釋放特定的物理內(nèi)存器件或模塊。2.動(dòng)態(tài)聚合機(jī)制,系統(tǒng)以物理區(qū)塊標(biāo)識(shí)作為頁(yè)表映射依據(jù),并在需要的時(shí)候批量分配和轉(zhuǎn)移區(qū)塊內(nèi)的內(nèi)容,透明地完成重新映射。3.存儲(chǔ)分配算法中加入物理屬性因子,使物理內(nèi)存的分配可以按照區(qū)塊、性能、功耗分別優(yōu)化。實(shí)現(xiàn)對(duì)物理存儲(chǔ)器按物理連接關(guān)系進(jìn)行動(dòng)態(tài)占用和釋放;任何獨(dú)立的物理存儲(chǔ)器被釋放后,都可以被物理地移出計(jì)算機(jī)系統(tǒng),或切斷能源而實(shí)現(xiàn)細(xì)粒度的能耗管理。其中開(kāi)放編址機(jī)制通過(guò)設(shè)定一組系統(tǒng)全局變量來(lái)實(shí)現(xiàn),該全局變量記錄當(dāng)前系統(tǒng)中已初始化存儲(chǔ)器的數(shù)量(可用物理存儲(chǔ)器總數(shù))、已連接但未初始化的物理存儲(chǔ)器數(shù)量(物理存儲(chǔ)器總數(shù))和最大可連接物理存儲(chǔ)器數(shù)量(系統(tǒng)物理連接能力)。動(dòng)態(tài)聚合機(jī)制通過(guò)為物理存儲(chǔ)器設(shè)定區(qū)塊標(biāo)識(shí)(與物理連接對(duì)應(yīng))和一種地址重映射算法來(lái)實(shí)現(xiàn)。該地址重映射算法主要完成按照區(qū)塊標(biāo)識(shí)完成物理存儲(chǔ)器中的內(nèi)容由源(待卸載的物理區(qū)塊)向目的(空閑的物理區(qū)塊或外部頁(yè)交換設(shè)備)復(fù)制;修改系統(tǒng)頁(yè)表以完成物理地址的重新映射。本發(fā)明中的存儲(chǔ)分配算法主要完成傳統(tǒng)存儲(chǔ)管理方法中不能實(shí)現(xiàn)的、針對(duì)物理存儲(chǔ)器特性的內(nèi)存分配。具體實(shí)現(xiàn)依據(jù)是根據(jù)物理存儲(chǔ)器的物理特征設(shè)定存儲(chǔ)器分配的優(yōu)先級(jí),使存儲(chǔ)器分配能夠考慮存儲(chǔ)器的物理區(qū)塊、性能、功耗因素,將存儲(chǔ)器的占用與物理區(qū)塊性質(zhì)關(guān)聯(lián)起來(lái),為按照物理區(qū)塊加載和釋放物理存儲(chǔ)器提供更好的效率。與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果為 本發(fā)明方法允許計(jì)算機(jī)系統(tǒng)動(dòng)態(tài)地停止或啟動(dòng)物理內(nèi)存的使用,既可以實(shí)現(xiàn)對(duì)部分存儲(chǔ)器的熱插拔維護(hù),也可以按需切斷和恢復(fù)指定物理存儲(chǔ)器的供電,實(shí)現(xiàn)系統(tǒng)功耗的深度管理。同時(shí)本發(fā)明允許計(jì)算機(jī)系統(tǒng)按存儲(chǔ)器的物理屬性有區(qū)別地動(dòng)態(tài)加載、操作及卸載一部分物理存儲(chǔ)器,增強(qiáng)計(jì)算機(jī)系統(tǒng)的可維護(hù)性和擴(kuò)展能力。
圖1示例了本發(fā)明中的系統(tǒng)物理內(nèi)存熱插拔流程圖。圖2示例本發(fā)明中的物理存儲(chǔ)器開(kāi)放編址和聚合機(jī)制的數(shù)據(jù)結(jié)構(gòu)。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明的技術(shù)內(nèi)容進(jìn)行進(jìn)一步詳細(xì)描述。本發(fā)明方法的流程如圖 1所示1.計(jì)算機(jī)初始化物理內(nèi)存時(shí),物理內(nèi)存大小以全局變量形式存在;該全局變量可以是一個(gè)整型數(shù)組M[y](見(jiàn)圖幻,其中M
記錄系統(tǒng)中可用存儲(chǔ)器總數(shù),M[l]記錄物理存儲(chǔ)器總數(shù),M[2]記錄系統(tǒng)物理連接能力。在簡(jiǎn)化系統(tǒng)中,該全局變量可以簡(jiǎn)化為一個(gè)整型變量(即僅有M
),此時(shí)系統(tǒng)的動(dòng)態(tài)物理存儲(chǔ)器加載和卸載只能在地址高端按順序執(zhí)行(不能在任意物理存儲(chǔ)區(qū)塊上執(zhí)行動(dòng)態(tài)加載和卸載,只能按順序進(jìn)行)。變量之間的關(guān)系如下M[l] = MW]+已連接但未初始化的物理存儲(chǔ)器M[2] ^ M[l]2.物理內(nèi)存映射位圖以動(dòng)態(tài)數(shù)組的方式初始化;如圖2中所示,系統(tǒng)中設(shè)置一個(gè)可變長(zhǎng)動(dòng)態(tài)數(shù)組A[x],該數(shù)組的每一個(gè)元素記錄物理存儲(chǔ)器頁(yè)框的占用狀態(tài),整個(gè)數(shù)組被稱為物理內(nèi)存映射位圖,該數(shù)組是可變長(zhǎng)數(shù)組。系統(tǒng)在初始化物理內(nèi)存時(shí),同時(shí)維護(hù)該映射位圖,以體現(xiàn)當(dāng)前系統(tǒng)中所有物理頁(yè)框的狀態(tài)(占用狀態(tài)及可訪問(wèn)狀態(tài))。這種方法使本發(fā)明能夠與傳統(tǒng)的存儲(chǔ)器管理算法兼容。3.物理內(nèi)存映射位圖上增加屬性指針或鏈表,指向物理屬性標(biāo)識(shí)數(shù)據(jù);如圖2所示,物理內(nèi)存映射位圖中的每個(gè)元素中包含一個(gè)指針P,該指針指向一個(gè)存儲(chǔ)物理存儲(chǔ)器屬性的數(shù)組結(jié)構(gòu),這一數(shù)組結(jié)構(gòu)可以初始化為固定格式、鏈表或?yàn)榭?,根?jù)存儲(chǔ)器的物理屬性復(fù)雜度確定。在簡(jiǎn)化情況下,物理存儲(chǔ)器的物理屬性可直接存儲(chǔ)于物理內(nèi)存映射位圖中,從而省略指針P。該物理屬性標(biāo)識(shí)數(shù)據(jù)的作用為具備同類物理屬性的, 可采用同一種操作算法來(lái)處理,用戶可以按需來(lái)根據(jù)速度、功耗、連接位置等任何感興趣的物理屬性來(lái)操作存儲(chǔ)器。4.需重映射的數(shù)據(jù)在物理地址上具備天然的局部連續(xù)性,用批量復(fù)制或移動(dòng)操作來(lái)提高效率;當(dāng)涉及操作的物理存儲(chǔ)器中仍有正在使用的數(shù)據(jù)時(shí),采用移動(dòng)或復(fù)制,并重映射物理地址的方式實(shí)現(xiàn)地址重定位。當(dāng)CPU指令系統(tǒng)包含塊操作指令時(shí),使用塊操作指令完成物理內(nèi)存內(nèi)容的轉(zhuǎn)移復(fù)制。在效率要求更高的系統(tǒng)中,可設(shè)置數(shù)據(jù)轉(zhuǎn)儲(chǔ)硬件來(lái)完成復(fù)制。5.系統(tǒng)缺頁(yè)處理例程中增加針對(duì)聚合機(jī)制的頁(yè)表重映射操作;在系統(tǒng)缺頁(yè)處理中將頁(yè)表狀態(tài)指針指向A[x]中相應(yīng)的元素(即引起缺頁(yè)時(shí)對(duì)應(yīng)的元素),完成本發(fā)明的物理存儲(chǔ)器狀態(tài)與傳統(tǒng)存儲(chǔ)管理器的地址映射過(guò)程。另外,當(dāng)對(duì)物理存儲(chǔ)器執(zhí)行聚合操作時(shí)(該操作將分散于不同物理區(qū)塊的存儲(chǔ)器占用集中到一起;為對(duì)某塊物理存儲(chǔ)器實(shí)現(xiàn)徹底釋放或完全占用,而做的重新整理操作,本發(fā)明稱為聚合機(jī)制。),系統(tǒng)中原有的虛擬存儲(chǔ)管理器觸發(fā)缺頁(yè)調(diào)用,調(diào)用地址重映射算法完成頁(yè)表重映射操作。6.以物理內(nèi)存器件或模塊作為新的管理單位標(biāo)識(shí)加入或移出存儲(chǔ)管理器。以上操作機(jī)制提供了動(dòng)態(tài)初始化物理存儲(chǔ)器所需的數(shù)據(jù)結(jié)構(gòu)和狀態(tài)信息,將該信息引入系統(tǒng)中原有的存儲(chǔ)管理數(shù)據(jù)中,即可實(shí)現(xiàn)后續(xù)物理存儲(chǔ)器的動(dòng)態(tài)擴(kuò)展及加載。新加入的存儲(chǔ)器被原有系統(tǒng)以新釋放的內(nèi)存看待和處理。同理,動(dòng)態(tài)卸出的物理存儲(chǔ)器被原有系統(tǒng)視為不可訪問(wèn)區(qū)域(內(nèi)存空洞)。典型流程初始系統(tǒng)上電一初始化物理內(nèi)存一建立全局變量(物理內(nèi)存大小及物理內(nèi)存映射位圖數(shù)組)一建立頁(yè)表并正常運(yùn)作;例上電,遍歷地址總線獲得已連接存儲(chǔ)器2GB,總線能力8GB。此時(shí)M
=0M[l] = 80000000(16)M[2] = 200000000(油初始化物理內(nèi)存后,M
= 80000000(16)M[l] = 80000000(16)M[2] = 200000000(油初始化內(nèi)存映射位圖,物理內(nèi)存映射位圖A[x]建立,其中χ = M[l]/物理頁(yè)框大小。 初始化值為未占用可訪問(wèn)狀態(tài)(具體狀態(tài)定義視系統(tǒng)而定,如00)。原系統(tǒng)根據(jù)按照正常流程建立系統(tǒng)初始頁(yè)表,進(jìn)入正常運(yùn)作。隨后正常訪問(wèn)觸發(fā)系統(tǒng)缺頁(yè)調(diào)用,缺頁(yè)處理例程調(diào)用本發(fā)明中的地址映射機(jī)制,替換頁(yè)表原指針指向A[x]。缺頁(yè)調(diào)用返回。系統(tǒng)進(jìn)入正常運(yùn)作。增加物理內(nèi)存可訪問(wèn)狀態(tài)信號(hào)觸發(fā)一初始化新的物理內(nèi)存一檢索物理內(nèi)存映射位圖數(shù)組尋找空洞一插入合適的內(nèi)存空洞并更新數(shù)組或一未發(fā)現(xiàn)合適的內(nèi)存空洞,擴(kuò)展內(nèi)存映射位圖數(shù)組一更新物理內(nèi)存大小的全局變量;例增加IGB物理內(nèi)存增加前M[x]數(shù)組狀態(tài)M
= 80000000(16)M[l] = 80000000(16)M[2] = 200000000(16)系統(tǒng)管理員觸發(fā)(硬件方式自動(dòng)觸發(fā)或手動(dòng)運(yùn)行觸發(fā)程序)物理存儲(chǔ)器狀態(tài)更新信號(hào),遍歷M
以外的地址空間,探測(cè)新連入系統(tǒng)的物理存儲(chǔ)器,執(zhí)行遍歷初始化,根據(jù)遍歷結(jié)果獲知新存儲(chǔ)空間大小及狀態(tài)。檢索A[x]數(shù)組,尋找合適大小的空洞,若發(fā)現(xiàn)可用空洞,根據(jù)遍歷結(jié)果更新數(shù)組相應(yīng)元素狀態(tài),若未發(fā)現(xiàn)可用空洞,擴(kuò)展A[x]數(shù)組的大小,根據(jù)遍歷結(jié)果更新擴(kuò)展后元素的狀態(tài)。 成功后更新M[x]數(shù)組狀態(tài)M
= 80000000 (16)M[l] = C0000000(16)M[2] = 200000000 (16)系統(tǒng)存儲(chǔ)器擴(kuò)展完畢,新擴(kuò)展部分的訪問(wèn)過(guò)程同上一例。釋放物理內(nèi)存管理員發(fā)出釋放請(qǐng)求一檢索物理內(nèi)存映射位圖檢查占用情況一按區(qū)塊標(biāo)識(shí)批量復(fù)制至空閑頁(yè)一重映射系統(tǒng)頁(yè)表一更新物理內(nèi)存大小全局變量一置釋放標(biāo)例移除2GB物理存儲(chǔ)器管理員觸發(fā)釋放指定區(qū)塊的物理存儲(chǔ)器,檢索A[x]中相應(yīng)的區(qū)塊狀態(tài),查詢占用情況。根據(jù)A[x]中的狀態(tài),釋放可廢棄頁(yè)框(即占用狀態(tài)為未占用的頁(yè)框),計(jì)算需保留頁(yè)框的大小。在A[x]中尋找合適大小的空閑區(qū)塊,若成功,將需保留頁(yè)框的內(nèi)容復(fù)制至空閑頁(yè)。若無(wú)合適大小空閑區(qū)塊,觸發(fā)頁(yè)交換調(diào)用,將部分頁(yè)框交換到外存儲(chǔ)設(shè)備。直至有足夠的空閑區(qū)塊或需保留頁(yè)交換完成(即區(qū)塊的釋放條件滿足)。更新A[x]中相應(yīng)的元素。更新M[x]數(shù)組狀態(tài)M
= 40000000 (16)M[l] = C0000000(16)M[2] = 200000000(油已完成釋放,尚未物理移除??呻S時(shí)重新加載。
斷開(kāi)物理存儲(chǔ)器的連接,實(shí)施電氣移除。觸發(fā)(硬件自動(dòng)或管理員手動(dòng)運(yùn)行觸發(fā)程序)物理存儲(chǔ)器狀態(tài)更新信號(hào),執(zhí)行M
以上的物理存儲(chǔ)器遍歷操作,根據(jù)遍歷結(jié)果確認(rèn)已經(jīng)完成電氣移除,更新M[x]數(shù)組狀態(tài)M
= 40000000 (16)M[l] = 40000000(油M [2] = 200000000(油物理移除過(guò)程結(jié)束。
權(quán)利要求
1.一種支持物理存儲(chǔ)器動(dòng)態(tài)加載或卸載的方法,其步驟為、1)初始化計(jì)算機(jī)的物理存儲(chǔ)器;建立數(shù)據(jù)結(jié)構(gòu)M記錄當(dāng)前可用存儲(chǔ)器總數(shù)、物理存儲(chǔ)器總數(shù)、該計(jì)算機(jī)物理存儲(chǔ)器的連接能力;2)建立一動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)A記錄物理存儲(chǔ)器頁(yè)框的占用狀態(tài)及物理屬性;3)在系統(tǒng)缺頁(yè)處理時(shí)將數(shù)據(jù)結(jié)構(gòu)A中的記錄引入系統(tǒng)頁(yè)表,實(shí)現(xiàn)由數(shù)據(jù)結(jié)構(gòu)A所記錄的存儲(chǔ)器能被系統(tǒng)使用;4)當(dāng)系統(tǒng)收到物理存儲(chǔ)器可訪問(wèn)狀態(tài)信號(hào)后,探測(cè)新連入系統(tǒng)的物理存儲(chǔ)器,根據(jù)數(shù)據(jù)結(jié)構(gòu)M執(zhí)行遍歷和新增存儲(chǔ)器的初始化,根據(jù)遍歷和初始化結(jié)果更新數(shù)據(jù)結(jié)構(gòu)A和M,使新增存儲(chǔ)器能被當(dāng)前系統(tǒng)使用;當(dāng)系統(tǒng)收到指定區(qū)塊的物理存儲(chǔ)器釋放請(qǐng)求后,檢索數(shù)據(jù)結(jié)構(gòu)A中相應(yīng)的區(qū)塊占用狀態(tài)和物理屬性,若沒(méi)有滿足釋放條件的區(qū)塊,轉(zhuǎn)移數(shù)據(jù)至釋放條件達(dá)成;最終將滿足釋放條件的區(qū)塊在數(shù)據(jù)結(jié)構(gòu)A中的標(biāo)識(shí)恢復(fù)為未初始化狀態(tài),并更新M。
2.如權(quán)利要求1所述的方法,其特征在于所述數(shù)據(jù)結(jié)構(gòu)M中包含至少3個(gè)元素;其中, M
記錄可用存儲(chǔ)器總數(shù),M[l]記錄物理存儲(chǔ)器總數(shù),M[2]記錄物理存儲(chǔ)器的連接能力, M[l]等于M
加上計(jì)算機(jī)已連接但未初始化的物理存儲(chǔ)器,M[2] >M[1]。
3.如權(quán)利要求1所述的方法,其特征在于所述數(shù)據(jù)結(jié)構(gòu)A中包含頁(yè)框所屬物理存儲(chǔ)器屬性的數(shù)據(jù)結(jié)構(gòu)或包含指向該數(shù)據(jù)結(jié)構(gòu)的指針。
4.如權(quán)利要求3所述的方法,其特征在于所述數(shù)據(jù)結(jié)構(gòu)A的長(zhǎng)度可變。
5.如權(quán)利要求3所述的方法,其特征在于所述物理存儲(chǔ)器屬性包括所屬總線、區(qū)塊、 性能、功耗。
6.如權(quán)利要求5所述的方法,其特征在于根據(jù)物理存儲(chǔ)器的區(qū)塊屬性、或性能屬性、或功耗屬性對(duì)物理存儲(chǔ)器內(nèi)存進(jìn)行區(qū)別化操作。
7.如權(quán)利要求1所述的方法,其特征在于若沒(méi)有滿足釋放條件的區(qū)塊,則觸發(fā)頁(yè)交換調(diào)用,將部分頁(yè)框交換到外存儲(chǔ)設(shè)備,直至有足夠的空閑區(qū)塊或需保留頁(yè)交換完成,轉(zhuǎn)移數(shù)據(jù)至釋放條件達(dá)成。
8.如權(quán)利要求1所述的方法,其特征在于根據(jù)存儲(chǔ)器的物理屬性數(shù)據(jù),將分散于不同物理區(qū)塊的數(shù)據(jù)集中到一起,實(shí)現(xiàn)對(duì)某塊物理存儲(chǔ)器徹底釋放或完全占用。
9.如權(quán)利要求1或7或8所述的方法,其特征在于采用塊操作指令完成物理內(nèi)存數(shù)據(jù)的轉(zhuǎn)移復(fù)制。
全文摘要
本發(fā)明公開(kāi)了一種支持物理存儲(chǔ)器動(dòng)態(tài)加載或卸載的方法,屬于信息技術(shù)領(lǐng)域。本方法為1)初始化計(jì)算機(jī)物理存儲(chǔ)器;建立數(shù)據(jù)結(jié)構(gòu)M記錄當(dāng)前可用存儲(chǔ)器總數(shù)、物理存儲(chǔ)器總數(shù)、該計(jì)算機(jī)物理存儲(chǔ)器的連接能力;2)建立一動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)A記錄物理存儲(chǔ)器頁(yè)框的占用狀態(tài)及物理屬性;3)在系統(tǒng)缺頁(yè)處理時(shí)將A中的記錄引入系統(tǒng)頁(yè)表;4)當(dāng)系統(tǒng)收到物理存儲(chǔ)器可訪問(wèn)狀態(tài)信號(hào)后,根據(jù)M執(zhí)行遍歷和新增存儲(chǔ)器的初始化,更新A和M;當(dāng)系統(tǒng)收到指定區(qū)塊的物理存儲(chǔ)器釋放請(qǐng)求后,檢索A,若沒(méi)有滿足釋放條件的區(qū)塊,轉(zhuǎn)移數(shù)據(jù)至釋放條件達(dá)成;最終將滿足釋放條件的區(qū)塊在A中的標(biāo)識(shí)恢復(fù)為未初始化狀態(tài),并更新M。本發(fā)明增強(qiáng)計(jì)算機(jī)系統(tǒng)的可維護(hù)性和擴(kuò)展能力。
文檔編號(hào)G06F12/06GK102495807SQ201110385498
公開(kāi)日2012年6月13日 申請(qǐng)日期2011年11月28日 優(yōu)先權(quán)日2010年12月23日
發(fā)明者史興國(guó) 申請(qǐng)人:中國(guó)科學(xué)院軟件研究所