题11
题目
【2013 统考真题】某计算机主存按字节编址,逻辑地址和物理地址都是 32 位,页表项大小为 4 字节。请回答下列问题。
(1) 若使用一级页表的分页存储管理方式,逻辑地址结构为:
则页的大小是多少字节?页表最大占用多少字节?
(2) 若使用二级页表的分页存储管理方式,逻辑地址结构为:
设逻辑地址为 LA,请分别给出其对应的页目录号和页表索引的表达式。
(3) 采用 (1) 中的分页存储管理方式,一个代码段起始逻辑地址为 0000 8000H,其长度为 8KB,被装载到从物理地址 0090 0000H 开始的连续主存空间中。页表从主存 0020 0000H 开始的物理地址处连续存放,如下图所示(地址大小自下向上递增)。请计算出该代码段对应的两个页表项的物理地址、这两个页表项中的页框号以及代码页面 2 的起始物理地址。

分析
- 因为主存按字节编址,页内偏移量是 12 位,所以页大小为
。
页表项数为
- 页目录号可表示为
((unsigned int)(LA)) >> 22) & 0x3FF。这里采用的方法是逻辑右移 22 位, 再和 3FF (10 个 1) 进行逻辑与运算, 得到 10 位的页目录号。这种方法虽然效率较高, 但比较难想到, 采用的写法来取高 10 位的页目录号也是可以的。
页表索引可表示为 ((unsigned int)(LA)) >> 12) & 0x3FF。这里也可采用
- 代码页面 1 的逻辑地址为
,表明其位于第 8 个页处,对应页表中的第 8 个页表项,所以第 8 个页表项的物理地址 页表始址 页表项的字节数 。由此可得如下图所示的答案。
