【问题标题】:virtual memory and size of each item每个项目的虚拟内存和大小
【发布时间】:2017-11-14 14:14:00
【问题描述】:

我有这个问题的答案,但我仍然不明白其中的一些。你能解释一下吗?

考虑一个具有 16 位虚拟地址的系统,其中 12 位用于页面偏移。对于以下每个问题,请回答问题并简要说明您的回答,如果无法从所提供的信息中确定答案,请注明“未知”。

(a) 虚拟页面有多大? 2^12 字节

(b) 物理页面有多大? 2^12 字节

(c) 单个进程的虚拟地址空间有多大(以字节为单位)? 2^16 字节

(d) 存在多少物理页? 未知

(e) 在系统上运行的所有进程中,全局存在多少虚拟页面? 未知

【问题讨论】:

    标签: linux operating-system


    【解决方案1】:

    a+b) 12 位用于偏移。你可以用 12 位寻址多少个地址?
    答案是:2^12。这就是为什么页面大小是2^12 = 4096 bytes = 4KB

    c) 16 位可以寻址多少个地址? 2^16 B这是虚拟地址。

    d)#frames = main-memory-size / page-size`由于不知道物理内存大小而未知。

    e) 取决于系统中的进程数。

    【讨论】:

      【解决方案2】:

      在虚拟地址中,

      页偏移量的大小说明一页内的字节数,因为一个偏移量指向物理内存中的一个字节。这里它是 12 位,所以一页中的字节数是 2^12(a)

      页码的大小占虚拟内存中页框的总数。这里的页面大小是 4 位长,16-12,所以总页数是2^4

      (b) 因为页面大小等于页面框架大小,所以它等于2^12 字节。

      (c)虚拟地址空间=总页数*页大小=2^4*2^12=2^16(可以直接从虚拟地址的位数计算)。

      (d) 你无法从虚拟地址空间中分辨出帧数。拥有虚拟地址空间的关键是能够分配比可用物理大小大得多的内存。

      (e) 每个进程最多可以有2^4 虚拟页面。所以虚拟页面的总数取决于进程的数量。

      【讨论】:

        猜你喜欢
        • 2011-03-25
        • 2018-07-27
        • 2016-09-26
        • 2014-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多