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

Operating system 如何使用页表将虚拟地址转换为物理地址,operating-system,Operating System,对于正在执行的程序,请考虑下表 虚拟页面#:01 2 3 4 5 页面框架#:8 3 9 x 0 1 该程序生成32位虚拟地址,由每个512字的页面组成。程序生成以下虚拟地址1749。它映射到什么物理地址您首先计算出该地址所属的虚拟页以及与该虚拟页的偏移量,然后使用页表查找等效的物理地址 假设虚拟地址空间是线性的,没有孔,从地址到页面的转换可以通过除以页面大小(在您的例子中是512)来完成。 页面内的偏移量是虚拟地址和虚拟页面起始地址之间的差值 在上面的示例中,虚拟页面将是第3页,偏移量为213

对于正在执行的程序,请考虑下表

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


该程序生成32位虚拟地址,由每个512字的页面组成。程序生成以下虚拟地址1749。它映射到什么物理地址

您首先计算出该地址所属的虚拟页以及与该虚拟页的偏移量,然后使用页表查找等效的物理地址

假设虚拟地址空间是线性的,没有孔,从地址到页面的转换可以通过除以页面大小(在您的例子中是512)来完成。 页面内的偏移量是虚拟地址和虚拟页面起始地址之间的差值

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

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

第X页的开头,再次假设没有孔的线性映射为(页面大小*
X

因此,物理地址应该是:

(page_size * x) + offset
在这里:

因此logbase2(512)=n因此n=9。所以偏移位=9。我如何从那里开始
(512 * x) + 213