每个页表项的最小大小

时间:2016-02-15 03:25:11

标签: operating-system

我正在学习操作系统,我对此问题感到困惑。

考虑一种32位寻址方案,页码为18位,偏移量为14位,物理内存为4GB。

a。)页面表中有多少个条目?

@{
    ViewBag.Title = "Home Page";
}

<div ng-app="">
    <h1>Hello {{ "Geoff" }}</h1>
</div>


@section Scripts {
    <script src="~/Scripts/angular.min.js"></script>
}

b。)每个页表条目的最小大小是多少?

 This should just be 2^18 as there are 18 bits for the page number.

c。)每页的大小是多少

 I have no clue how to calculate this with the given information or what it means by min.

最小尺寸是什么意思,你如何用给定的信息计算它?

2 个答案:

答案 0 :(得分:0)

页表中的条目应该包含足够的信息以允许成功的地址转换。因此,给定一些虚拟地址,您需要在查看相应的页表条目后才能获得正确的物理地址。

由于您拥有4 GB2^32 B)物理内存,因此需要32 bit个宽地址才能处理每个字节。

您已经知道使用虚拟地址的14 bit - 没有任何转换 - 作为偏移量。因此,您只需要32 - 14 = 18个附加位就能够分别寻址每个字节。这些18 bits形成了通常称为帧号的东西。然后,虚拟地址转换成为从页码(虚拟地址的18 bit)到帧号的映射。

请注意,用于帧编号和页码的位数不必相同,如本示例所示。如果您的系统只有1 GB物理内存,那么30 bits就足以解决每个字节的问题,只留下16 bits作为帧编号。

我使用并假设&#34;拥有物理内存的X&#34; &#34相同;能够物理内存的最大地址X&#34; 以上所有内容。讨论的位宽不依赖于实际的内存配置(当前可用于CPU的RAM数量),而是取决于设计的最大容量。

答案 1 :(得分:0)

我强烈建议另外写一本书。

  

a。)页面表中有多少个条目?

它可能是任何东西。地址空间大小不指定页表中的条目数。任何暗示其他书的书都是白痴写的。

  

b。)每个页表条目的最小大小是多少?

同样,这是一个愚蠢的问题。这可能表明,如果地址的18位引用一个页面,那么在页表条目中至少需要18位。世界上如何实现18位页表? - 我不知道。作为一个切实可行的问题,页表需要有开销位用于保护和寻呼管理。

假设您将它移动到24位,这样就可以得到圆形的字节数和一些额外的开销。然后,您访问未对齐的数据时表现不佳。

现实情况是,32位系统中的页表条目将是32位,64位系统中的页面条目将是32位或64位(或可能是多位)

我还注意到你的例子是一个“32位系统”,但是18位用于引用页面帧,14位用于偏移量。那只是22位。

也就是说,32位处理器架构的硬件实现可能支持不到一个完整的32位地址空间。但是,仅支持22位寻址的架构将完全成为FUed。

询问页面表的最小大小只是要求读者进行精神手淫。他们只是想让简单复杂化。

  

c。)每页的大小是多少

你有那个。这一束唯一的问题是有道理的。

简而言之,页表条目包含:

  1. 足够的位来引用物理页面框架(或引用多级页面表格中的下一级别)。

  2. 页面保护位

  3. 用于管理寻呼的位(例如有效位,脏位)。

  4. 这很简单。