i386段式記憶體管理

2021-07-09 09:46:08 字數 672 閱讀 4614

1、intel x86 cpu段式記憶體管理

1)在保護模式下改變段暫存器的功能,使其從乙個單純的基位址變成向這樣乙個資料結構的指標。

這樣,當一條訪問記憶體的指令發出乙個記憶體位址時,cpu就可以這樣來歸納出實際應該放上資料

a.根據指令的性質來確定應該使用哪乙個段暫存器,例如轉移指令中的位址在**段。

b.根據段暫存器的內容,找到相應的『位址段描述結構』。

c.從位址段描述結構中得到基位址。

d.將指令中發出的位址作為位移,與段描述結構中規定的段長度相比,看看是否越界。

e.根據指令的性質和段描述符中的訪問許可權來確定是否越權。

f.將指令中發出的位址作為位移,與基位址相加而得出實際的『實體地址』。

具體的彙編**因為懶惰就不配,暫時以腦補為主吧。

2)全域性性段描述表暫存器gdtr,區域性性段描述表暫存器ldtr.

分別可以用來指向儲存在記憶體中的一段描述結構陣列,成為段描述表。

訪問這兩個暫存器的專用指令設計成「特權指令」。

3)將段暫存器內容的低3位遮蔽掉以後與gdtr或ldtr中的基位址相加得到描述表項的起始位址。

4)段描述結構:

typedef struct

作業系統記憶體管理 簡單 頁式 段式 段頁式

一 記憶體管理的目的和功能 記憶體一直是計算機系統中寶貴而又緊俏的資源,記憶體能否被有效 合理地使用,將直接影響到作業系統的效能。此外,雖然物理記憶體的增長現在達到了n個gb,但比物理記憶體增長還快的是程式,所以無論物理記憶體如何增長,都趕不上程式增長的速度,所以作業系統如何有效的管理記憶體便顯得尤...

之一 X86段式記憶體管理與保護模式

我們說乙個cpu是16位的或32位的或64位的,指定是cpu中的alu單元 算術邏輯單元 的寬度,通常也就是資料匯流排的寬度。那麼位址匯流排呢?自然的,從程式設計的角度我們希望其與資料匯流排的寬度一致,這樣乙個位址也就是乙個指標,其與整數同寬,在進行指標運算時,直接拿整數運算指令就可了,不需要專門的...

作業系統(二)記憶體管理 頁式與段式儲存

今天沒有 因為我還沒想明白怎麼寫!因為不知道今天的 應該怎麼寫,所以決定先寫一寫記憶體分配的原理。先忽略掉教材裡面眾多有關於記憶體管理的知識點,只簡單介紹一下頁式和段式儲存兩種記憶體管理方式。為之後引入保護模式和長模式進行一下鋪墊。在我個人的觀念裡,引入記憶體管理主要有一下兩個原因 隨著cpu從開始...