1

所以我真的不明白这个。谁能解释如何解决这些问题?

假设我们有一个带有基于分页的内存系统的 32 位 CPU。页面大小为 4KB(2^12)。现在 CPU 生成一个虚拟地址 0x0000AAA

1.) 这个虚拟地址的虚拟页号是多少?什么是页面偏移量?

2.) 使用下面的页表,将上述虚拟地址转换为物理地址 - 以十六进制表示。页表显示前 5 个条目。

0 - 0xAAAAA 1 - 0xBBBBB 2 - 0xCCCCC 3 - 0xDDDDD 4 - 0xEEEEE

4

2 回答 2

2

如果一个页面的大小是 4KB(= 4096 字节),这意味着从 0 到包括 4095 (0x00000fff) 的所有地址都在第一页中。

0x0000aaa 小于 0x00000fff,所以这仍然在第一页(第 0 页)。

要获取与虚拟地址 0x00000aaa 对应的物理地址,请查找页面 #0 的前缀,即 0xAAAAA。

于 2012-12-14T19:24:36.807 回答
1

由于给定页面大小为 4 KB,这意味着一个页面有 4K 个地址。因此,我们需要 12 位来到达页面中的每个地址。
因此,页偏移量 = 12 位。
由于系统是 32 位的,因此 20 位将用作页码。
由于页面大小等于帧大小,因此帧偏移量 = 12 位。
现在,使用页表来获取物理地址。

于 2016-10-28T08:09:30.387 回答