1. 程式人生 > >段選擇符

段選擇符

線性基 標識 不同 描述 保存 存在 偏移量 24* 線性

邏輯地址到線性地址:

邏輯地址 = 段標識符(或者叫段選擇符)16位 + 偏移量 32位

段標識符 = index + tl + rpl

其中,cpu中的段寄存器只保存段標識符,根據其中的tl 確定段描述符在GDT還是LDT中,從不同的寄存器獲取線性基地址,再加上index*8就得到了段描述符的地址,從段描述符中,取出base字段,再加上邏輯地址中的偏移量,就得到線性地址。

問題是:偏移量存哪裏?

線性地址到物理地址:

內存分頁:將內存按照固定大小(比如4KB)分成多個頁,線性地址轉換成邏輯地址,要通過轉換表

如果不通過轉換表,那麽4KB一頁,4GB就是1024*1024頁,每頁的首地址用四個字節表示,就是4B*1024*1024 = 4MB的空間來表示首地址(可以看出是一本目錄,從第一頁到最後一頁的頁碼都保存在目錄裏,目錄本身就會很厚)。

如果用二級模式轉換,10+10+12的話 形成跳躍的,樹級的地址表示,可以表示2的32次方個線性地址。

段選擇符