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

时间:2012-12-05 01:52:45

标签: operating-system paging

我在这里有一个作业问题,我有点困惑如何开始。我必须将逻辑地址0,4,9,15,30转换为它们的物理地址。我看过网上但没能找到类似的例子。我找到了问题但是给出了很多不同的给定信息(例如给我每个逻辑地址的页面索引和偏移量)。下面是问题,我确实做了第1部分,它给了我m = 32和n-3。正确方向的帮助会很棒!

enter image description here

3 个答案:

答案 0 :(得分:2)

几乎不可能想出上面的表格结构,它没有提供必要的细节。虽然我会尽力帮助你。 但是,我会假设这些值是物理地址(可能是它们)。

我们必须考虑以下细节:
地址空间:32字节
总页数:4
页面大小:8个字节
寻址:1个字节

页面表条目: 6 8 0 1

严格地说,我们必须索引页表项,并因此得到它的偏移量。
因此,我们只需要2位来索引页表项(4个条目),而6位到页面中的偏移量(8个字节 - 64位)。
此外,我们应该假设一个字节的寻址。

Virtual address:    (8 bits) - Total
0 0                 (2 bits) - Page table entry.
    0 0 0 0 0 0     (6 bits) - Offset into page. 

接下来的问题是将逻辑转换为物理: 0,4,9,15,30(将这些数字转换成二进制格式总是更好)

One example:
     PTE      OFFSET
0 = (0 0) (0 0 0 0 0 0)

It indexes the first page table entry which physical address is 6,
and the offset is 0.
So 6 + 0 = 6 (Physical address)
Another example:
     PTE      OFFSET
4 = (0 0) (0 0 0 1 0 0)

It indexes the first page table entry which physical address is 6, 
and the offset is 4.
So 6 + 4 = 10 (Physical address)

我希望它会对你有所帮助。 此致,Raphael S.Carvalho

答案 1 :(得分:2)

(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

答案 2 :(得分:0)

  • 逻辑地址:5比特(2 ^ 5 = 32字节)和偏移(低阶部分)总是一页的大小,即3比特(2 ^ 3 = 8字节)。那么第一个顺序是5 - 3 = 2位

  • 翻译应该像

    1. 获取页码(较高部分)和逻辑/虚拟地址的偏移量。在我们的例子中,例如,页码3(11)和偏移6(110)的逻辑地址为30(二进制为11110)。
    2. 在页面表中查找第3页的页面,因此这里的页面框架是1.它引导我们物理地址的基础是1<< 3 = 8(向左移位3位=偏移位)。
    3. 物理地址= base + offset = 8 + 6 = 14

希望它可以提供帮助。