问题
问答题
在一个32位计算机的虚拟页式存储管理系统中,怎样解决页表非常庞大的问题请给出具体解决方案(假设页面大小为4K,用户空间为2GB,每个内存块用4字节表示)。
答案
参考答案:用户空间为2GB,页面大小为4K,则页表的记录数为2GB/4K=524 288(这里采用的转换率是1G=1024M=1024×1024K)。由于每个内存块在页表里占用4个字节,页表所占内存空间为524288×4=2097152字节=2M。要减少这个空间,可以使用多级页表或反转页表。由于题目没有给出物理内存大小,反转页表的大小无法计算。如果采用多级页表,计算如下:2M的空间一共需要占用2M/4K=512个页面,顶级页表占用一页,一共可以记录1024个次级页表的页面数,这个数目已经超过页表的总页面数,因此分为两级页表即可解决问题。