Operating system 在这个问题中,这个虚拟地址是如何计算的?我有答案,但我不知道;我不明白答案是怎么得出的

Operating system 在这个问题中,这个虚拟地址是如何计算的?我有答案,但我不知道;我不明白答案是怎么得出的,operating-system,paging,calculation,Operating System,Paging,Calculation,问题是 给定一个包含4-KB页面和的两级页面表。假设每个级别使用10 位。如果PT1=2,PT2=3,offset=5,那么虚拟地址是什么 给出的答案是 (2×2^22)+(3×2^12)+5=8400901 我明白了,因为页面大小是4KB,所以PT应该乘以2^12。但是2^22是从哪里来的呢?一个更清晰的答案是: 2 << (10 + 12) + 3 * << 12 + 5 = 8400901 2 2 << (BITS_IN_PAGE_TABLE_INDE

问题是

给定一个包含4-KB页面和的两级页面表。假设每个级别使用10 位。如果PT1=2,PT2=3,offset=5,那么虚拟地址是什么

给出的答案是

(2×2^22)+(3×2^12)+5=8400901


我明白了,因为页面大小是4KB,所以PT应该乘以2^12。但是2^22是从哪里来的呢?

一个更清晰的答案是:

2 << (10 + 12) + 3 * << 12 + 5 = 8400901
2
2 << (BITS_IN_PAGE_TABLE_INDEX + BITS_IN_OFFSET) + 3 * << BITS_IN_OFFSET + 5 = 8400901