【问题标题】:Converting Address Sequence to Reference String In Page replacement在页面替换中将地址序列转换为引用字符串
【发布时间】:2019-06-27 04:38:53
【问题描述】:

最近在学习操作系统的基本概念时,在单元虚拟内存管理(Albert Silberschatz 7th Edition)中,我遇到了页面替换的这个概念-

例如,如果我们跟踪一个特定的进程,我们可能会记录以下内容 地址顺序: 0100,0432,0101,0612,0102,0103,0104,0101,0611,0102,0103, 0104,0101,0610,0102,0103,0104,0101,0609,0102,0105 在每页 100 字节时,此序列减少到以下参考 细绳: 1, 4, 1, 6, 1, 6, 1, 6, 1, 6,

我无法理解如何将记录的地址序列转换为引用字符串。

【问题讨论】:

    标签: memory operating-system virtual


    【解决方案1】:

    哇,这本书的另一个困惑的读者。首先,页面大小总是 2 的幂。所以让我们让您的问题稍微现实一点,并说这些都是十六进制数字。

    您在这里所做的是将字节访问转换为页面引用。第零页从 0000 开始,到 00FF 结束。第 1 页从 0100 开始,到 01FF 结束。因此,对 0100 的引用是第 1 页的第一个字节。

    从 0400 开始的页面扩展到 04FF。因此地址 0432 指向第 4 页。

    我不知道作者想要达到什么目的。

    【讨论】:

      【解决方案2】:

      我在某处读到 MSB 的第二个数字是页面引用字符串,例如:如果它是 0100 那么引用字符串是 1 ,同样 0323 给出 3 等等..,如果你找到 0100 的组合0102 0113 那么,这三个组合给出了一个参考字符串,即 1。但我没有任何适当的证据来支持这种逻辑或确切地支持作者想要推断的内容。

      【讨论】:

        【解决方案3】:

        参考字符串是一组成功地唯一在给定的虚拟地址或逻辑地址列表中引用的页面。

        考虑给出的逻辑地址为 3001,1002,1003,2001,2002,3003,2601,2602,1004,1005,1507,1510,2003,2008,3501,3603,4001,4002,1020,1021 和页面大小为 250 。

        给定内存地址序列的引用字符串计算为

        参考字符串 = 逻辑地址/页面大小            

        字符串参考:12、4、8、12、10、4、6、8、14、16、4

        【讨论】:

          猜你喜欢
          • 2020-06-30
          • 1970-01-01
          • 1970-01-01
          • 2020-10-22
          • 1970-01-01
          • 1970-01-01
          • 2020-08-25
          • 1970-01-01
          • 2021-10-15
          相关资源
          最近更新 更多