【题目】
46.(8分)某计算机主存按字节编址,逻辑地址和物理地址都是32位,页表项大小为4字节。请回答下列问题。
(1)若使用一级页表的分页存储管理方式,逻辑地址结构为:
则页的大小是多少字节?页表最大占用多少字节?
(2)若使用二级页表的分页存储管理方式,逻辑地址结构为:
设逻辑地址为LA,请分别给出其对应的页目录号和页表索引的表达式。
(3)采用(1)中的分页存储管理方式,一个代码段起始逻辑地址为0000 8000H,其长度为8KB,被装载到从物理地址0090 0000H开始的连续主存空间中。页表从主存0020 0000H开始的物理地址处连续存放,如下图所示(地址大小自下向上递增)。请计算出该代码段对应的两个页表项的物理地址、这两个页表项中的页框号以及代码页面2的起始物理地址。
【答案要点】
(1)因为页内偏移量是12位,所以页大小为4 KB,(1分)页表项数为232/4K=220,该一级页表最大为220×4 B=4 MB。(2分)
(2)页目录号可表示为:(((unsigned int)(LA))>>22)&0×3FF。(1分)
页表索引可表示为:(((unsigned int)(LA))>>12)&0×3FF。(1分)
(3)代码页面1的逻辑地址为0000 8000H,表明其位于第8个页处,对应页表中的第8个页表项,所以第8个页表项的物理地址=页表起始地址+8×页表项的字节数:00200000H+8×4=0020 0020H。由此可得如下图所示的答案。(3分)