2020年二级页表大题

本文介绍了32位系统中二级页表的分页存储管理方式,通过具体例子分析了数组a[1024][1024]的虚拟地址计算、页目录和页表的物理地址查找过程。讨论了数组在虚拟和物理地址空间的连续性要求,并比较了按行和按列遍历数组时的局部性差异。
摘要由CSDN通过智能技术生成
好的,我会回答你的问题。下面分别回答三个问题。 1. 数组元素a[1][2]的虚拟地址是多少?对应的目录号和号是什么?对应的目录的物理地址是什么?若该目录中存放的框号为00301H,则a[1][2]所在对应的页表的物理地址是什么? 数组元素a[1][2]的虚拟地址为:1080 0000H + 4 × (1024 × 1 + 2) = 1080 0808H。其中,1024是数组的行数,1是行下标,2是列下标,4是每个数组元素占用的字节数。 虚拟地址的高10位(31~22位)表示目录号,中间10位(21~12位)表示号,低12位(11~0位)表示内偏移量。因此,a[1][2]所在的目录号为1080H,号为008H,内偏移量为008H。 该目录号对应的目录的物理地址为:00201000H + 4 × 1080H = 0020A080H。因为目录的长度为4字节,所以需要乘以4。 该目录中存放的框号为00301H,即页表的物理地址为:00301H × 4K = 00C84000H。因为每个框的大小为4K,所以需要乘以4K。 因为a[1][2]处于该中的偏移量为008H,所以该页表的物理地址为:00C84000H + 008H = 00C84008H。 2. 数组a在虚拟地址空间中所占区域是否必须连续?在物理地址空间中所占区域是否必须连续? 在虚拟地址空间中,数组a不必须是连续的。因为采用存储管理方式,虚拟地址会被映射到物理地址,而物理地址中的框可以是分散的,不要求连续。 在物理地址空间中,数组a必须是连续的。因为数组a在内存中存储时是一个连续的二维数组,如果物理地址空间中的数组a不连续,那么就无法按照二维数组的方式访问它。 3. 已知数组a按行优先方式存放,若对数组a分别按行遍历和按列遍历,则哪一种遍历方式的局部性更好? 由于数组a按行优先方式存放,按行遍历时,访问连续的内存空间,可以利用局部性原理,提高访问效率,因此按行遍历时的局部性更好。按列遍历时,每次访问的内存地址不连续,会导致缓存命中率较低,从而降低访问效率。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山顶夕景

小哥哥给我买个零食可好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值