将逻辑地址转换为物理地址

时间:2013-06-26 20:30:39

标签: memory-management operating-system

逻辑地址空间为8页,每页为2KB。

物理地址空间有4帧(帧的大小等于页面的大小)。

我得到一个草图,其中有一个从第0页到第1页的箭头,表示第0页到第1帧之间的映射。

我需要找到逻辑地址2500的物理地址。

我想知道我的解决方案是否正确。

这是我的解决方案: 因为页面的大小是2KB,这意味着我们需要14位的偏移量。 (原因2KB = 2 ^ 14) 有8页(0到7)所以我们需要3位页码。

所以给定的二进制虚拟地址是: 000 00100111000100 = 2500
左起第3位 - 000 - 表示页码0 其余位 - 00100111000100 - 表示偏移2500

第0页----->第1帧(在草图中映射)

所以我的实际地址是: 0100100111000100 = 18884.

前2位 - 表示帧号-01 其余位 - 表示偏移量 - 00100111000100。 (有4帧,因此我们需要2位帧号)。

我会感谢你的回应 谢谢, 使然

2 个答案:

答案 0 :(得分:1)

2KB = 2 ^ 1 * 2 ^ 10 = 2 ^ 11 ---> 11位,不是14

答案 1 :(得分:1)

逻辑地址是连续的,您可以按照步骤

(1)计算2500 /(2 * 1024)

商是1 - >页面号逻辑地址

剩余部分是452 - >逻辑地址的偏移量                       - >同样是物理地址的偏移量

(2)找到帧号。物理地址页面号(即,从上面计算的1)逻辑地址指的是。不幸的是,问题中没有给出映射。假设逻辑地址中的第1页被映射到物理地址中的第4帧。

(3)物理地址是[帧号] * [帧全长] +偏移量,即

4 *(2 * 1024)+452 = 8644或0010000111000100(二进制)或21c4(H)。

希望它有所帮助。