內(nèi)存頁式存儲管理
為了支持多道程序系統(tǒng)和分時系統(tǒng),支持多個程序并發(fā)執(zhí)行,引入了分區(qū)式存儲管理,這里給大家分享一些關(guān)于內(nèi)存頁式存儲管理,希望對大家能有所幫助。
基本原理
將程序的邏輯地址空間劃分為固定大小的頁(page),而物理內(nèi)存劃分為同樣大小的頁框(page frame)。程序加載時,可將任意一頁放人內(nèi)存中任意一個頁框,這些頁框不必連續(xù),從而實現(xiàn)了離散分配。該方法需要CPU的硬件支持,來實現(xiàn)邏輯地址和物理地址之間的映射。在頁式存儲管理方式中地址結(jié)構(gòu)由兩部構(gòu)成,前一部分是頁號,后一部
頁式管理方式的優(yōu)點是:
1)沒有外碎片,每個內(nèi)碎片不超過頁大比前面所討論的幾種管理方式的最大進步是,
2)一個程序不必連續(xù)存放。
3)便于改變程序占用空間的大小(主要指隨著程序運行,動態(tài)生成的數(shù)據(jù)增多,所要求的地址空間相應(yīng)增長)。
缺點是:要求程序全部裝入內(nèi)存,沒有足夠的內(nèi)存,程序就不能執(zhí)行。
分為頁內(nèi)地址w(位移量)
頁式管理的數(shù)據(jù)結(jié)構(gòu)
在頁式系統(tǒng)中進程建立時,操作系統(tǒng)為進程中所有的頁分配頁框。當進程撤銷時收回所有分配給它的頁框。在程序的運行期間,如果允許進程動態(tài)地申請空間,操作系統(tǒng)還要為進程申請的空間分配物理頁框。操作系統(tǒng)為了完成這些功能,必須記錄系統(tǒng)內(nèi)存中實際的頁框使用情況。操作系統(tǒng)還要在進程切換時,正確地切換兩個不同的進程地址空間到物理內(nèi)存空間的映射。這就要求操作系統(tǒng)要記錄每個進程頁表的相關(guān)信息。為了完成上述的功能,—個頁式系統(tǒng)中,一般要采用如下的數(shù)據(jù)結(jié)構(gòu)。
進程頁表:完成邏輯頁號(本進程的地址空間)到物理頁面號(實際內(nèi)存空間,也叫塊號)的映射。
頁式管理地址變換
在頁式系統(tǒng)中,指令所給出的地址分為兩部分:邏輯頁號和頁內(nèi)地址。
原理:CPU中的內(nèi)存管理單元(MMU)按邏輯頁號通過查進程頁表得到物理頁框號,將物理頁框號與頁內(nèi)地址相加形成物理地址
上述過程通常由處理器的硬件直接完成,不需要軟件參與。通常,操作系統(tǒng)只需在進程切換時,把進程頁表的首地址裝入處理器特定的寄存器中即可。一般來說,頁表存儲在主存之中。這樣處理器每訪問一個在內(nèi)存中的操作數(shù),就要訪問兩次內(nèi)存:
第一次用來查找頁表將操作數(shù)的 邏輯地址變換為物理地址;
第二次完成真正的讀寫操作。
這樣做時間上耗費嚴重。為縮短查找時間,可以將頁表從內(nèi)存裝入CPU內(nèi)部的關(guān)聯(lián)存儲器(例如,快表) 中,實現(xiàn)按內(nèi)容查找。此時的地址變換過程是:在CPU給出有效地址后,由地址變換機構(gòu)自動將頁號送人快表,并將此頁號與快表中的所有頁號進行比較,而且這 種比較是同時進行的。若其中有與此相匹配的頁號,表示要訪問的頁的頁表項在快表中。于是可直接讀出該頁所對應(yīng)的物理頁號,這樣就無需訪問內(nèi)存中的頁表。由于關(guān)聯(lián)存儲器的訪問速度比內(nèi)存的訪問速度快得多。
具有快表的地址變換機構(gòu)
由于頁表是存放在內(nèi)存中的,這使CPU在每存取一個數(shù)據(jù)時,都要兩次訪問內(nèi)存。第一次是訪問內(nèi)存中的頁表,從中找到指定頁的物理塊號,再將塊號與頁內(nèi)偏移量W拼接,以形成物理地址。第二次訪問內(nèi)存時,才是從第一次所得地址中獲得所需數(shù)據(jù)(或向此地址中寫入數(shù)據(jù))。因此,采用這種方式將使計算機的處理速度降低近1/2??梢?,以此高昂代價來換取存儲器空間利用率的提高,是得不償失的。
為了提高地址變換速度,可在地址變換機構(gòu)中增設(shè)一個具有并行查尋能力的特殊高速緩沖寄存器,又稱為“聯(lián)想寄存器”(Associative Memory),或稱為“快表”,在IBM系統(tǒng)中又取名為TLB(Translation Lookaside Buffer),用以存放當前訪問的那些頁表項。此時的地址變換過程是:在CPU給出有效地址后,由地址變換機構(gòu)自動地將頁號P送入高速緩沖寄存器,并將此頁號與高速緩存中的所有頁號進行比較,若其中有與此相匹配的頁號,便表示所要訪問的頁表項在快表中。于是,可直接從快表中讀出該頁所對應(yīng)的物理塊號,并送到物理地址寄存器中。如在塊表中未找到對應(yīng)的頁表項,則還須再訪問內(nèi)存中的頁表,找到后,把從頁表項中讀出的物理塊號送地址寄存器;同時,再將此頁表項存入快表的一個寄存器單元中,亦即,重新修改快表。但如果聯(lián)想寄存器已滿,則OS必須找到一個老的且已被認為不再需要的頁表項,將它換出。右圖示出了具有快表的地址變換機構(gòu)。
內(nèi)存頁式存儲管理相關(guān)文章:
★ 讓你的電腦一點都不卡
★ 關(guān)于畢業(yè)軟件專業(yè)實習報告范文大全
★ 介紹幾個妙招加快內(nèi)存運行速度
★ 最新計算機實訓心得體會5篇
★ 大數(shù)據(jù)需要學什么課程
★ 2021年度倉庫工作計劃5篇
★ 2019it人員年終述職報告5篇
★ 2019java畢業(yè)實習報告4篇
★ 2020最新關(guān)于產(chǎn)品市場調(diào)查報告
★ 采購工作策劃方案范例5篇
本站部分文章來自網(wǎng)絡(luò)或用戶投稿。涉及到的言論觀點不代表本站立場。閱讀前請查看【免責聲明】發(fā)布者:天下,如若本篇文章侵犯了原著者的合法權(quán)益,可聯(lián)系我們進行處理。本文鏈接:http://www.256680.cn/dnxx/nczs/22764.html
上一篇:深入了解虛擬內(nèi)存
下一篇:怎樣升級安裝內(nèi)存