题11

题目

【2013 统考真题】某计算机主存按字节编址,逻辑地址和物理地址都是 32 位,页表项大小为 4 字节。请回答下列问题。

(1) 若使用一级页表的分页存储管理方式,逻辑地址结构为:

则页的大小是多少字节?页表最大占用多少字节?

(2) 若使用二级页表的分页存储管理方式,逻辑地址结构为:

设逻辑地址为 LA,请分别给出其对应的页目录号和页表索引的表达式。

(3) 采用 (1) 中的分页存储管理方式,一个代码段起始逻辑地址为 0000 8000H,其长度为 8KB,被装载到从物理地址 0090 0000H 开始的连续主存空间中。页表从主存 0020 0000H 开始的物理地址处连续存放,如下图所示(地址大小自下向上递增)。请计算出该代码段对应的两个页表项的物理地址、这两个页表项中的页框号以及代码页面 2 的起始物理地址。

分析

  1. 因为主存按字节编址,页内偏移量是 12 位,所以页大小为

页表项数为 ,因此该一级页表最大为

  1. 页目录号可表示为 ((unsigned int)(LA)) >> 22) & 0x3FF。这里采用的方法是逻辑右移 22 位, 再和 3FF (10 个 1) 进行逻辑与运算, 得到 10 位的页目录号。这种方法虽然效率较高, 但比较难想到, 采用 的写法来取高 10 位的页目录号也是可以的。

页表索引可表示为 ((unsigned int)(LA)) >> 12) & 0x3FF。这里也可采用 的方法来获取中间 10 位的页表索引号。

  1. 代码页面 1 的逻辑地址为 ,表明其位于第 8 个页处,对应页表中的第 8 个页表项,所以第 8 个页表项的物理地址 页表始址 页表项的字节数 。由此可得如下图所示的答案。