- 如何计算页表大小
- 如何计算页表项大小
- 如何计算页表项位数
在计算机发展过程中, 有很多内容是逐步添加到计算机中的.
由于主存并不是可持续增大的, 人们需要考虑成本和其他一些因素, 所以人们想出了使用虚拟内存来增加存储, 一部分虚拟内存在计算机内部划分了物理地址, 另一部分虚拟内存和主存之间是需要通过虚拟接口连接, 计算机将数据暂时存储在外部的磁盘存储器中, 但是如何解决续存和主存的数据交互, 这里就用到了页表
页表和Cache-主存体系中的地址映射存储器很类似. 主要是页表项和标识位构成
页表项是一排关于主存信息的东西,比如主存的位数啊, 主存从哪里开始啊之类的
页表大小是使用 页表项的个数 * 页表项的位数(+1) 计算的
页表项个数 = 虚拟内存大小 / 页面大小
(页面大小并非是页表大小, 页表是页面内的一个映射表
页表项大小 = 主存内存大小(物理地址大小) / 页面大小
页表项位数 = log页表项大小 (eg: 页表项大小为2^10, 那么页表项位数就是10)
计算页表大小的时候通常使用页表项位数+1 表示页表项真实位数, 这一个1是标识位, 表示此处页表项生效, 也就是有主存地址对应虚拟地址
ps: 网上的一些观点不好评价,我的观点也不一定是对的, 仅提供一个思路