我在这里有一个家庭作业问题,我有点困惑如何开始。我必须将逻辑地址 0、4、9、15、30 转换为它们的物理地址。我在网上看了,但还没有找到类似的例子。我发现了一些问题,但给定的信息却大不相同(例如给我每个逻辑地址的页面索引和偏移量)。下面是问题,我确实做了第 1 部分,这给了我 m=32 和 n-3。在正确的方向上的帮助会很棒!
3 回答
想出上面的页表结构几乎是不可能的,它没有提供必要的细节。虽然我会尽力帮助你。但是,我会假设这些值是物理地址(可能是)。
我们必须考虑以下细节:
地址空间:32 字节
总页数:4
页大小:8 字节
寻址:1 字节
页表条目:6 8 0 1
严格来说,我们必须对页表条目进行索引,从而获得其中的偏移量。
所以我们只需要 2 位来索引页表条目(4 个条目),而 6 位到页中的偏移量(8 字节 - 64 位)。
此外,我们应该假设一字节寻址。
虚拟地址:(8 位)- 总计 0 0(2 位)- 页表条目。 0 0 0 0 0 0(6 位)- 偏移到页面。
下一个问题是将逻辑转换为物理:0、4、9、15、30(最好将这些数字转换为二进制格式)
一个例子: PTE 偏移量 0 = (0 0) (0 0 0 0 0 0) 它索引物理地址为6的第一个页表条目, 偏移量为 0。 所以 6 + 0 = 6(物理地址)
另一个例子: PTE 偏移量 4 = (0 0) (0 0 0 1 0 0) 它索引物理地址为6的第一个页表条目, 偏移量为 4。 所以 6 + 4 = 10(物理地址)
我希望它会帮助你。问候, Raphael S.Carvalho
(1) 逻辑空间大小为 32,使用 5 位,页面大小为 8,使用 3 位。
问题状态为“必需”,我认为这意味着使用的最少位数。那么高阶需要 5-3 = 2 位,低阶需要 3 位。
由于我们使用一字节寻址,如果我们使用 5-3 = 2 位来表示页码,那么我们可以发现地址格式不能用于物理地址格式。所以我们可以使用 8-3 的高阶 = 5 位表示页码,其余 3 位表示页偏移量。
(2)。以逻辑地址 4 为例,它的页码为 0,页偏移量为 4。根据表格,第 0 页映射到第 6 帧。因此,它的物理地址应该是
(00110) (100) = 6 * 8 + 4 =54
逻辑地址:5 位(2^5 = 32 字节)和偏移量(低位部分)始终是一页的大小,即 3 位(2^3 = 8 字节)。因此,一阶是 5 - 3 = 2 位
翻译应该是这样的
- 获取页码(较高部分)和逻辑/虚拟地址的偏移量。例如,在我们的例子中,页码 3(11) 和偏移量 6(110) 用于逻辑地址 30(二进制的 11110)。
- 查找第 3 页的页表,所以这里的页框是 1。它导致我们物理地址的基址是 1 << 3 = 8(向左移动 3 位 = 偏移位)。
- 物理地址 = 基址 + 偏移量 = 8 + 6 = 14
希望它可以帮助。