天天看點

頁式存儲和段頁式存儲的位址轉換過程

一.頁式存儲-位址轉換

通路2次記憶體,第一次是頁表,第二次是真正的實體記憶體。

二級頁表,通路3次記憶體

兩個例子的形式講解邏輯位址到實體位址的轉換:

(1)

頁式存儲和段頁式存儲的位址轉換過程
頁式存儲和段頁式存儲的位址轉換過程
頁系統頁表
頁式存儲和段頁式存儲的位址轉換過程
頁式存儲和段頁式存儲的位址轉換過程
: 頁号: 0 1 2 3 4 5 塊号: 3 5 x 4 1 2 每頁
頁式存儲和段頁式存儲的位址轉換過程
頁式存儲和段頁式存儲的位址轉換過程
頁式存儲和段頁式存儲的位址轉換過程
2KB 計算邏輯
頁式存儲和段頁式存儲的位址轉換過程
址1369
頁式存儲和段頁式存儲的位址轉換過程
實體
頁式存儲和段頁式存儲的位址轉換過程
頁式存儲和段頁式存儲的位址轉換過程
解:      
頁面大小為=2*1024,是以有:      
1369/(2*1024)=0   (取商,算出頁号)      
1369%(2*1024)=1369(取餘算出頁内位址)
3*2*1024+1369=7513      

(2)某虛拟存儲器的使用者程式設計空間共32個頁面,每頁為1KB,記憶體為16KB。假定某時刻一使用者頁表中已調入記憶體的頁面的頁号和實體塊号的對照表如下:

頁号 實體塊号
3
1 7
2 11
3 8

則邏輯位址0A5C(H)所對應的實體位址是什麼?要求:寫出主要計算過程。 

解題過程:

       首先要知道頁式存儲管理的邏輯位址分為兩部分:頁号和頁内位址。實體位址分為兩部分:

關系為:邏輯位址= 頁号+頁内位址

                     實體位址= 塊号+頁内位址;

分析題:已知:使用者程式設計空間共32個頁面,2ˆ5 = 32 得知頁号部分占5位,由“每頁為1KB”,1K=210,可知内頁位址占10位。

由“記憶體為16KB”,2^4=16得知塊号占4位。

       邏輯位址0A5C(H)所對應的二進制表示形式是:0000101001011100,後十位1001011100是頁内位址,

00010為為頁号,頁号化為十進制是2,在對照表中找到2對應的實體塊号是11,11轉換二進制是1011,即可求出實體位址為10111001011100,化成十六進制為2E5C;

即則邏輯位址0A5C(H)所對應的實體位址是2E5C;

總結:仔細研究上面的兩種方法,其實是一樣的。第二種的已經頁面大小為1KB,然後就是2的10次方,是以後面10位是偏移位址,前面的是頁号。其實用邏輯除頁面大小2的10次方,結果是一樣的。

一.段頁式存儲-位址轉換

通路3次記憶體,第一次是段表,第二次是頁表,第三次是真正實體記憶體

1.基本原理:是分頁與分段的結合,即先将擁護程式分為若幹段,再把每個段分為若幹頁,并為每個段賦予一個段名。

2.位址結構:

頁式存儲和段頁式存儲的位址轉換過程

3.位址變換:

頁式存儲和段頁式存儲的位址轉換過程

4.一個邏輯位址為:基位址x、段号s、頁号p和頁内位址d,求實體位址

(((x)+s)+p)*2^(11)+d

5.計算的方法和頁式存儲是一樣的,首先除以頁面大小,得到偏移位址,然後根據頁面的多少,和段的多少得到他們分别占的位數就能計算出段号和頁号了。

繼續閱讀