这不是家庭作业问题,这是我们在课堂上解决的问题,但我的教授在最后一部分失去了我。这里是:
对于页大小为 1KB 的 16GB 虚拟内存,虚拟内存表有多大?
首先我们确定物理内存页数 = 64MB/1024 = (2^6 * 2^20)/2^10= 2^16 = 65,536 *这意味着我们有 65,536 个可能的地址,地址块需要位于至少 16
位长(加上 1 位用于有效标志和 1 用于脏标志)
其次,我们确定了虚拟内存页数 = (2^34)/(2^10)= 2^24
下一部分,我们实际计算 VMT 大小的地方是他失去了我!
(2^24 * 16 位) + (2^24 * 1 位) + (2^242 * 1 位) //我明白这一点
(2^24 * 2) + (2^21) + (2^21) =//不知道他是怎么得到这些数字的
2^25+ 2^21 + 2^21 = 32MB + 2MB + 2MB= 36MB //也不知道他是怎么得到这个的
所以 VMT 的大小显然是 36MB
所以基本上我理解了所有内容,直到最后一部分的最后两个步骤。我知道我们这样做“(2^24 * 16 位)+(2^24 * 1 位)+(2^242 * 1 位)”,因为我们有 2^24 个 VM 页面,每个页面都有 18 位,我我只是迷失了他如何进一步简化这个!
我不知道是我写错了数字(他的字迹确实很邋遢)还是什么!
所以任何帮助将不胜感激!