【发布时间】:2021-05-06 12:30:21
【问题描述】:
问题说
给定一个具有 4 KB 页的两级页表和。假设每个级别使用 10 位。如果 PT1=2, PT2=3, offset=5,虚拟地址是多少?
给出的答案是
(2×2^22)+(3×2^12)+5=8400901
我明白了,因为页面大小为 4-KB,PT 应该乘以 2^12。但是 2^22 是从哪里来的呢?
【问题讨论】:
标签: operating-system paging calculation
问题说
给定一个具有 4 KB 页的两级页表和。假设每个级别使用 10 位。如果 PT1=2, PT2=3, offset=5,虚拟地址是多少?
给出的答案是
(2×2^22)+(3×2^12)+5=8400901
我明白了,因为页面大小为 4-KB,PT 应该乘以 2^12。但是 2^22 是从哪里来的呢?
【问题讨论】:
标签: operating-system paging calculation
写答案的更清晰的方法是:
2 << (10 + 12) + 3 * << 12 + 5 = 8400901
这就像:
2 << (BITS_IN_PAGE_TABLE_INDEX + BITS_IN_OFFSET) + 3 * << BITS_IN_OFFSET + 5 = 8400901
【讨论】: