考虑具有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 Page#:x0 = 0 offset:x100 = 256
c)0xbcf034页数:xbcf = 3023偏移量:x034 = 22
如何根据十六进制地址确定这些页码和偏移量?
我知道答案,但我想了解为什么和如何。有人可以详细解释一下:)
答案 0 :(得分:4)
为什么我必须划分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条目
这个图。可能会清除您的疑虑:
答案 1 :(得分:1)
给定页面大小和地址引用:
计算页码和偏移量的最佳方法,
假设,页面大小为1KB,地址参考为256。
Page number = (address reference / page size) = 256/1024 = 0
Offset = (address reference % page size) = (256 % 2014) = 256
<小时/> 对其余的地址引用应用相同的过程。
答案 2 :(得分:0)
2 ^ 12 =&gt; 4096 2 ^ 32/2 ^ 12 =&gt; 2 ^ 32/4096 =&gt;有多少4K页面=&gt;我们需要多少页表条目。
物理页面表的类似计算,即反转页表需要多少页表条目。
通过上述提示,提出问题,让我们知道你提出了什么。一旦你在操作系统课程中学到了更多东西,你会发现每个页面表设计都有优缺点。
答案 3 :(得分:0)
因为页面大小=帧大小= 2 ^ 12 倒排页表中的条目数=帧数 所以我们不计算帧数