关于缺页中断后快表的变更时机的疑问
题目:
某分页式虚拟存储系统,用于页面交换的磁盘的平均访问及传输时间是20ms。页表保存在主存,访问时间为1μs,即每引用一次指令或数据,需要访问两次内存。为改善性能,可以增设一个关联寄存器,如果页表项在关联寄存器里,则只要访问一次内存就可以。假设80%的访问其页表项在关联寄存器中,剩下的20%中,10%的访问(即总数的2%)会产生缺页。请计算有效访问时间。
答案1:有效访问时间 = 80% * 1微秒 + (1-80%)((1-10%) * 1微秒 * 2 + 10% * (1微秒 * 3 + 20毫秒)) = 401.22微秒
答案2:有效访问时间 = 80% * 1微秒 + (1-80%)((1-10%) * 1微秒 * 2 + 10% * (1微秒 * 2 + 20毫秒)) = 401.2微秒
参考答案给的是答案2,解释如下:
…访问TLB(不计时间)+ 访问内存中的页表(1us)+ 缺页中断(20ms)+ 访问TLB(不计时间)+ 访问物理地址中的数据(1us);
先访问TLB(不计时间),访问了一次页表(1us),缺页中断(20ms),再次访问TLB(不计时间)(此时TLB还未更新),访问页表(1us),修改TLB,访问物理地址中的数据(1us)。
请牛友帮忙分析下哪种解释比较合理,感谢不尽!