每一條指令都要從邏輯位址算出實體位址——位址翻譯
<段号,段内偏移>
GDT[Global Descriptor Table] 全局描述符表
LDT[Local Descriptor Table] 局部描述符表
固定分區
可變分區——時間長了會造成記憶體碎片
段面向使用者 頁面向硬體
為了提高記憶體的使用率,頁應該小,但這樣頁表就大了。
第一種嘗試
隻存放到用到的頁
第二種嘗試
使用多級頁表——類比成書的章目錄和節目錄(分層的思想)
增加了空間的使用率,但犧牲了時間效率
是以TLB 相聯快速存儲(局部性原理),是寄存器(就是加了一層緩存)
TLB條目數在64——1024之間
原因:
程式的位址通路存在局部性(多為循環和順序結構)
空間局部性
實作虛拟記憶體就應該換入換出
換入換出實作了“大記憶體” 吧細小的記憶體整理
換出頁面算法
FIFO
LRU Least resently used最近最少使用 用過去預知未來
兩種實作方法
1——時間戳
2——将時間計數修改為是和否(Clock算法 快慢指針實作 一種近似)