一、問題:某計算機系統的主存按位元組編址,邏輯地址和實體地址都是32位,其記憶體管理採用兩級頁表的分頁儲存管理方式。邏輯地址中頁號位10位,頁內偏移地址為10位。該計算機系統的兩級頁表結構如下圖所示,圖中數值均為十進位制數
1.頁目錄號的位數為多少?頁的大小為多少KB?
2.如果頁目錄項大小為4位元組,則一個頁目錄表最大為多少KB?
3.設某邏輯地址為0x00200643,其頁內偏移量是多少?該邏輯地址所對應的實體地址是多少?(用十六進位制表示)
二、參考答案
1.
頁目錄號的位數 = 邏輯地址位數 - 頁號位數 - 頁內偏移地址位數 = 32 - 10 - 10 = 12
頁大小 = 2頁內偏移地址位數 = 210 = 1024B= 1KB
2.頁目錄表大小 = 頁目錄項大小 * 2頁目錄號位數 = 4B * 212 = 4 * 4096 = 16384B = 16KB
3.
從邏輯地址0x00200643中分析得到二進位制
0000 0000 0010 0000 0000 0110 0100 0011
頁內偏移量 = 10 ,所以擷取邏輯地址的二進位制0 ~ 9位 = 10 0100 0011 轉十六進位制 = 0x243
頁號 = 10 ,所以擷取邏輯地址的二進位制10 ~ 19位 = 0000 0000 01 ,轉十六進位制 = 0x1
頁目錄號 = 12 ,所以擷取邏輯地址的二進位制20 ~ 31位 = 0000 0000 0010,轉十六進位制 = 0x2
根據頁目錄項號 = 2和頁號 = 1,查詢頁表2的1號頁,得頁框號1511
實體地址 = 頁框號 * 頁大小 +頁內偏移量 = 1511 * 1KB + 0x243 = 495616 + 0x267 = 0x00179C00 + 0x243 = 0x00179E43