案例:有一个将页表存放在内存中的一级页表的分页系统,下面两种情况下,请计算有效访问时间分别是多少。
1. 系统中没有快表,访问一次内存需要0.2us;
2. 系统中有快表,快表命中率为90%,假定查快表花费的时间为λ,访问一次内存仍需0.2us。
分析:一级页表,访问内存中的一个数据需要两次访问内存,第一次是查页表找地址,第二次是根据地址找数据。
这个题目很简单:
对于问题1,如果页面在内存中,那么时间就是0.2+0.2=0.4us
对于问题2,如果页面在内存中,并且快表有记录,那么时间就是λ+0.2(查快表λ+找数据),如果快表没有记录,那么时间就是λ+0.2+λ+0.2(找快表λ+找页表+更新快表λ+找数据);此时再根据百分比计算就好了。
数据在内存中,怎么都好说,就怕数据不再内存中,就麻烦了。因为数据不再内存中就得到外存去找,这时就要发生中断,假设中断的处理时间是τ,那么这是查找一次数据的时间是多少呢?先看看流程:
先查快表不中λ,再查页表不中0.2,发生中断τ(把数据存入了内存),更新页表0.2,更新快表λ,查找数据0.2,
此时总的时间是:λ+0.2+τ+0.2+λ+0.2。
因此上面红色字体部分大家一定要记住!!
老羊快跑 一个简单、纯粹的公众号,欢迎关注。