【发布时间】:2013-07-12 21:00:53
【问题描述】:
考虑一个具有 32 位逻辑地址和 4KB 页面大小的计算机系统。系统支持高达 512MB 的物理内存。
传统的单级页表中有多少条目?
Conventional single-level page table: 2^32 / 2^12 (4000) = 2^20 = 1,048,576
为什么我必须divide 2^32 / 2^12 才能得到答案?
倒排页表有多少个条目?
倒排页表需要与页框一样多的条目 在内存中。
Inverted page table: 2^29 (512mb)/ 2^12 (4000) = 2^17 = 131,072
为什么我必须divide 512mb / page size 才能获得倒排页表条目?
以下地址的页码和偏移量是多少 参考:a) 30000, b) 256, c) 0xbcf034
a) 30000(十六进制):x7530 页号:x7 = 7 偏移量:x530 = 1328
b) 256 in hex x100 页号:x0 = 0 偏移量:x100 = 256
c) 0xbcf034 页面#:xbcf = 3023 偏移量:x034 = 22
如何根据十六进制地址计算出这些页码和偏移量?
我知道答案,但我想了解为什么和如何。谁能详细解释一下:)
【问题讨论】:
-
在倒排页表中,所有的帧都被映射而不是页。因此,倒排页表中的条目由总帧数组成,这就是你正在计算的。
-
PS:4K 不是 4000 :-)
标签: memory-management operating-system offset cpu-architecture virtual-memory