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