页面大小和页表项的联系

页表项用来将逻辑地址转化为物理地址,具体实现步骤为:

  • 用逻辑地址高位的页号去页表项内索引,得到对应的物理帧(跟页一个概念)号
  • 将物理帧号与逻辑地址地位的偏移量相加得到实际的物理地址

那页表项存在哪里呢?
操作系统为了管理内存,将内存分成了若干页,每一个页都是固定大小的。而页表项也是要存在内存中的。考虑一种情况:页面大小是4KB,每个页表项是4B。我们知道页表项用来将逻辑地址转化为物理地址,所以页表项应该跟物理地址一一对应。而物理地址就是内存呐,内存是按照页来划分,所以一个页表项就是代表着一个页。现在,页表项大小是4B = 4*8 bit = 32bit,32位二进制可以表示 2 32 2^{32} 232个数,所以一共可以表示 2 32 2^{32} 232个页,这样就可以计算出内存大小为 2 32 2^{32} 232x4KB = 16TB。

实际内存没有这么大,因为页表项中还有有效位,而且页表项也占用了一部分的内存空间。

猜你喜欢

转载自blog.csdn.net/jokerxsy/article/details/106096112