看板 Grad-ProbAsk 關於我們 聯絡資訊
※ 引述《ken1325 (優質水瓶男)》之銘言: : Virtual address = 32 bits, page size=4k bytes : and a page table entry occupies 4 bytes. : How many pages should the OS allocate for the page tables of a 12M byte : process under the following paging mechanisms? : (1) one-level paging : (2) two-level paging(assuming that the number of entries in a first-level : page table is the same as that in a second-level page table) : 請問這兩題要怎麼算? : 題目問有幾個pages,是指page table的entry有幾個嗎? : 還是問有幾個page table? (1) 12M/4K = 3K, 3K*4/4K = 3(page) 12M是process大小 4K是1個page大小, 3K是需要的page數, 4是1個physical page number(這是題目給的page table entry (2) 紅字的地方有誤 (2*1024+2*1024*3)/4K=4 第1個2是1st level的1個entry所佔的空間(題目給的4切一半 第1個1024是1st 整張page table的entry數 第2個2是2nd level的1個entry所佔的空間(題目給的4切一半 3是這個process需要3K個page, 所以需要3張2nd level的page table 最後的4K就是一張page table的大小 答案就是4張page table (4*1024+3*4*1024)/4K = 4 第一層的1024個entry加上第二層3張1024個entry的page table 感謝A4P8T6X9大大指正 ---題外話 減少page table size其中一個技巧就是使用分層的page table 我2層的觀念也不清楚 問google結果發現以前有人問過XD http://www.ptt.cc/bbs/Grad-ProbAsk/M.1262966038.A.37B.html 感謝原po提問讓我跟兩層的結緣 我自以為我跟他很熟的說(誤) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.235.248.218
A4P8T6X9:不懂為什麼要切一半,他就是要三個LEVEL2,跟一個LEVEL1 12/23 22:58
A4P8T6X9:來指向那三個LEVEL2,LEVEL1只有用3行而已。 12/23 22:58
int5566:雖然只有用3個entry但是還是要切空間給他 12/24 10:20
int5566:我一開始也覺得不用,但是答案是4所以我就順著答案算了 12/24 10:21
A4P8T6X9:要切阿,所以答案是3個LEVEL2跟一個LEVEL1,除2就不知道 12/24 11:20
A4P8T6X9:為什麼要除2了。 12/24 11:20
int5566:Physical page number的20bits分10bits在1st,10bits在2nd 12/24 13:25
int5566:打錯,是4byte一半在1st一半在2nd所以是2byte和2byte 12/24 13:28
int5566:我有說錯拜託指正我感謝 12/24 13:28
int5566:其實我有點不明白的是VA是32bits,page offset是12bits,那 12/24 13:35
int5566:爲什麼entry是4bytes這樣PA的範圍豈不是比VA大 12/24 13:35
int5566:說真的我不太確定我在算什麼...只是套我看到的答案... 12/24 13:36
A4P8T6X9:沒有一半給1一半給2的用法,且entry大小跟pa va也沒什麼 12/24 13:54
A4P8T6X9:關係,entry只是需要進位到以word為單位而已,事實上實 12/24 13:54
A4P8T6X9:際的physical page number,可能很小。 12/24 13:54
ken1325:3Q 12/24 15:39
int5566:感謝指正,我回家有電腦再修文 12/24 17:33
※ 編輯: int5566 來自: 36.235.248.218 (12/24 21:33)