記憶體分段與分頁機制

2021-07-04 14:20:41 字數 1418 閱讀 3150

邏輯位址->線性位址->實體地址

8086cpu:

作業系統保護模式下的,啟用分頁機制的位址即虛擬位址,實模式下,虛擬位址和邏輯位址相同

物理記憶體劃分:幀(frame)               邏輯記憶體劃分:頁(page)

位址匯流排:intel早期cpu20位(記憶體1m);286的位址匯流排24位(記憶體64m);386的位址匯流排32位(記憶體4g

匯流排:位址匯流排、資料匯流排、控制匯流排

頁表:段寄存與頁碼對應表,如下page table

實現方式:硬體使用tlb(translation look-aside buffer翻譯後備緩衝區)+記憶體儲存

邏輯位址

= 段選擇符+段內偏移量

段選擇符中,索引號對應段描述符

段描述符存放在:

gdt(global descriptor table,全域性描述表),gdtr暫存器儲存段描述符

ldt(local descriptor 

table,本地描述表),ldtr暫存器儲存段描述符,如單個程序

段選擇符:ti=0使用gdt,ti=1使用ldt

a.層次劃分頁(hierarchical paging

b.hashed page tables 雜湊頁表

記憶體的分段 分頁機制

摘錄自 程式設計師的自我修養 1.5節 早期的計算機中,記憶體有限,在執行多個程式時有如下問題 1.位址空間不隔離 程式直接訪問物理記憶體,程式間互相影響 2.記憶體使用效率低 需要將整個程式載入記憶體,程式切換時候,在記憶體和磁碟間交換效率低下 3.程式執行位址不確定 因為直接訪問物理記憶體,使用...

linux分段分頁機制

mmu使用分段單元硬體把邏輯位址轉換為虛擬位址,再使用分頁單元硬體把虛擬位址轉換為實體地址。因為這兩部分表示乙個獨一無二的邏輯位址,虛擬位址作為這個段位址另一種形式,當然也需要這兩個部分作為轉換的 原材料。這裡涉及乙個叫做段的暫存器,它的作用是放段選擇符 識別符號 共有六種 cs 儲存指向 的段的選...

作業系統分段機制與分頁機制

首先說明一下,我們在除錯程式時看到的位址其實是邏輯位址而不是線性位址或是實體地址。cpu需要通過一些手段才可以訪問到實體地址。這個手段就是分段與分頁。那麼為什麼cpu不直接操控實體地址中?第一,為了程式執行的更安全,程式設計更容易,cpu提供了分段機制。第二,為了方便記憶體管理,無縫擴充套件儲存空間...