【问题标题】:Virtual Memory - calculate number of pages in page table虚拟内存 - 计算页表中的页数
【发布时间】:2015-08-11 12:55:15
【问题描述】:
  • 虚拟地址空间为 64 位
  • 页面大小为 64KB
  • 字大小为 4 字节

页表有多少页?

一开始我以为:

页面大小 = 64KB = 2^16bytes,所以偏移量使用 64 位中的 16 位 因此,剩下 48 位 -> 页表中有 2^48 页 (我不明白在哪里使用有关字长的信息) 但是,正确的答案是有 2^50 页,这让我很困惑..

然后我想可能页面偏移量只有14bits,因为字长是4bytes = 2^2bytes。所以页面表中确实有 2^50 个页面。

我说的对吗?我能得到更好的解释吗?

【问题讨论】:

  • 发布问题时,请在发布前验证预览。不可读的问题被回答的可能性较小。

标签: memory virtual page-tables


【解决方案1】:

每页使用 64 位中的 14 位,而不是 16 位,因为最小可寻址单元是一个 4 字节字(这有效地从所需数量中删除了 2 位)。所以偏移量还剩下 50 位。

【讨论】:

  • 你不是说 14 吗? (4 个字节是 2^2。16 - 2 = 14)
  • @ron:已修复 - 今天我的计数有点不对劲,我是在开会前输入的,没有校对。 :D
猜你喜欢
  • 2023-03-31
  • 2013-11-15
  • 1970-01-01
  • 2015-11-23
  • 1970-01-01
  • 2019-02-14
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多