页表的大小和条目数

页表的大小和条目数

假设在 32 位操作系统上,我们有 4 GB 的可用虚拟地址空间。这意味着我们需要映射 2^32 = 4,294,967,296 个地址。

如果计算在地址空间中存储所有 4,294,967,296 个地址的大小,并且每个地址为 4 个字节,则应该占用:

所有地址的内存大小 = 4,294,967,296 个地址 x 4 字节

我的问题是:

单个页表是否能够在其条目中存储那么多地址?如果是这样,那么为什么页表的大小只有 4 MB?这里

答案1

虚拟内存不是以单个字节为单位的。您可以分配、共享、映射、交换、锁定等的最小内存单位是 (通常) 4096 字节的页面。

整个地址空间(4GB)被划分为 1Mi 个这样的页面。这就是为什么整个表包含 1Mi 个条目,每个条目 4 个字节,也就是 4 MB。

相关内容