Memory 多级页表中页表条目的大小是多少?

Memory 多级页表中页表条目的大小是多少?,memory,operating-system,Memory,Operating System,我理解为什么多级页表可以节省内存。在经典的32位示例中,单级表中每个页表条目(PTE)的大小为32位(4字节)。32位中的20位用于页码这一事实意味着此表中有2^20(~1M)个可能的条目。因此,单级表的总大小为4字节*1M=4MB。两级页表需要更少的内存,因为它不需要同时使用所有第二级页 然而,在互联网上许多计算两级页表的例子中,人们仍然使用4字节来表示每个PTE的大小。由于我们在第一级只访问32位中的10位,这些PTE的大小不应该小于4字节吗 虚拟地址被分解为10-10-12前10位是第一级

我理解为什么多级页表可以节省内存。在经典的32位示例中,单级表中每个页表条目(PTE)的大小为32位(4字节)。32位中的20位用于页码这一事实意味着此表中有2^20(~1M)个可能的条目。因此,单级表的总大小为4字节*1M=4MB。两级页表需要更少的内存,因为它不需要同时使用所有第二级页


然而,在互联网上许多计算两级页表的例子中,人们仍然使用4字节来表示每个PTE的大小。由于我们在第一级只访问32位中的10位,这些PTE的大小不应该小于4字节吗

虚拟地址被分解为
10-10-12
前10位是第一级页表中的索引,在那里,您将找到第二级页表的地址,您使用秒10位对其进行索引,以找到物理帧的开始,您使用剩余的12位对其进行索引


实际上,每个条目都包含虚拟页面的编号(有2^20个这样的页面)和12个标志位

虚拟地址被分解为
10-10-12
前10位是第一级页表中的索引,在那里,您将找到第二级页表的地址,您使用秒10位对其进行索引,以找到物理帧的开始,您使用剩余的12位对其进行索引


实际上,每个条目都包含虚拟页面的编号(有2^20个这样的页面)和12个标志位

你的意思是,即使我们只是查看前10位以确定第二级页面的位置,我们仍在访问整个32位吗?@shimmyya原始地址中的10位只是页面表中的索引。这里有一个32位的内存地址。(实际上是20+12个标志位)。你的意思是,即使我们只是查看前10位以确定第二级页面的位置,我们仍然在访问整个32位吗?@ShimmyShimmyYa原始地址中的10位只是页面表中的一个索引。这里有一个32位的内存地址。(实际上是20+12个标志位)。