ehs*_*ian 4 paging caching memory-management tlb
我无法理解这个问题的答案:
考虑使用TLB寄存器的一级分页的OS.如果页面错误率为10%,并且在需要时应重新加载脏页面,请在以下情况下计算有效访问时间:
回答:
T = 0.8(TLB + MEM)+ 0.2 ( 0.9 [TLB + MEM + MEM] + 0.1 [TLB + MEM + 0.5(盘)+ 0.5(2Disk + MEM)] ) = 15,110 ns
你能解释一下原因吗?
在这种情况下,"有效"时间意味着"预期"或"平均"时间.因此,您需要花费在个别情况下访问页面所需的时间,并将每个案例的概率相乘.通过分成几个级别的案例,表达式有些复杂.案例是:
0.8(TLB + MEM)0.2(loooong expression)(表达式实际上没有那个括号,但我会把它作为一个错字,因为没有它,系数不会加1,如果他们没有意义别).案例是:
0.9(TLB + MEM + MEM).提到了单级分页,因此这里只有1个额外的内存访问,但实际的实现通常具有两级分页,因此将有2个额外的内存访问.0.5(Disk).(MEM+Disk)并读入新内容(Disk),然后给出0.5(2Disk + MEM)我认为在最后两个(交换)情况下应该包括一些额外的内存访问,因为需要两次访问来标记上一页不可用和页面表中可用的新页面.
这也是非常不现实的,因为在实际系统中,当需要在页面中阅读的空间时,系统总是选择一个干净的页面来替换.为了确保它具有干净的页面,有一个后台进程遍历脏页并将其写出.它需要一些计算资源,因此它应该实际上计入内存访问量,但更少,因为页面错误不需要等待写入完成.
表达式实际上是错误的.它应该是
T = 0.8(TLB + MEM)+ 0.2 ((0.9(TLB + MEM + MEM))+ 0.1(TLB + MEM + 0.5(盘)+ 0.5(2Disk + MEM)))
如果页面错误是TLB未命中的10%或
T = 0.8(TLB + MEM)+ 0.1(TLB + MEM + MEM)+ 0.1(TLB + MEM + 0.5(盘)+ 0.5(2Disk + MEM))
如果页面错误占所有访问的10%.你不明确有关,但我会假设以后如果公式不包括0.2*0.9,这表明前者.