我收到以下信息:
虚拟地址:32位
物理地址:30位
页面大小:8 KB
页表条目:4个字节
我正在尝试计算页面表的大小。是使用虚拟地址空间还是物理地址空间计算页表大小?
虚拟:
2 ^ 32/2 ^ 13 = 2 ^ 19页* 2 ^ 2条目大小= 2 ^ 21页面大小
物理:
2 ^ 30/2 ^ 13 = 2 ^ 17页* 2 ^ 2条目大小= 2 ^ 19页面大小
由于地址大小不同,我不确定物理内存地址空间是否会限制较大的虚拟地址空间。
鉴于问题提供的信息有限,我非常感谢有关这些方法之一的正确帮助。
答案 0 :(得分:1)
谁给了你这个问题,给了你一个没有回答的人。人们问同样的问题而没有反复回答。我很想知道消息来源。
这个问题反映了对页表结构的基本缺乏理解。
在没有系统地址空间的情况下实现页表是不可能的。该问题没有解释地址空间如何划分,因为用户和系统。这使得这个问题荒谬。
如果页面表本身是可分页的,则物理限制不会影响页面大小。
虚拟限制只是限制。页表不必(并且很少)跨越整个虚拟地址空间。虚拟地址空间只会为大小设置一个高端。
我当然希望这个问题不在教科书中。
答案 1 :(得分:1)
物理地址大小(30位)是红色鲱鱼。
如果您有32位虚拟地址,每页为8KB(2 ^ 13),那么每个虚拟地址需要2 ^(32-13)页。
页表的大小是2 ^(32-13)= 2 ^ 19页地址多个每个条目的字节数,所以:
页面大小=(2 ^ 19)* 4 = 2 MB
2 ^ 19 * 1字节是1/2 MB
编辑: 要回答您的问题,请使用虚拟地址空间。