基本分頁儲存管理的思想——把記憶體分為乙個個相等的小分割槽,再按照分割槽大小把程序拆分成乙個個小部分
將記憶體空間分為乙個個大小相等的分割槽(比如:每個分割槽4kb),每個分割槽就是乙個「頁框」,或稱「頁幀」、「記憶體塊」、「物理塊」。每個頁框有乙個編號,即「頁框號」(或者「記憶體塊號」、「頁幀號」、「物理塊號」)頁框號從0開始。
將使用者程序的位址空間也分為與頁框大小相等的乙個個區域,稱為「頁」或「頁面」。每個頁面也有乙個編號,即頁號。頁號也是從0開始(注:程序的最後乙個頁面可能沒有乙個頁框那麼大。因此,頁框不能太大,否則可能產生過大的內部碎片)
作業系統以頁框為單位為各個程序分配記憶體空間。程序的每個頁面分別放入乙個頁框中。也就是說,程序的頁面與記憶體的頁框有一一對應的關係。
各個頁面不必連續存放,也不必按先後順序來,可以放到不相鄰的各個頁框中。
將程序位址空間分頁之後,作業系統該如何實現邏輯位址到實體地址的轉換?
如何計算:頁面在記憶體中的起始位置: 作業系統需要用某種資料結構記錄程序各個頁面的起始位置。
比如上面的例子中:
如果每個頁面大小為2的k次方(b),用二進位制數表示邏輯位址,則末尾k位即為頁內偏移量,其餘部分就是頁號。
因此,如果讓每個頁面的大小為2的整數冪,計算機就可以很方便地得出乙個邏輯位址對應的頁號和頁內偏移量。
1.要算出邏輯位址對應的頁號
2.要知道該頁對應頁面在記憶體中的起始位址
3.要算邏輯位址在頁面內的「偏移量」
4.實體地址=頁面始址+頁內偏移量
分頁儲存管理的邏輯位址結構如下所示:
位址結構包含兩個部分:前一部分為頁號,後一部分為頁內偏移量w。在上圖所示的例子中,位址長度為32位,其中0-11位為「頁內偏移量」,或稱「頁內址」;12~31位為「頁號」。
為了能知道程序的每個頁面在記憶體中存放的位置,作業系統要為每個程序建立一張頁表
為什麼每個頁表項的長度是相同的,頁號是「隱含」的?
各頁表項會按順序連續地存放在記憶體中,如果該頁表在記憶體中存放的起始位址為x,則m號頁對應的頁表項一定是存放在記憶體位址為x+3m因此,頁表中的「頁號」可以是「隱含」的。
只需要知道頁表存放的起始位址和頁表項長度,即可找到各個頁號對應
的頁表項存放的位置
在本例中,乙個頁表項佔3b,如果程序由n個頁面,則該程序的頁表總
共會佔3n個位元組
3 1 6 基本分頁儲存管理的基本概念
非連續分配 為使用者分配的可以是一些分散的記憶體空間 分頁儲存 頁框 在記憶體中分為乙個個大小相等的分割槽,每乙個分割槽都有乙個編號,就是頁框號,從0開始 頁 頁 程序在邏輯上劃分一塊塊和頁框大小相同的分割槽,每個頁面都有乙個編號,就是頁號 作業系統以頁框為單位,為每個程序分配記憶體空間,各個頁可以...
基本分頁儲存管理方式
1 離散分配方式 連續分配方式 分割槽儲存管理 要求把作業放在乙個連續的儲存區中,因而會形成許多 碎片 固定分割槽會產生內部碎片,動態分割槽會產生外部碎片。雖然可通過 緊湊 方法將許多碎片拼接成可用的大塊空間,但需為之付出很大開銷。如果允許將乙個程序直接分散的裝入到許多不相鄰接的分割槽中,則無需再進...
儲存器管理的基本概念
位址空間 邏輯位址的集合。主存空間 實體地址的集合。實體地址 邏輯基址 16 偏移量 位址變換 將邏輯位址轉換為實體地址。又稱位址對映 重定位。位址變換分為兩類 靜態位址變換 動態位址變換 靜態位址變換 又稱靜態位址重定位,位址變換在程式裝入時一次完成,以後不再改變。特點 不需硬體支援,但程式執行時...