如何使用页表将虚拟地址转换为物理地址

时间:2011-03-27 11:54:14

标签: operating-system

考虑执行程序的以下页表

虚拟页面#:0 1 2 3 4 5
  页框#:8 3 9 x 0 1

该程序生成32位虚拟地址,每页包含512个字。该程序生成以下虚拟地址1749.它映射到

的物理地址是什么

1 个答案:

答案 0 :(得分:2)

首先确定该地址所属的虚拟页面,该虚拟页面的偏移量,然后使用您的页面表查找等效的物理地址。

假设虚拟地址空间是线性的,没有空洞,则可以通过除以页面大小(在您的情况下为512)来完成从地址到页面的转换。 页面内的偏移量是虚拟地址和虚拟页面起始地址之间的差异。

在上面的示例中,虚拟页面将是第3页,偏移量为213。

然后,在页面表中查找与虚拟页面3对应的物理页面。这是x。因此,物理地址将是(页面开始的x +页面偏移的物理地址),即(页面X的开头)+213。

页面X的开头,再次假设没有孔的线性映射将是(页面大小* x)。

所以物理地址是:

(page_size * x) + offset

下面:

(512 * x) + 213