use*_*409 9 operating-system memory-management offset
考虑具有32位逻辑地址和4KB页面大小的计算机系统.系统最多支持512MB的物理内存.
传统的单级页表中有多少条目?
Run Code Online (Sandbox Code Playgroud)Conventional single-level page table: 2^32 / 2^12 (4000) = 2^20 = 1,048,576
为什么我必须divide 2^32 / 2^12得到答案?
倒排页表中有多少个条目?
反向页表需要与内存中的页框一样多的条目.
Run Code Online (Sandbox Code Playgroud)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
如何根据十六进制地址确定这些页码和偏移量?
我知道答案,但我想了解为什么和如何.有人可以详细解释:)
为什么我必须除以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个条目
这个无花果。可能会清除您剩余的疑问:
给定页面大小和地址引用:
计算页号和偏移量的最佳方法,
假设页面大小为 1KB,地址引用为 256。
Page number = (address reference / page size) = 256/1024 = 0
Run Code Online (Sandbox Code Playgroud)
Offset = (address reference % page size) = (256 % 2014) = 256
Run Code Online (Sandbox Code Playgroud)
2^12 => 4096 2^32/2^12 => 2^32/4096 => 有多少个 4K 页 => 我们需要多少个页表条目。
物理页表的类似计算,即倒排页表需要多少个页表条目。
根据上述提示,尝试一下这个问题,并让我们知道您的想法。一旦您在操作系统课程中了解了更多,您就会发现每种页表设计都有优点和缺点。
| 归档时间: |
|
| 查看次数: |
22575 次 |
| 最近记录: |