现向我提供下列资料:
虚拟地址: 32位
物理地址: 30位
页面大小:8KB
页表条目:4字节
我正在试图计算页面表的大小。是否使用虚拟地址空间或物理地址空间计算页表大小?
虚拟:
2^32 / 2^13 = 2^19页* 2^2条目大小= 2^21页表大小
实物:
2^30 / 2^13 = 2^17页* 2^2条目大小= 2^19页表大小
由于地址大小的差异,我不确定物理内存地址空间是否会限制较大的虚拟地址空间。
鉴于问题提供的信息有限,我非常感谢这些方法中的一种是正确的。
发布于 2014-12-06 00:35:41
无论是谁给了你这个问题,都给了你一个没有答案的。人们问同样的问题,却没有答案。我很想知道消息来源。
这个问题反映了对页表结构的根本缺乏了解。
如果没有系统地址空间,就不可能实现页面表。这个问题没有解释地址空间是如何划分的,因为用户和系统。这使得这个问题毫无意义。
如果页表本身是可分页的,则物理限制不会影响页表的大小。
虚拟的极限就是极限。页表不必(罕见地)跨越整个虚拟地址空间。虚拟地址空间将只为大小设置一个高端。
我当然希望这个问题不会出现在教科书里。
发布于 2015-04-29 15:06:03
物理地址大小(30位)是一种红鲱鱼。
如果您有32位虚拟地址,且每页为8KB (2^13),则需要2^(32-13)页来存储每个虚拟地址。
页表的大小为2^(32-13) = 2^19页地址,由每个条目的字节数组成,因此:
页表大小= (2^19)*4 =2MB
2^19 *1字节为1/2MB
编辑:要回答你的问题,你使用虚拟地址空间。
https://stackoverflow.com/questions/27301056
复制相似问题