14

考虑一个具有 32 位逻辑地址和 4KB 页面大小的计算机系统。系统支持高达 512MB 的物理内存。

传统的单级页表中有多少条目?

Conventional single-level page table: 2^32 / 2^12 (4000)  = 2^20 = 1,048,576

为什么我必须divide 2^32 / 2^12得到答案?

倒排页表中有多少条目?

倒排页表需要与内存中的页框一样多的条目。

Inverted page table: 2^29 (512mb)/ 2^12 (4000) = 2^17 = 131,072

为什么我必须divide 512mb / page size得到倒置的页表条目?

以下地址引用的页码和偏移量是多少:a) 30000, b) 256, c) 0xbcf034

a) 十六进制的 30000:x7530 页号:x7 = 7 偏移量:x530 = 1328

b) 256 in hex x100 页号:x0 = 0 偏移量:x100 = 256

c) 0xbcf034 页面#:xbcf = 3023 偏移量:x034 = 22

如何根据十六进制地址计算出这些页码和偏移量?

我知道答案,但我想了解为什么和如何。有人可以详细解释一下吗:)

4

4 回答 4

13

为什么我必须除以 2^32 / 2^12 才能得到答案?

2^32 ==> 总虚拟内存大小

4KB=2^12 ==> 单页大小

2^32 / 2^12 =2^20 ==> 虚拟内存总页数

所以页表将有 2^20 = 1M 条目

倒排页表中有多少条目?

2^29=512MB ==> 总物理内存

2^12 = 页面大小 = 帧大小

2^29 / 2^12 =2^17 ==> 物理内存中的总帧数

所以倒置页表将有 2^17 = 128K 条目

这个图。可能会清除您剩余的疑虑:

在此处输入图像描述

于 2016-06-07T08:09:28.330 回答
4

给定页面大小和地址引用:
计算页码和偏移量的最佳方法,
假设页面大小为 1KB,地址引用为 256。


Page number = (address reference / page size) = 256/1024 = 0

Offset = (address reference % page size) = (256 % 2014) = 256 


对其余地址引用应用相同的过程。

于 2016-04-24T15:06:17.637 回答
0

2^12 => 4096 2^32/2^12 => 2^32/4096 => 有多少 4K 页面 => 我们需要多少页表条目。

物理页表的类似计算,即倒排页表需要多少页表条目。

有了上面的提示,试一试这个问题,让我们知道你想出了什么。一旦你在你的操作系统课程中学习了更多,你会发现每个页表设计都有优点和缺点。

于 2013-07-15T04:41:02.800 回答
0

因为页面大小 = 帧大小 = 2^12 反转页表中的条目数 = 帧数所以我们正在计算帧数

于 2017-04-02T15:41:34.180 回答