【问题标题】:Cannot solve issue of memory management in operating system无法解决操作系统内存管理问题
【发布时间】:2013-11-16 22:13:27
【问题描述】:

我一周参加一次操作考试,我遇到了以下问题:

我以这种方式解决了第一部分:

2^32/2^12=2^20 * 4 =4* 2^20 页表大小

首先我想看看我的答案是否正确?然后对于第二部分我不知道如何解决它我阅读了操作系统概念的第 8 章,但不知道如何解决它......

谁能帮忙?

【问题讨论】:

  • 我觉得如果我将第 1 部分产生的 2^20 除以 2^12 我得到答案我的意思是 2^20/2^12=2^8 对吗?

标签: memory-management operating-system paging


【解决方案1】:

问题讲两种情况:

第一种情况:启用单级分页时(第一个问题) 第二种情况:启用两级分页时(第二个问题)

(请参阅this link 了解如何以图形方式感知两级分页)

现在,要获得页表的大小,我们需要页表条目数每个条目的大小,然后我们将其相乘得到页表的大小.

给定,页表条目的大小 - 4 字节

对于问题 1:

给定,虚拟内存大小:2^32 字节 每页大小:2^12字节 所以,虚拟内存可以分配的最大页数:2^(32-12) - 2^20页 这意味着,在单级分页的情况下,页表将由 2^20 个页表条目组成。

目前,我们有页表条目的数量和每个页表条目的大小,它们构成了单级页表的大小,即

**2^20(page-table entries) * 4 ( size of each page-table entry in bytes)** 

第二个问题:

声明说用于分页页表的page-size是2^12字节,这意味着单级页表被进一步划分为2^12字节的块,这意味着在将页表划分为之后2^12 字节块我们,得到 ​​p>

( 2^20 * 4 ( size of page table ) ) / ( 2 ^ 12 ( block size) ) = 2 ^ 10 page-tables

最多可以形成2^10个页表。

到,找到我们需要的条目数和每个页表条目的大小的第二级页表的大小。

如上所示,条目数为 2 ^ 10。 每个页表条目的大小将是 10 位,必须转换为字节,因此我们必须将其设为 16 位以使其成为两个字节和第二页的大小 - 表将是

2 ^ 10 * 2

这是第二个问题的答案

【讨论】:

    猜你喜欢
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多