国产精品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>

      基于操作系統(tǒng)反向頁表的頁遷移和復(fù)制方法

      文檔序號:6390641閱讀:174來源:國知局

      專利名稱::基于操作系統(tǒng)反向頁表的頁遷移和復(fù)制方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及計算機(jī)領(lǐng)域中并行計算機(jī)操作系統(tǒng)的內(nèi)存管理技術(shù),具體地說,涉及面向ccNUMA體系結(jié)構(gòu)的操作系統(tǒng)中的分布共享存儲管理和優(yōu)化技術(shù),特指一種基于操作系統(tǒng)反向頁表的頁遷移算法。
      背景技術(shù)
      :由于ccNUMA(CacheCoherentNon-UniformMemoryAccess)體系結(jié)構(gòu)結(jié)合了SMP系統(tǒng)的易編程性和分布式存儲系統(tǒng)的易擴(kuò)展性等優(yōu)點(diǎn),目前它已成為下一代并行計算機(jī)的主流體系結(jié)構(gòu)之一。然而,在ccNUMA系統(tǒng)中,遠(yuǎn)程訪存延遲通常遠(yuǎn)高于本地訪存延遲,因此訪存局部性的優(yōu)劣嚴(yán)重影響了系統(tǒng)的整體性能。當(dāng)前的ccNUMA系統(tǒng)大多使用了remotecache來緩存遠(yuǎn)程數(shù)據(jù),在一定程度上開發(fā)了數(shù)據(jù)的時間局部性,但由于cache容量和結(jié)構(gòu)的限制,cache容量和沖突失效使得數(shù)據(jù)的時間局部性開發(fā)受限。另外,數(shù)據(jù)的空間局部性使用remotecache并不能很好地解決,因此單純依賴ccNUMA系統(tǒng)本身硬件cache并不能妥善解決遠(yuǎn)程和本地訪問延遲不一致的問題。作為一種動態(tài)改善數(shù)據(jù)局部性的策略,操作系統(tǒng)級的頁遷移機(jī)制能夠通過將遠(yuǎn)程頁面遷移或復(fù)制到本地的方法把遠(yuǎn)程訪問變?yōu)楸镜卦L問,從而達(dá)到減少遠(yuǎn)程訪問次數(shù)、提高訪存性能的目的。在操作系統(tǒng)中可以結(jié)合頁遷移機(jī)制和內(nèi)存管理策略,盡量平衡遠(yuǎn)程和本地訪問延遲的不一致,最大程度地發(fā)揮系統(tǒng)的性能,實現(xiàn)動態(tài)訪存優(yōu)化。盡管頁遷移機(jī)制從理論上能夠優(yōu)化系統(tǒng)性能,但是現(xiàn)有的頁遷移算法并不適用于自行設(shè)計和實現(xiàn)基于不同微處理器平臺的ccNUMA系統(tǒng),其主要原因有三1)算法的實現(xiàn)同硬件平臺密切相關(guān)現(xiàn)有的面向ccNUMA系統(tǒng)的頁遷移算法大多數(shù)都依賴于特殊的硬件支持,其實現(xiàn)策略與硬件平臺的支持密不可分,因此缺乏足夠的通用性。如SGI的Origin系統(tǒng)中專門實現(xiàn)了支持頁遷移的同步總線錯誤處理機(jī)制和全局TLB刷新指令等,這些支持在其它系統(tǒng)中是沒有的。2)算法的具體實現(xiàn)缺乏參考盡管頁遷移機(jī)制的原理比較簡單,但是具體的實現(xiàn)方法卻屬于各系統(tǒng)開發(fā)商的技術(shù)機(jī)密,因此在自行開發(fā)過程中,商用ccNUMA系統(tǒng)所實現(xiàn)的頁遷移機(jī)制對我們?nèi)狈ψ銐虻膮⒖家饬x。3)算法的實現(xiàn)開銷大傳統(tǒng)頁遷移和復(fù)制算法本身的開銷較大,抵消了算法所帶來的好處,這也是現(xiàn)有算法缺乏高效性和實用性的根本原因。算法的開銷主要體現(xiàn)在兩個方面,一個是數(shù)據(jù)移動本身的開銷,它和頁面大小、移動距離以及系統(tǒng)的拓?fù)浣Y(jié)構(gòu)相關(guān);另一個是數(shù)據(jù)一致性維護(hù)的開銷,遷移一個頁后,由于源物理地址的數(shù)據(jù)是無效的,各進(jìn)程的頁表和各結(jié)點(diǎn)的TLB表中已有的這個物理頁的表項都是無效的,必須進(jìn)行額外的刷新工作。
      發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)的弊端,提出一種高效的基于操作系統(tǒng)反向頁表的頁遷移和復(fù)制方法,從而達(dá)到效率高、開銷小且通用性好的效果。本發(fā)明提出的技術(shù)方案是一種基于操作系統(tǒng)反向頁表的頁遷移和復(fù)制方法,其特征在于當(dāng)頁遷移機(jī)制得到?jīng)Q策結(jié)果后,該算法的具體步驟為①建立相應(yīng)的反向頁表數(shù)據(jù)結(jié)構(gòu),將共享同一物理頁的頁表項組織成一個反向頁表項數(shù)組,并將反向頁表數(shù)據(jù)結(jié)構(gòu)加入描述物理頁的數(shù)據(jù)結(jié)構(gòu)中;②決策結(jié)果是既不進(jìn)行遷移也不進(jìn)行復(fù)制時,算法直接退出;③當(dāng)決策結(jié)果為將頁面遷移時,按頁遷移算法分支處理;④當(dāng)決策結(jié)果為將頁面復(fù)制時,按頁復(fù)制算法分支處理;⑤兩種分支處理完畢后,均對新的反向頁表進(jìn)行維護(hù),包括為遷移或復(fù)制后的新頁建立反向頁表數(shù)據(jù)結(jié)構(gòu),用新頁的物理地址更新反向頁表數(shù)據(jù)結(jié)構(gòu)中的頁表項內(nèi)容,在遷移時還要刪除舊的反向頁表數(shù)據(jù)結(jié)構(gòu);⑥算法結(jié)束,退出。所述頁遷移,即步驟③的具體步驟包括第一步根據(jù)頁的物理地址判斷頁是否為有效的物理頁以及是否為一個臟頁。如果頁無效,則算法退出,否則繼續(xù)執(zhí)行;如果頁為臟頁,將該頁寫回磁盤,繼續(xù)執(zhí)行;第二步在遠(yuǎn)程結(jié)點(diǎn)分配一個空閑頁面,如果分配成功,則繼續(xù)執(zhí)行,否則報告錯誤信息,算法退出;第三步為源物理頁設(shè)置遷移標(biāo)志;第四步遷移頁所在的宿主結(jié)點(diǎn)向系統(tǒng)中其它結(jié)點(diǎn)發(fā)送處理器間中斷,該中斷向各個處理器通知其TLB中可能存在無效項,因此必須同時進(jìn)行刷新;第五步采用塊傳輸機(jī)制將源物理頁的內(nèi)容拷貝到遠(yuǎn)程結(jié)點(diǎn)上分配的新頁面;第六步利用反向頁表更新所有映射到源物理頁的頁表項;第七步調(diào)用操作系統(tǒng)的頁面釋放函數(shù)釋放源物理頁,同時刪除頁的反向頁表;所述的頁復(fù)制,即步驟④的具體步驟包括第一步根據(jù)頁的物理地址判斷頁是否為有效的物理頁以及是否為一個臟頁。如果頁無效,則算法退出,否則繼續(xù)執(zhí)行;如果頁為臟頁,將該頁寫回磁盤,繼續(xù)執(zhí)行;第二步在遠(yuǎn)程結(jié)點(diǎn)分配一個空閑頁面,如果分配成功,則繼續(xù)執(zhí)行,否則報告錯誤信息,算法退出;第三步查找源物理頁的反向頁表,定位需要修改的頁表項;第四步用新頁面的物理地址來更新上一步中定位的頁表項;第五步頁的宿主結(jié)點(diǎn)向系統(tǒng)中其它各個結(jié)點(diǎn)發(fā)送處理器間中斷,該中斷各個處理器通知其TLB中可能存在無效項,因此必須同時進(jìn)行刷新;第六步采用塊傳輸機(jī)制將源物理頁的內(nèi)容拷貝到遠(yuǎn)程結(jié)點(diǎn)上分配的新頁面;第七步建立或維護(hù)頁的復(fù)制副本數(shù)據(jù)結(jié)構(gòu);所述頁遷移的第三步具體包括3個內(nèi)容首先,必須為源物理頁加鎖以防止遷移過程中其它進(jìn)程對該物理頁進(jìn)行操作;其次,將源物理頁置為中毒狀態(tài);最后,通過查找頁的反向頁表,找到所有映射到頁的頁表項,為每個頁表項設(shè)置特殊標(biāo)志位,以標(biāo)志該項對應(yīng)的頁是一個遷移頁面。所述頁遷移的第三步中,還將頁表項的存在位清零,使進(jìn)程訪問源物理頁時會產(chǎn)生頁故障,另增加一類新的針對頁遷移情況的頁故障處理函數(shù);頁故障處理函數(shù)檢查故障頁的頁表項中的遷移標(biāo)志位,如果發(fā)現(xiàn)該位被置位,則表明進(jìn)程訪問的是一個正在遷移的頁,進(jìn)程睡眠等待,直到發(fā)現(xiàn)頁表項中的遷移標(biāo)志位重新被置1后才被喚醒。這時頁表項中已經(jīng)保存頁面遷移后的新的映射關(guān)系,進(jìn)程將重新進(jìn)入調(diào)度隊列并正確執(zhí)行。所述頁遷移的第六步中,具體內(nèi)容為通過查找源物理頁的反向頁表數(shù)據(jù)結(jié)構(gòu),找到所有映射到該物理頁的頁表項,修改這些頁表項的內(nèi)容,將新分配頁的物理地址填寫到新的頁表項中。為了能夠正確從頁故障處理過程中返回,還要將所有頁表項的存在位重新置1。所述頁復(fù)制第七步的具體過程為從描述源物理頁的數(shù)據(jù)結(jié)構(gòu)中引出一個復(fù)制副本數(shù)組,該數(shù)組中的每一項指向源物理頁經(jīng)頁復(fù)制后產(chǎn)生的一個副本,算法為每個副本頁置上一個特殊的復(fù)制副本標(biāo)志;若一個物理頁在系統(tǒng)中僅有一個副本,則該復(fù)制副本數(shù)組在頁初始化時置為空;對于被復(fù)制的頁,復(fù)制副本數(shù)組記錄所有副本,記錄內(nèi)容包括副本的物理頁幀號以及鏈接各副本的指針;對于復(fù)制的頁,復(fù)制副本數(shù)組則僅記錄原始副本;算法在操作系統(tǒng)的存儲訪問保護(hù)檢測過程中進(jìn)行副本一致性維護(hù);當(dāng)發(fā)現(xiàn)一個被訪問的物理頁是頁復(fù)制產(chǎn)生的副本,即該頁被設(shè)置為復(fù)制副本標(biāo)志后,如果該訪問操作是一個寫請求,則按照寫只讀頁的方式進(jìn)入頁故障中斷處理過程;在頁故障處理過程中,并不是象傳統(tǒng)的對只讀頁進(jìn)行寫操作一樣判定該訪問為非法訪問,而是調(diào)用一個副本撤銷函數(shù)來釋放復(fù)制頁的復(fù)制副本數(shù)組,以保證進(jìn)程運(yùn)行的正確性和頁數(shù)據(jù)的一致性。所述步驟①的具體步驟是在描述物理頁幀的數(shù)據(jù)結(jié)構(gòu)中增加一個記錄結(jié)構(gòu),描述該物理頁幀的所有實虛映射,然后根據(jù)物理頁幀被進(jìn)程引用情況(獨(dú)占和共享),記錄結(jié)構(gòu)可分為直接和鏈表兩類;對僅有一個進(jìn)程引用的物理頁幀,表述進(jìn)程引用該物理頁幀的頁表項的虛地址直接放在一個直接變量中;對于進(jìn)程共享的物理頁幀,存在多個頁表項,這些頁表項組織成一個數(shù)組鏈表。所述步驟⑤中,在頁遷移的情況下,需要釋放源物理頁,刪除其反向頁表,并為遷移后的新頁分配反向頁表,且把所有映射到該物理頁的物理地址寫入反向頁表數(shù)據(jù)結(jié)構(gòu)中的頁表項中;在頁復(fù)制的情況下,除了為新頁分配反向頁表數(shù)據(jù)結(jié)構(gòu)外,還應(yīng)將源物理頁的反向頁表中不必要的頁表項刪除,并將這些被刪除的頁表項增加到新頁的反向頁表中,從而使得每個物理頁的反向頁表都僅包含實際映射到該物理頁的頁表項。傳統(tǒng)的頁遷移機(jī)制的原理是,在ccNUMA硬件系統(tǒng)提供的訪問計數(shù)器支持下,記錄頁面的cache失效信息,即各個結(jié)點(diǎn)對每個頁面訪問的cache失效次數(shù)。由操作系統(tǒng)指定策略相關(guān)的一些參數(shù),通過將收集到的信息與這些參數(shù)進(jìn)行比較,決定是否進(jìn)行頁遷移或復(fù)制。本發(fā)明基于傳統(tǒng)頁遷移機(jī)制的原理,在操作系統(tǒng)級設(shè)計了一種高效的實現(xiàn)算法。其主要思想是,當(dāng)一個頁p的遠(yuǎn)程cache失效次數(shù)達(dá)到系統(tǒng)指定的閾值時,引起CPU中斷,相應(yīng)的中斷處理程序根據(jù)頁p的物理地址,查找操作系統(tǒng)中描述頁p的數(shù)據(jù)結(jié)構(gòu),通過對數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作,為頁p設(shè)置遷移或復(fù)制標(biāo)志。在決策為遷移的情況下,還要為頁p加鎖以防止寫操作。令頁p的HOME結(jié)點(diǎn)為A,令導(dǎo)致頁p失效次數(shù)達(dá)到指定閾值的遠(yuǎn)程結(jié)點(diǎn)為B。接下來,中斷處理程序調(diào)用操作系統(tǒng)的頁分配函數(shù)在結(jié)點(diǎn)B分配一個空閑頁面q,以便將頁p的內(nèi)容拷貝到遠(yuǎn)程結(jié)點(diǎn)B。分配新頁面后,由于ccNUMA系統(tǒng)中各個處理器可能存在舊的TLB表項,共享頁p的各個進(jìn)程中存在舊的頁表項,它們都指向頁p的源物理地址,而在頁p遷移或復(fù)制到結(jié)點(diǎn)B后,這些表項中的內(nèi)容可能部分或全部失效,因此在數(shù)據(jù)的真正拷貝之前,必須更新這些表項,通過建立新的映射關(guān)系來保證數(shù)據(jù)的一致性。為了實現(xiàn)表項的更新,操作系統(tǒng)必須首先正確定位所有映射到頁p的頁表項。在傳統(tǒng)的存儲管理機(jī)制中,這一過程包括遍歷每個進(jìn)程的頁表,匹配對應(yīng)的表項,是非常耗時的,特別是在多個作業(yè)同時運(yùn)行的情況下。為此,本發(fā)明提出的頁遷移/復(fù)制算法設(shè)計和實現(xiàn)了反向頁表結(jié)構(gòu)來加速頁表項的定位過程,高效實現(xiàn)物理地址到虛地址的轉(zhuǎn)換,從而減少了數(shù)據(jù)一致性維護(hù)的開銷。針對頁遷移和復(fù)制算法中的數(shù)據(jù)移動開銷,本發(fā)明采用塊傳輸機(jī)制BTE(BlockTransferEngine)來進(jìn)行頁面的拷貝,針對頁粒度的BTE通信,采用預(yù)留存儲空間、連續(xù)發(fā)送和接收,減少中斷開銷,提高通信帶寬。在頁p從結(jié)點(diǎn)A遷移到結(jié)點(diǎn)B的過程中,為了保證訪存操作的正確性,任何進(jìn)程對頁p的訪問都將被掛起,直到遷移結(jié)束。為了與現(xiàn)有的操作系統(tǒng)內(nèi)存管理模塊無縫集成,本發(fā)明將這類被掛起的訪問按照頁故障的方式進(jìn)行處理,即,將由頁遷移引起的訪問失效定義為一種新的頁故障類型,在操作系統(tǒng)的頁故障處理過程中進(jìn)行相應(yīng)的處理,其好處是自然直觀,容易集成到操作系統(tǒng)中,且不會同操作系統(tǒng)本身的存儲管理機(jī)制沖突。同現(xiàn)有的其它算法相比,本發(fā)明所述的頁遷移實現(xiàn)算法采用了反向頁表數(shù)據(jù)結(jié)構(gòu)和高效BTE塊傳輸機(jī)制的支持,解決了現(xiàn)有策略普遍存在的算法效率低、算法引起的額外開銷大的缺點(diǎn)。此外,本算法在設(shè)計和實現(xiàn)時,盡量考慮到通用性和硬件平臺無關(guān)性,解決了現(xiàn)有算法過分依賴特殊硬件和移植性差的問題,具有簡潔高效、適用范圍廣的特點(diǎn)。本算法不僅適用于各種不同的ccNUMA硬件平臺,也能方便地集成到我們自主研制的國產(chǎn)服務(wù)器操作系統(tǒng)和Linux、FreeBSD等開發(fā)源碼操作系統(tǒng)中。圖1是頁遷移機(jī)制的原理示意圖;圖2是本發(fā)明提出的頁遷移和頁復(fù)制算法流程示意圖;圖3是頁遷移具體的流程示意圖;圖4是頁復(fù)制具體的流程示意圖;圖5是ia64微處理器中當(dāng)頁在內(nèi)存時的頁表項pte格式示意圖;圖6是頁復(fù)制過程中的副本維護(hù)示意圖;圖7是反向頁表數(shù)據(jù)結(jié)構(gòu)組成示意圖;圖8是反向頁表及其映射關(guān)系示意圖;圖9是反向頁表數(shù)據(jù)結(jié)構(gòu)在本發(fā)明提出的頁遷移/復(fù)制算法中的應(yīng)用示意圖;圖10是刪除反向頁表表項的示例示意圖。具體實施例方式本發(fā)明所描述的算法目前已實現(xiàn)于自行研制的基于Intelia64平臺的ccNUMA系統(tǒng)中,因此,在介紹發(fā)明的具體實施方式時,我們將結(jié)合該系統(tǒng)進(jìn)行詳細(xì)闡述。需要指出的是,本發(fā)明并不局限于任何具體的硬件平臺和操作系統(tǒng),算法可以方便地移植到其它環(huán)境中,具有較廣泛的通用性。下面結(jié)合附圖,對本發(fā)明的具體實施做進(jìn)一步的詳細(xì)描述。圖1為頁遷移機(jī)制的原理示意圖,也是本發(fā)明的理論基礎(chǔ)。頁遷移/復(fù)制策略既可以由硬件計數(shù)器觸發(fā),也可以通過編譯指導(dǎo)的方式來觸發(fā)。在硬件訪問計數(shù)器支持下,記錄頁面的cache失效信息,即各個結(jié)點(diǎn)對某個頁面訪問的cache失效次數(shù)。操作系統(tǒng)指定策略相關(guān)的一些參數(shù),包括頁面的失效次數(shù)閾值、共享率閾值、寫頻率閾值以及遷移率閾值等。通過將收集到的頁面cache失效信息與這些閾值進(jìn)行比較,決定是否進(jìn)行頁遷移或復(fù)制。當(dāng)一個頁的遠(yuǎn)程cache失效次數(shù)達(dá)到系統(tǒng)指定的閾值時,將引起CPU中斷,中斷處理程序調(diào)用頁遷移/復(fù)制進(jìn)程,該進(jìn)程根據(jù)遷移/復(fù)制決策算法進(jìn)行相應(yīng)處理。如果某個頁的cache失效率高,判斷這個頁的共享率情況,如果共享率低,遷移率(遷移的頻率)低,則遷移這個頁;如果共享率高,對這個頁的寫頻率低且存儲空間許可,則復(fù)制這個頁。基于編譯指導(dǎo)的方式則需要編譯器根據(jù)應(yīng)用程序的具體訪存特征,作出相對比較準(zhǔn)確的遷移或復(fù)制決策。如圖2、圖3和圖4所示的頁遷移和復(fù)制方法流程示意圖可知本算法的具體步驟為①在得到?jīng)Q策結(jié)果后,建立相應(yīng)的反向頁表數(shù)據(jù)結(jié)構(gòu),將共享同一物理頁的頁表項組織成一個反向頁表項數(shù)組,并將反向頁表數(shù)據(jù)結(jié)構(gòu)加入描述物理頁的數(shù)據(jù)結(jié)構(gòu)中;②當(dāng)決策結(jié)果是既不進(jìn)行遷移也不進(jìn)行復(fù)制時,算法直接退出。③當(dāng)決策結(jié)果為將某一物理頁面(用p來表示該頁)從其HOME結(jié)點(diǎn)A遷移到遠(yuǎn)程結(jié)點(diǎn)B時,則按照頁遷移算法分支進(jìn)行處理,具體包括第一步根據(jù)頁p的物理地址判斷頁p是否為有效的物理頁,在ia64微處理器中,這一步驟是通過檢測該頁是否位于系統(tǒng)中有效的內(nèi)存區(qū)域來判定的。如果頁p無效,算法退出,否則繼續(xù)執(zhí)行。判斷頁p是否是一個dirty頁,在ia64微處理器中,一個頁的64位長的頁表項中有一位專門用于標(biāo)記該頁是否為dirty頁,如圖3所示,由PTE.d標(biāo)識。如果是,則將該頁寫回磁盤,繼續(xù)執(zhí)行。第二步在遠(yuǎn)程結(jié)點(diǎn)B分配一個空閑頁面q。在支持ccNUMA體系結(jié)構(gòu)的操作系統(tǒng)中,通常存在這種在指定結(jié)點(diǎn)分配頁面的函數(shù),如在支持ccNUMA的Linux2.6內(nèi)核版本中,該函數(shù)名為alloc_pages_node()。如果分配成功,則繼續(xù)執(zhí)行,否則報告錯誤信息,算法退出。第三步為源物理頁p設(shè)置遷移標(biāo)志。這一步驟包括三個內(nèi)容首先,必須為源物理頁p加鎖以防止遷移過程中其它進(jìn)程對該物理頁進(jìn)行操作;其次,將源物理頁置為poison狀態(tài),在UNIX類操作系統(tǒng)中都存在描述每個物理頁的數(shù)據(jù)結(jié)構(gòu),如在Linux中是structpage,在FreeBSD中則是structvm_page,通過擴(kuò)充該數(shù)據(jù)結(jié)構(gòu)中的flags域即可實現(xiàn)此功能。最后,通過查找頁p的反向頁表(有關(guān)反向頁表的內(nèi)容在下文中詳細(xì)描述),找到所有映射到頁p的頁表項pte(pagetableentry),為每一項pte設(shè)置特殊標(biāo)志位,標(biāo)志該pte對應(yīng)的頁是一個遷移頁面。以ia64微處理器為例,從圖5中可以看到,PTE{63∶53}這11位是專門預(yù)留給操作系統(tǒng)使用的,因此,我們選擇第62位(最高位在某些操作系統(tǒng)中已經(jīng)使用)來作為遷移標(biāo)志位,將其置1。另外,在修改pte時還應(yīng)將pte的present位清0,以保證遷移過程中任何進(jìn)程訪問該頁都會引起頁故障的發(fā)生,從而進(jìn)入本算法擴(kuò)充的頁故障處理程序。第四步p所在的HOME結(jié)點(diǎn)A向系統(tǒng)中其它各個結(jié)點(diǎn)發(fā)送處理器間中斷(Inter-ProcessorInterrupt,簡稱IPI),該中斷向各個處理器通知其TLB中可能存在無效項,因此必須進(jìn)行刷新。本步驟中,不同的硬件平臺可以采用不同的優(yōu)化實現(xiàn)方式,如SGI的Origin系統(tǒng)中就支持全局TLBflush指令來提高效率。而在沒有特殊支持的系統(tǒng)中,則由各個處理器自行進(jìn)行TLB的刷新工作。第五步將源物理頁p的內(nèi)容拷貝到結(jié)點(diǎn)B分配的新頁q。為了提高頁面拷貝的效率,本發(fā)明采用了塊傳輸機(jī)制來進(jìn)行快速的數(shù)據(jù)傳輸,從而減少了中斷開銷,提高了通信帶寬和算法的效率。第六步更新所有映射到頁p的pte。通過反向頁表數(shù)據(jù)結(jié)構(gòu),修改所有相關(guān)的pte,將頁q的物理地址填寫到新的pte中,為正確從頁故障處理過程中返回,還要將所有pte的present位重新置1。另外,在本步驟中還要同時建立和維護(hù)頁q的反向頁表。第七步調(diào)用操作系統(tǒng)的頁面釋放函數(shù)清除源物理頁p,同時刪除頁p的反向頁表。由于第三步中pte的present位被清0,進(jìn)程訪問源物理頁p時會產(chǎn)生頁故障,本發(fā)明提出的算法針對操作系統(tǒng)中的頁故障處理程序進(jìn)行了擴(kuò)充,在原有的幾種頁故障處理類型的基礎(chǔ)上,增加一類新的針對頁遷移情況的故障處理函數(shù)。頁故障處理程序檢查故障頁的pte的遷移標(biāo)志位,如果發(fā)現(xiàn)該位被置位,則表明進(jìn)程訪問的是一個正在遷移的頁,進(jìn)程睡眠等待,直到發(fā)現(xiàn)pte的present位重新被置為1后才被喚醒,這時pte中已經(jīng)是遷移后的頁q的映射關(guān)系,進(jìn)程重新進(jìn)入調(diào)度隊列并正確執(zhí)行。第四步中,各個結(jié)點(diǎn)收到IPI中斷后,刷新各自的cache和TLB,為了保證數(shù)據(jù)的一致性,相應(yīng)的IPI中斷處理函數(shù)需要通過特殊指令對所有結(jié)點(diǎn)的刷新過程進(jìn)行同步。④決策結(jié)果為將物理頁面p從其HOME結(jié)點(diǎn)A復(fù)制到遠(yuǎn)程結(jié)點(diǎn)B時,則按照頁復(fù)制算法分支進(jìn)行處理。頁復(fù)制算法流程類似于頁遷移算法,其不同之處是頁復(fù)制的候選頁面對象主要是多進(jìn)程共享的只讀頁。另外,由于一個物理頁有多個副本同時存在于系統(tǒng)中,因此算法的具體實現(xiàn)策略上也有所不同。第一步和第二步,即有效頁和dirty頁的判斷以及遠(yuǎn)程結(jié)點(diǎn)空閑頁面的分配,都類似于頁遷移算法,唯一不同的是,在頁復(fù)制算法中,如果發(fā)現(xiàn)源物理頁p已設(shè)置遷移標(biāo)志,則退出算法,因為一個正在遷移的頁是不適于被復(fù)制的。第三步查找源物理頁p的反向頁表,從中找到屬于結(jié)點(diǎn)B上運(yùn)行的進(jìn)程的pte表項。在頁復(fù)制過程中,由于頁p和q是同一物理頁的不同副本,因此,共享源物理頁p的某些進(jìn)程的頁表項可能在頁復(fù)制之后指向物理頁q。為了保證數(shù)據(jù)訪問的局部性,必須使得運(yùn)行于不同結(jié)點(diǎn)的進(jìn)程就近訪問同一個頁的不同副本,即距離結(jié)點(diǎn)A近的結(jié)點(diǎn)上運(yùn)行的進(jìn)程要盡量訪問頁p這個副本,而運(yùn)行在距離結(jié)點(diǎn)B近的結(jié)點(diǎn)上的進(jìn)程應(yīng)盡量訪問頁q這個副本。為此,本步驟需要結(jié)合ccNUMA操作系統(tǒng)提供的結(jié)點(diǎn)間距離等拓?fù)湫畔ⅲ梅聪蝽摫頂?shù)據(jù)結(jié)構(gòu),找到所有需要更新的頁表項?,F(xiàn)有的ccNUMA系統(tǒng)基本都以表的形式提供系統(tǒng)中處理器和內(nèi)存布局信息,本算法通過簡單的距離參數(shù)比較,定位頁p的反向頁表的一個子數(shù)組,用新頁q的物理地址更新這些數(shù)組中的每一個pte項。第四步根據(jù)系統(tǒng)中處理器和內(nèi)存布局信息表,結(jié)合反向頁表,形成系統(tǒng)中結(jié)點(diǎn)集合的一個子集,HOME結(jié)點(diǎn)A向該子集中的每個結(jié)點(diǎn)發(fā)送IPI中斷,這些結(jié)點(diǎn)收到IPI中斷后,調(diào)用相應(yīng)的flush函數(shù)更新結(jié)點(diǎn)中處理器的cache和TLB表項。第五步將源物理頁p的內(nèi)容拷貝到結(jié)點(diǎn)B分配的新頁q。和頁遷移算法相同,本發(fā)明采用塊傳輸機(jī)制來提高頁面拷貝的效率。第六步利用反向頁表更新所有映射到源物理頁的頁表項。第七步為副本頁q建立和維護(hù)反向頁表數(shù)據(jù)結(jié)構(gòu),其過程同頁遷移算法。在本發(fā)明所提出的頁復(fù)制算法中,還存在復(fù)制頁的多個副本維護(hù)問題。因為頁復(fù)制算法的候選頁一般應(yīng)為只讀頁,當(dāng)對一個副本進(jìn)行寫操作時,其它副本中就會存在不一致的數(shù)據(jù),導(dǎo)致程序無法正確執(zhí)行。本算法在操作系統(tǒng)的存儲訪問保護(hù)檢測中解決該問題。當(dāng)發(fā)現(xiàn)一個被訪問的物理頁p是頁復(fù)制產(chǎn)生的副本,即p的flags被設(shè)置為PG_REPLICA標(biāo)志后,如果該訪問操作是一個寫訪問請求,則按照寫只讀頁的方式進(jìn)入頁故障中斷處理過程。在頁故障處理過程中,并不是象傳統(tǒng)的對只讀頁進(jìn)行寫操作一樣判定該訪問為非法訪問,而是調(diào)用一個副本撤銷函數(shù)replica_free()來釋放復(fù)制頁的replica數(shù)組,以保證進(jìn)程運(yùn)行的正確性和頁數(shù)據(jù)的一致性。如圖6所示,p是原來的物理頁,q是p的復(fù)制頁,通過replica的結(jié)構(gòu)來對p、q兩個物理頁進(jìn)行不同的操作。當(dāng)對物理頁p寫時,由p中的replica項可變無效所有的副本;當(dāng)對物理頁q寫時,由q中的replica項可得到物理頁p的地址,通過p可變無效所有的副本。操作系統(tǒng)反向頁表技術(shù)是高效實現(xiàn)本發(fā)明提出的頁遷移和復(fù)制算法的一個重要基礎(chǔ)。傳統(tǒng)的操作系統(tǒng)內(nèi)核都支持頁表機(jī)制,通過頁表能夠?qū)⑻摂M地址映射到物理地址。在頁遷移機(jī)制中,由于遷移或復(fù)制的頁面可能為多個進(jìn)程共享,這種情況下,一個物理地址對應(yīng)多個虛擬地址,需要通過該物理地址查找所有映射的虛擬地址,并對相應(yīng)的頁表項進(jìn)行修改,因此,提高算法效率的關(guān)鍵之一就是迅速定位虛地址。為此,本發(fā)明設(shè)計和實現(xiàn)了專門支持頁遷移/復(fù)制算法的反向頁表數(shù)據(jù)結(jié)構(gòu),其思想是,在傳統(tǒng)頁表基礎(chǔ)上,為每個物理頁增加一個數(shù)組指針,指向映射到該物理頁的各個頁表項,形成物理地址到虛地址的反向映射。同時,為了保證正向頁表和反向頁表的一致性,在存儲資源的使用過程中除了建立相應(yīng)的反向頁表數(shù)據(jù)結(jié)構(gòu)外,還實現(xiàn)了針對反向頁表的動態(tài)維護(hù)機(jī)制,其具體實施方式如下。反向頁表數(shù)據(jù)結(jié)構(gòu)的建立首先是在操作系統(tǒng)的物理頁描述結(jié)構(gòu)中增加pte域,以Linux為例,其定義如下structpage{……union{structpte_chain*chain;pte_addr_tdirect;}pte;……}當(dāng)虛地址到物理地址的映射關(guān)系是一對一時,pte為一個直接指針(direct),直接指向使用本物理地址的唯一pte;當(dāng)虛地址到物理地址的映射關(guān)系是多對一時,則定義一個pte_chain結(jié)構(gòu)所構(gòu)成的鏈表來記錄所有使用本物理地址的pte。pte_chain數(shù)據(jù)結(jié)構(gòu)由兩個數(shù)據(jù)項組成,定義如下structpte_chain{pte_addr_tnext_and_idx;pte_addr_tptes[NRPTE];}其中,NRPTE為數(shù)組ptes的元素個數(shù),由系統(tǒng)一級cache大小決定,next_and_idx是下一個pte_chain數(shù)組的地址X和本結(jié)構(gòu)ptes數(shù)組中最高位ptes[i]的偏移Y進(jìn)行或運(yùn)算所得。圖7給出了反向頁表的結(jié)構(gòu)示意圖。當(dāng)共享某物理頁的pte數(shù)目大于NRPTE時,使用next_and_idx指向下一個pte_chain結(jié)構(gòu),如此擴(kuò)展下去。通過與cacheline的邊界對齊使structpte_chain數(shù)據(jù)結(jié)構(gòu)可以一次加載到一個cacheline中,以提高存儲訪問效率。為了提高空間使用的合理性,next_and_idx指針除包含下一個pte_chain結(jié)構(gòu)的地址信息外,還包含本pte_chain結(jié)構(gòu)中ptes數(shù)組空閑項索引信息,在分配和回收ptes數(shù)組項時,可使用空閑索引來界定空閑項和占用項,以便于快速查找。為了與系統(tǒng)正向頁表保持一致性,必須對反向頁表進(jìn)行維護(hù),簡單地說,在系統(tǒng)運(yùn)行過程中,任何一個pte表項中的物理地址發(fā)生改變時,相應(yīng)的反向頁表都需要進(jìn)行修改,以正確反映新的實虛映射關(guān)系。圖8說明了反向頁表及其映射關(guān)系。ptes[i]、ptes[j]和ptes[k]分別是指向三個不同進(jìn)程的頁表項的指針,這三個頁表項都指向同一物理頁。建立反向頁表時,在該物理頁結(jié)構(gòu)中加入pte_chain鏈表結(jié)構(gòu),在pte_chain鏈表的表項中填入共享進(jìn)程pte表項的虛擬地址,即ptes[i]、ptes[j]和ptes[k]。當(dāng)需要遷移該物理頁時,可以通過搜索其pte_chain結(jié)構(gòu),找到所有共享進(jìn)程的pte項(包括ptes[i]、ptes[j]和ptes[k]所指向的頁表項),從而為遷移后修改頁表項做好準(zhǔn)備。反向頁表的維護(hù)點(diǎn),即pte的變化點(diǎn)主要發(fā)生在頁故障中斷處理、頁面交換和頁遷移/復(fù)制過程中。主要的維護(hù)例程包括反向頁表的建立、增加和刪除,圖9為反向頁表數(shù)據(jù)結(jié)構(gòu)在本發(fā)明提出的頁遷移/復(fù)制算法中的應(yīng)用示意圖。算法被觸發(fā)后,操作系統(tǒng)內(nèi)核在分配新頁的同時分配該頁的反向頁表。然后根據(jù)源物理頁的物理地址,查詢其反向頁表,找到所映射的進(jìn)程pte項。該pte項將映射到遷移或復(fù)制后的新頁。把該新頁插入到合適的數(shù)據(jù)結(jié)構(gòu)中,修改源頁所映射的進(jìn)程頁表項,并對新頁的反向頁表進(jìn)行維護(hù)。拷貝數(shù)據(jù)到新頁后,對于頁遷移策略,還要釋放源頁,刪除其反向頁表。由于pte_chain鏈表僅僅允許頭部項有空閑區(qū),所以在反向頁表的增加和刪除時,必須保證其頭部的空閑。在增加例程中,每次增加一個新的pte元素,應(yīng)當(dāng)在頭部項的最后空閑槽中插入,如果數(shù)組已滿,則鏈出一個新的pte數(shù)組。在刪除例程中,在鏈表中查找刪除的pte元素,將它與數(shù)組頭部項對換,并隨后刪除頭部項。如圖10所示,當(dāng)刪除反向頁表中內(nèi)容為ptes[3]的表項后,需要將高位表項內(nèi)容(ptes[2])填入該空表項,保證僅僅在高位有空閑區(qū)。綜上所述,相比于傳統(tǒng)的頁遷移策略,本發(fā)明具有如下的明顯優(yōu)勢1)將頁遷移算法中涉及到的一致性維護(hù)處理過程和操作系統(tǒng)的頁故障處理結(jié)合起來,因為頁面的遷移從實質(zhì)上可以看作是一類特殊的頁故障,當(dāng)源頁遷移到目標(biāo)頁后,所有對源物理頁的訪問都會失效,直到目標(biāo)頁建立且所有數(shù)據(jù)結(jié)構(gòu)更新完畢,對失效頁面的訪問才得以繼續(xù)。這一結(jié)合具有自然直觀、移植性好的特點(diǎn),且易于無縫集成到現(xiàn)有的操作系統(tǒng)存儲管理機(jī)制中。2)將反向頁表數(shù)據(jù)結(jié)構(gòu)應(yīng)用于頁遷移和復(fù)制算法中,能夠?qū)崿F(xiàn)快速實虛轉(zhuǎn)換,迅速準(zhǔn)確地定位需要更新的頁表項,靈活地對各個表項分別操作,減少了算法引起的數(shù)據(jù)一致性維護(hù)開銷,同時,建立新的虛實映射關(guān)系只需要簡單修改所有映射到源物理頁的頁表項即可,簡化了實現(xiàn),解決了多個進(jìn)程共享遷移頁時必須遍歷整個進(jìn)程地址空間的問題,提高了算法的效率。3)采用BTE機(jī)制來實現(xiàn)頁面數(shù)據(jù)的拷貝,由于采用預(yù)留的存儲空間來進(jìn)行頁粒度數(shù)據(jù)傳輸,減少了通信中斷的次數(shù),提高了通信帶寬,降低了本算法中的數(shù)據(jù)移動開銷。4)在本發(fā)明提出的頁復(fù)制算法中,為了更好地進(jìn)行多個副本的維護(hù),本發(fā)明采用了寫操作觸發(fā)replica數(shù)組無效的技術(shù),保證了頁的多個副本的一致性和程序執(zhí)行的正確性。另外,本發(fā)明提出的算法引起的額外效果是對反向頁表數(shù)據(jù)結(jié)構(gòu)的維護(hù)(建立、增加和刪除)。這些開銷相對于頁遷移算法本身的開銷,是可以忽略不計的。權(quán)利要求1.一種基于操作系統(tǒng)反向頁表的頁遷移和復(fù)制方法,其特征在于當(dāng)頁遷移機(jī)制得到?jīng)Q策結(jié)果后,該算法的具體步驟為①建立相應(yīng)的反向頁表數(shù)據(jù)結(jié)構(gòu),將共享同一物理頁的頁表項組織成一個反向頁表項數(shù)組,并將反向頁表數(shù)據(jù)結(jié)構(gòu)加入描述物理頁的數(shù)據(jù)結(jié)構(gòu)中;②決策結(jié)果是既不進(jìn)行遷移也不進(jìn)行復(fù)制時,算法直接退出;③當(dāng)決策結(jié)果為將頁面遷移時,按頁遷移算法分支處理;④當(dāng)決策結(jié)果為將頁面復(fù)制時,按頁復(fù)制算法分支處理;⑤兩種分支處理完畢后,均對新的反向頁表進(jìn)行維護(hù),包括為遷移或復(fù)制后的新頁建立反向頁表數(shù)據(jù)結(jié)構(gòu),用新頁的物理地址更新反向頁表數(shù)據(jù)結(jié)構(gòu)中的頁表項內(nèi)容,在遷移時還要刪除舊的反向頁表數(shù)據(jù)結(jié)構(gòu);⑥算法結(jié)束,退出。2.根據(jù)權(quán)利要求1所述的基于操作系統(tǒng)反向頁表的頁遷移和復(fù)制方法,其特征在于所述步驟③的具體步驟包括第一步根據(jù)頁的物理地址判斷頁是否為有效的物理頁以及是否為一個臟頁。如果頁無效,則算法退出,否則繼續(xù)執(zhí)行;如果頁為臟頁,將該頁寫回磁盤,繼續(xù)執(zhí)行;第二步在遠(yuǎn)程結(jié)點(diǎn)分配一個空閑頁面,如果分配成功,則繼續(xù)執(zhí)行,否則報告錯誤信息,算法退出;第三步為源物理頁設(shè)置遷移標(biāo)志;第四步遷移頁所在的宿主結(jié)點(diǎn)向系統(tǒng)中其它結(jié)點(diǎn)發(fā)送處理器間中斷,該中斷向各個處理器通知其TLB中可能存在無效項,因此必須同時進(jìn)行刷新;第五步采用塊傳輸機(jī)制將源物理頁的內(nèi)容拷貝到遠(yuǎn)程結(jié)點(diǎn)上分配的新頁面;第六步利用反向頁表更新所有映射到源物理頁的頁表項;第七步調(diào)用操作系統(tǒng)的頁面釋放函數(shù)釋放源物理頁,同時刪除頁的反向頁表;3.根據(jù)權(quán)利要求1所述的基于操作系統(tǒng)反向頁表的頁遷移和復(fù)制方法,其特征在于所述的步驟④的具體步驟包括第一步根據(jù)頁的物理地址判斷頁是否為有效的物理頁以及是否為一個臟頁。如果頁無效,則算法退出,否則繼續(xù)執(zhí)行;如果頁為臟頁,將該頁寫回磁盤,繼續(xù)執(zhí)行;第二步在遠(yuǎn)程結(jié)點(diǎn)分配一個空閑頁面,如果分配成功,則繼續(xù)執(zhí)行,否則報告錯誤信息,算法退出;第三步查找源物理頁的反向頁表,定位需要修改的頁表項;第四步用新頁面的物理地址來更新上一步中定位的頁表項;第五步頁的宿主結(jié)點(diǎn)向系統(tǒng)中其它各個結(jié)點(diǎn)發(fā)送處理器間中斷,該中斷各個處理器通知其TLB中可能存在無效項,因此必須同時進(jìn)行刷新;第六步采用塊傳輸機(jī)制將源物理頁的內(nèi)容拷貝到遠(yuǎn)程結(jié)點(diǎn)上分配的新頁面;第七步建立或維護(hù)頁的復(fù)制副本數(shù)據(jù)結(jié)構(gòu);4.根據(jù)權(quán)利要求2所述的基于操作系統(tǒng)反向頁表的頁遷移和復(fù)制方法,其特征在于所述的第三步具體包括3個內(nèi)容首先,必須為源物理頁加鎖以防止遷移過程中其它進(jìn)程對該物理頁進(jìn)行操作;其次,將源物理頁置為中毒狀態(tài);最后,通過查找頁的反向頁表,找到所有映射到頁的頁表項,為每個頁表項設(shè)置特殊標(biāo)志位,以標(biāo)志該項對應(yīng)的頁是一個遷移頁面。5.根據(jù)權(quán)利要求2所述的基于操作系統(tǒng)反向頁表的頁遷移和復(fù)制方法,其特征在于所述的第三步中,還需將頁表項的存在位清零,使進(jìn)程訪問源物理頁時會產(chǎn)生頁故障,另增加一類新的針對頁遷移情況的頁故障處理函數(shù);頁故障處理函數(shù)檢查故障頁的頁表項中的遷移標(biāo)志位,如果發(fā)現(xiàn)該位被置位,則表明進(jìn)程訪問的是一個正在遷移的頁,進(jìn)程睡眠等待,直到發(fā)現(xiàn)頁表項中的遷移標(biāo)志位重新被置1后才被喚醒。這時頁表項中已經(jīng)保存頁面遷移后的新的映射關(guān)系,進(jìn)程將重新進(jìn)入調(diào)度隊列并正確執(zhí)行。6.根據(jù)權(quán)利要求2所述的基于操作系統(tǒng)反向頁表的頁遷移和復(fù)制方法,其特征在于所述的第六步中,具體內(nèi)容為通過查找源物理頁的反向頁表數(shù)據(jù)結(jié)構(gòu),找到所有映射到該物理頁的頁表項,修改這些頁表項的內(nèi)容,將新分配頁的物理地址填寫到新的頁表項中。為了能夠正確從頁故障處理過程中返回,還要將所有頁表項的存在位重新置1。7.根據(jù)權(quán)利要求3所述的基于操作系統(tǒng)反向頁表的頁遷移和復(fù)制方法,其特征在于所述第七步的具體過程為從描述源物理頁的數(shù)據(jù)結(jié)構(gòu)中引出一個復(fù)制副本數(shù)組,該數(shù)組中的每一項指向源物理頁經(jīng)頁復(fù)制后產(chǎn)生的一個副本,算法為每個副本頁置上一個特殊的復(fù)制副本標(biāo)志;若一個物理頁在系統(tǒng)中僅有一個副本,則該復(fù)制副本數(shù)組在頁初始化時置為空;對于被復(fù)制的頁,復(fù)制副本數(shù)組記錄所有副本,記錄內(nèi)容包括副本的物理頁幀號以及鏈接各副本的指針;對于復(fù)制的頁,復(fù)制副本數(shù)組則僅記錄原始副本;算法在操作系統(tǒng)的存儲訪問保護(hù)檢測過程中進(jìn)行副本一致性維護(hù);當(dāng)發(fā)現(xiàn)一個被訪問的物理頁是頁復(fù)制產(chǎn)生的副本,即該頁被設(shè)置為復(fù)制副本標(biāo)志后,如果該訪問操作是一個寫請求,則按照寫只讀頁的方式進(jìn)入頁故障中斷處理過程;在頁故障處理過程中,并不是象傳統(tǒng)的對只讀頁進(jìn)行寫操作一樣判定該訪問為非法訪問,而是調(diào)用一個副本撤銷函數(shù)來釋放復(fù)制頁的復(fù)制副本數(shù)組,以保證進(jìn)程運(yùn)行的正確性和頁數(shù)據(jù)的一致性。8.根據(jù)權(quán)利要求1所述的基于操作系統(tǒng)反向頁表的頁遷移和復(fù)制方法,其特征在于所述步驟①的具體步驟是在描述物理頁幀的數(shù)據(jù)結(jié)構(gòu)中增加一個記錄結(jié)構(gòu),描述該物理頁幀的所有實虛映射,然后根據(jù)物理頁幀被進(jìn)程引用情況(獨(dú)占和共享),記錄結(jié)構(gòu)可分為直接和鏈表兩類;對僅有一個進(jìn)程引用的物理頁幀,表述進(jìn)程引用該物理頁幀的頁表項的虛地址直接放在一個直接變量中;對于進(jìn)程共享的物理頁幀,存在多個頁表項,這些頁表項組織成一個數(shù)組鏈表。9.根據(jù)權(quán)利要求1所述的基于操作系統(tǒng)反向頁表的頁遷移和復(fù)制方法,其特征在于所述步驟⑤中,在頁遷移的情況下,需要釋放源物理頁,刪除其反向頁表,并為遷移后的新頁分配反向頁表,且把所有映射到該物理頁的物理地址寫入反向頁表數(shù)據(jù)結(jié)構(gòu)中的頁表項中;在頁復(fù)制的情況下,除了為新頁分配反向頁表數(shù)據(jù)結(jié)構(gòu)外,還應(yīng)將源物理頁的反向頁表中不必要的頁表項刪除,并將這些被刪除的頁表項增加到新頁的反向頁表中,從而使得每個物理頁的反向頁表都僅包含實際映射到該物理頁的頁表項。全文摘要本發(fā)明公開了一種基于操作系統(tǒng)反向頁表的頁遷移和復(fù)制方法,將操作系統(tǒng)內(nèi)核反向頁表數(shù)據(jù)結(jié)構(gòu)應(yīng)用于頁遷移和頁復(fù)制算法中,快速實現(xiàn)物理地址到虛擬地址的轉(zhuǎn)換,迅速準(zhǔn)確地定位頁遷移和復(fù)制算法中需要更新的進(jìn)程頁表項,支持對這些頁表項的靈活操作,從而解決了多個進(jìn)程共享遷移頁時必須遍歷整個進(jìn)程地址空間的問題,提高了頁遷移和復(fù)制算法的效率,降低了算法引起的數(shù)據(jù)一致性維護(hù)開銷。同時,建立新的物理地址到虛擬地址的映射關(guān)系只需要簡單修改所有映射到源物理頁的頁表項即可,簡化了算法的實現(xiàn)。文檔編號G06F12/08GK1560746SQ20041002293公開日2005年1月5日申請日期2004年2月27日優(yōu)先權(quán)日2004年2月27日發(fā)明者戴華東,盧凱,秦瑩申請人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1