【发布时间】:2011-07-23 20:55:07
【问题描述】:
考虑下面的页表来执行程序
虚拟页面#:0 1 2 3 4 5
页框编号:8 3 9 x 0 1
程序生成 32 位虚拟地址,每个页面由 512 个字组成。程序生成如下虚拟地址1749,映射到什么物理地址
【问题讨论】:
标签: operating-system
考虑下面的页表来执行程序
虚拟页面#:0 1 2 3 4 5
页框编号:8 3 9 x 0 1
程序生成 32 位虚拟地址,每个页面由 512 个字组成。程序生成如下虚拟地址1749,映射到什么物理地址
【问题讨论】:
标签: operating-system
您首先计算出该地址属于哪个虚拟页面,与该虚拟页面的偏移量,然后使用您的页表查找等效的物理地址。
假设虚拟地址空间是没有漏洞的线性空间,从地址到页面的转换可以通过除以页面大小(在您的情况下为 512)来完成。 页内的偏移量是虚拟地址与虚拟页起始地址的差值。
在上面的示例中,虚拟页面是第 3 页,偏移量为 213。
然后您在页表中查找与虚拟页 3 对应的物理页。这里是x。所以物理地址将是(页面开头的物理地址x + 到页面的偏移量),即(页面 X 的开头)+213。
页面 X 的开头,再次假设没有孔的线性映射将是(页面大小 * x)。
所以物理地址是:
(page_size * x) + offset
这里:
(512 * x) + 213
【讨论】: