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

问题描述:

考虑以下页表执行程序如何使用页表来虚拟地址转换为物理地址

虚拟页#:0 1 2 3 4 5
页帧#:8 3 9×0 1

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

您首先计算出该地址属于哪个虚拟页面,该虚拟页面的偏移量,然后使用页表查找等效项实际地址。

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

在上面的例子中,虚拟页是第3页,用的偏移213

你再看看这相当于3个虚拟页面在页面表的物理页。这里是x。所以物理地址将是(页面起始处的物理地址+页面偏移),即(页面X起始处)+213。

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

所以该物理地址将是:

(page_size * x) + offset 

这里:

(512 * x) + 213 
+0

所以logbase2(512)= N因此N = 9,所以该偏移位= 9.如何从出发那里 – bobo 2011-03-27 12:24:19