注:
參考哈工大李治軍老師公開課。本小節需要之前分段與分頁為基礎
對使用者而言,分段是對記憶體的有效使用;而對於計算機而言,分頁可以提高記憶體的使用效率。作業系統需要滿足兩個方面的需求,所以就採取了段頁相結合的方式來管理記憶體。
對於使用者而言,當使用者發出乙個邏輯位址,使用者希望訪問到特定程式段的記憶體空間,而對於計算機而言,則希望使用者發出的邏輯可以通過mmu轉換成頁框號和頁內偏移量,從而直接去訪問真實的記憶體空間。
為了解決這一問題引入了虛擬記憶體(就是通過一張段表完成位址對映轉換):簡單的說就是使用者發出訪問程式段的邏輯位址《段號,段內偏移量》,通過對這一邏輯位址的運算將其轉換為訪問頁的虛擬位址《頁號,頁內偏移量》,再由mmu將其轉換為記憶體的實體地址《頁框號,頁內偏移量》。通過這種方式,使用者訪問的就是虛擬記憶體,經過兩次位址對映後,變成真實的實體地址。
圖一:段頁式定址原理
下面就以乙個真實的圖例展示這個過程:
圖二:段頁式定址示例
邏輯位址《段號,偏移》 -> 虛擬位址《頁號,偏移》 -> 實體地址《物理頁號,偏移》
作業系統記憶體管理 簡單 頁式 段式 段頁式
一 記憶體管理的目的和功能 記憶體一直是計算機系統中寶貴而又緊俏的資源,記憶體能否被有效 合理地使用,將直接影響到作業系統的效能。此外,雖然物理記憶體的增長現在達到了n個gb,但比物理記憶體增長還快的是程式,所以無論物理記憶體如何增長,都趕不上程式增長的速度,所以作業系統如何有效的管理記憶體便顯得尤...
作業系統 段頁結合的實際記憶體管理
段 頁結合 程式設計師希望用段,物理記憶體希望用頁,所以 從虛擬記憶體中割出乙個區域來給這個段,段就有了對映,但是這個虛擬記憶體不能正真的使用,需要把虛擬記憶體再對映一次,這個時候虛擬記憶體中的段分割成固定大小的頁,每一頁再去對映到物理記憶體中 段面向使用者,頁面向硬體 也就是位址翻譯 從使用者的角...
作業系統 c 實現頁式虛擬儲存管理
整體思路 先在頁表裡找邏輯位址所在的頁號,如果找不到,就發生缺頁中斷,通過先進先出演算法進行對頁的置換,將所需的頁調入記憶體中,並更新頁表。include define n 64 分配給程序最大的頁的總數 define length 10 記憶體塊的最大個數 using namespace std ...