假设我们有 4 GiB 的 RAM,我们使用 4 kiB 大小的页表,具有 32 位地址。
经过我的计算,我得到:
- 我们最多只能处理 2^32 个地址;
- 每个页表共有 2^20 个条目;
- 我们总共有 4 GiB/4 kiB = 1048576 页。
但我不明白的是,如果一个页表有 2^20 个条目,我们已经用这个页表覆盖了所有可能的地址。如果每个进程都有自己的页表,这怎么可能?那么应该可以在多个页表上拥有相同的物理地址,这可能会导致严重的问题,或者我错过了什么?
非常感谢您的帮助。
假设我们有 4 GiB 的 RAM,我们使用 4 kiB 大小的页表,具有 32 位地址。
经过我的计算,我得到:
但我不明白的是,如果一个页表有 2^20 个条目,我们已经用这个页表覆盖了所有可能的地址。如果每个进程都有自己的页表,这怎么可能?那么应该可以在多个页表上拥有相同的物理地址,这可能会导致严重的问题,或者我错过了什么?
非常感谢您的帮助。