操作系统
2020-46
某32位系统采用基于二级页表的请求分页存储管理方式,按字节编址,页目录项和页表项长度均为4字节,虚拟地址结构如下所示。

某C程序中数组a[1024][1024]的起始虚拟地址为1080 0000H,数组元素占4字节,该程序运行时,其进程的页目录起始物理地址为0020 1000H,请回答下列问题。
1)数组元素a[1][2]的虚拟地址是什么?对应的页目录号和页号分别是什么?对应的页目录项的物理地址是什么?若该目录项中存放的页框号为00301H,则a[1][2]所在页对应的页表项的物理地址是什么?
2)数组a在虚拟地址空间中所占的区域是否必须连续?在物理地址空间中所占区域是否必须连续?
3)已知数组 a 按行优先方式存放,若分别按行遍历和按列遍历数组 a,则哪种遍历方式的局部性更好?
答案
(1)
- 虚拟地址:
10801008H - 页目录号:
042H - 页号:
001H - 页目录项物理地址:
00201108H - 页表项物理地址:
00301004H
(2)数组 a 在虚拟地址空间中必须连续,在物理地址空间中可以不连续。
(3)按行遍历的局部性更好。