1. 程式人生 > >邏輯地址 與實體地址的轉換

邏輯地址 與實體地址的轉換

邏輯地址=頁號+頁內地址=p+d;

實體地址=塊號+頁內地址=f+d;

(兩個d是一樣的,頁表中儲存有p與f的對應關係)

  地址總長度位數=頁號佔位數m+頁內地址佔位數n 

  邏輯地址中的頁數=2^m         (2的 頁號位數 次冪)

  一個頁面(業內地址)大小= 2^n       (2的 頁內地址位數 次冪)

1、求實體地址(絕對地址)長度

題目:在某個分頁管理系統中,某一個作業有4個頁面(0、1、2、3),被分別裝入到主存的第3、4、6、8塊中,假定頁面和塊大小均為1024位元組,當作業在CPU上執行時,執行到其地址空間第500號處遇到一條傳送命令:mov2100,3100,請計算出MOV指令中兩個運算元的實體地址(以上地址均為十進位制)。

答案:邏輯地址2100由十進位制化為二進位制為10  00001  10100,頁內地址1024=2^10,所以後10位為頁內地址;頁面4=2^2,前兩位為頁號(左面可以接著補齊0),所以頁號為10=2,頁內地址為00001 10100=52,所以實體地址=6*1024+52=6196

同理,邏輯地址為3100的頁號為3,頁內地址為28,實體地址=8*1024+28=8220

2、地址轉化問題

題目:某虛擬儲存器的使用者程式設計空間共32個頁面,每頁為1KB,記憶體為16KB。假定某時刻一使用者頁表中已調入記憶體的頁面的頁號和物理塊號的對照表如下:頁號0、1、2、3分別對應塊號5、10、4、7。則邏輯地址0868(H)所對應的實體地址是___(H)。

答案:將邏輯地址0868(H)轉化為二進位制為0 00010  00011  01000。由於是32(=2的五次方)個頁面,所以頁號是5位。由於每頁為1KB(=2的十次方),所以頁內地址應該為10位,所以頁號為2,對應的物理塊號為4。

實體地址的前兩位是4轉化為二進位制是100,後面10位不變,是0001101000,所以是0001000001101000,轉化為十六進位制為1068(H)