假设某分页系统采取1k字节大小的页面。又知页表项每项需要2个字节。若此分页系统只用单级页表,那么一个进程最多可以使用多大的物理地址空间?如果采用二级页表呢?
时间: 2024-03-07 17:54:14 浏览: 48
如果此分页系统只用单级页表,那么一个进程最多可以使用的物理地址空间大小为:
$2^{16}$ (页表项个数) $\times$ $2^{10}$ (每个页面的大小) = $2^{26}$ 字节
因为每个页表项需要2个字节,所以页表可以支持的最大页数为 $2^{16}$。
如果采用二级页表,每个页表项需要4个字节。因此,一个进程最多可以使用的物理地址空间大小为:
$2^{16}$ (二级页表的页表项个数) $\times$ $2^{10}$ (每个页面的大小) $\times$ $2^{16}$ (一级页表支持的最大页数) = $2^{42}$ 字节
可以看出,采用二级页表可以支持更大的物理地址空间。
相关问题
已知虚拟内存地址用20个bit表示,页大小为4KB,每个页表项的大小为8个字节,如果采用单级页表,页表总共有多少个页表项?页表的大小为多少字节?
每个页表项的大小为8个字节,即64位,因为每个虚拟地址为20位,所以需要2^20个页表项来覆盖所有的虚拟地址。因为页大小为4KB,即2^12字节,所以每个页可以包含2^12/8=2^9个页表项。因此,页表的总数为2^20/2^9=2^11,即2048个页表项。
页表的大小为2048个页表项 * 8个字节/页表项 = 16384字节,即16KB。
已知虚拟内存地址用20个bit表示,页大小为4KB,每个页表项的大小为8个字节。试回答以下问题: (1)如果采用单级页表,页表总共有多少个页表项?页表的大小为多少字节?(2分) (2)如果采用二级页表,虚拟地址的高4个bit用于一级页表的索引,接下来的4个bit用于二级页表的索引,则一级页表的页表项有多少个?一级页表的大小为多少字节?一级页表的每个页表项对应的内存空间的范围为多少字节?(3分) (3)如果采用二级页表,初始阶段一级页表为空。则当CPU依次访问虚拟地址0x01000,0x01A00和0x02000,一级页表增加了多少个页表项?二级页表增加多少个页表项?试解释原因(5分)
(1) 采用单级页表,由于虚拟内存地址用20个bit表示,因此页表总共有2^20个页表项。每个页表项的大小为8个字节,则页表的大小为8*2^20=8MB。
(2) 如果采用二级页表,虚拟地址的高4个bit用于一级页表的索引,接下来的4个bit用于二级页表的索引。因此一级页表的页表项有2^4=16个。每个页表项的大小为8个字节,则一级页表的大小为8*16=128字节。一级页表的每个页表项对应的内存空间的范围为2^16=64KB。
(3) 当CPU依次访问虚拟地址0x01000,0x01A00和0x02000时,一级页表增加了1个页表项,二级页表增加了2个页表项。原因是,虚拟地址0x01000和0x01A00的高4个bit都相同,都对应一级页表中的同一个页表项;而虚拟地址0x02000的高4个bit与前两个地址不同,因此需要在一级页表中新增一个页表项,同时在二级页表中新增两个页表项,以映射虚拟地址0x02000所对应的物理页。
阅读全文
相关推荐















