Ani*_*K K 37 memory paging operating-system virtual-memory page-tables
我试图了解多级页表如何节省内存.根据我的理解,多级页表总共消耗比单级页表更多的内存.
示例:考虑页面大小为64KB且32位处理器的内存系统.页表中的每个条目都是4个字节.
单级页表:表示页面偏移需要16(2 ^ 16 = 64KB)位.所以休息16位用于索引到页表.所以
*页面大小= 2 ^ 16(页数)*4字节(每页表项的大小)= 2 ^ 18字节*
多级页表:在两级页表的情况下,让我们使用前10个最高位来索引到第一级页表.接下来10位索引到第二级页表,其具有页码到帧号映射.其余12位表示页面偏移量.
第二级页表的大小= 2 ^ 10(条目数)*4字节(每个条目的大小)= 4 KB
所有二级页表的总大小= 2 ^ 10(二级页表的数量)*4KB(每个二级页表的大小)= 4 MB
第一级页表的大小= 2 ^ 10(条目数)*(10/8)字节(每个条目的大小)= 1.25 KB
存储第一级和第二级页表所需的总内存= 4 MB + 1.25 KB
因此我们需要更多内存来存储多级页表.
如果是这种情况,多级页表如何节省内存空间?
小智 36
访问任何数据所需的空间是2 ^ 20*4bytes = 4MB
在您讨论的2级案例中,您需要第一级页面表,然后是第二级中的2 ^ 10页表.那么,1级大小= 2 ^ 10*4bytes = 4KB第2级我们只需要2 ^ 10个pagetables中的1个=所以大小是2 ^ 10*4bytes = 4KB
现在所需的总大小:4KB + 4KB = 8KB.
最终比较是4MB对8KB.