作者nowar100 (抛砖引玉)
看板Grad-ProbAsk
标题Re: [理工] [OS]-台科95-资工
时间Tue Jul 21 00:32:52 2009
先谢谢您帮忙解答
根据洪兔题库
(1) 2^28 * 35 bits
他的 35 是用 32+3 算出来的,可是我觉得应该是 20+3 吧
所以第一题我跟你想的一样,我会写 2^28 * 23 bits
(2)
1. 此程式占 16 MB / 4096 B = 2^12 pages
2. virtual addr space长这样 : 12 + 16 + 12 bit
3. 一个 page table entry 占 32 bits
level 1 仅占一个 entry = 32+1 bits
level 2 有 2^12 个 entry = 2^12 * 32 bits
total = 33 bits + 2^15 Bytes
第二小题我不懂的地方在於
一个 page table entry 应该占 20 bits 吧?
还有 level 2 应该是 2^16 个 entry 吧
所以如果是我,我会写 21 bits + 2^16 * 20 bits
不过这样的话,题目的
for a running process allocated three contiguous 16 MB memory blocks
这句就没用到了
不管怎麽样还是不太懂第二小题阿 @_@"
※ 引述《gensim (...)》之铭言:
: ※ 引述《nowar100 (抛砖引玉)》之铭言:
: : 计算page table的东西
: : http://www.lib.ntust.edu.tw/tpaper/pdf/m950903.pdf
: : 想问第六题要怎麽解
: : 谢谢
: a) Block size = 4096 byte = 2^12 byte
: => offset bit = 12
: virtual page number bit = 40-12 = 28
: physical page number bit = 32-12 = 20
: the size of a page table = (2^28)*(20+3) = (2^28)*23 bit
: b) 使用2 level page table
: => virtual address 变为 p1=12bit p2=16bit offset=12bit
: 16MB/(2^12) = 2^12 Blocks
: 2^12<2^16 第一层的一个entry可以对映一个16MB
: 所以16MB需要第2层配置 2^12*(28+1) = (2^12)*29 bit
: 需要3块16MB的记忆体 所以第1层配置 3*16 = 48 bit
: 不知道对不对 麻烦会的人更正一下吧
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.93.39