如何使用页表来虚拟地址转换为物理地址
问题描述:
考虑以下页表执行程序如何使用页表来虚拟地址转换为物理地址
虚拟页#: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
所以logbase2(512)= N因此N = 9,所以该偏移位= 9.如何从出发那里 – bobo 2011-03-27 12:24:19