[理工] 104台大电机OS 第八题

楼主: Transfat (Transfat)   2016-12-24 21:33:10
http://imgur.com/a/c6ipC
之前有人问过了,不过我还是有点不懂的地方。
我的了解EMAT(effective memory access time)= TLB hit ratio*(TLB hit time+memory
access time)+TLB miss ratio*(TLB hit time+memory access time*2)
// memeory access time*2 是因为要一次去access memory to get the page table and
frame, plus the time to access memory to get the data.
这题又加入一个backing store(secondary store), 所以我觉得总共的时间是:
假设TLB miss ratio=p%, total page fault ratio=q%, 题目给定TLB access time= 1ns,
memory access time=20ns, backing store access and transfer time = 2000000 ns,
所以EMAT= (1-p)*(1+20)+p*(1+20*2)+p*q*(1+20+2000000)
意义就是TLB hit中了,要花TLB access time+一次memory access time, 加上如果TLB miss,
要花一次TLB access time.(do nothing)+2次memory access time, 加上如果又page
fault, 要花1次TLB access time+1次memory access time+一次backing store access
time.
所以把(B)数据带进去, p=0.001, q=0.00001
EMAT=0.999*(1+20)+0.001*(1+40)+0.001*0.00001*(2000021)=21.04, 可是答案给(B)是
对的,所以应该是我哪观念搞错了,请教一下大家,感谢
作者: darren0831 (达)   2016-12-24 21:57:00
那个page fault的时间应该多乘了ppage fault发生后要额外花时间去disk抓正确资料直接page fault发生的比例乘以所需要的时间
楼主: Transfat (Transfat)   2016-12-24 22:04:00
不用先去确认TLB miss 再去算page fault ratio? 还是因为他讲"total" page fault ratio
作者: yupog2003 (屁股)   2016-12-24 22:05:00
嗯嗯,total page fault ratio指的应该就是global miss
楼主: Transfat (Transfat)   2016-12-24 22:07:00
感谢你><
作者: yupog2003 (屁股)   2016-12-24 22:07:00
我的算式:1*(1+20)+0.001*20+0.00001*2000000=41.02我习惯全用global miss rate下去看,每个人习惯不同
作者: darren0831 (达)   2016-12-24 22:09:00
我跟y一样 恐龙跟洪逸都这样算
作者: yupog2003 (屁股)   2016-12-24 22:09:00
另外2000000感觉应该不用再加21,因为读到page table的时候就知道page fault了,当时就没有读第二次memory从disk抓完资料到memory才会执行第二次memory access
作者: darren0831 (达)   2016-12-24 22:11:00
感觉原PO想太多了
作者: yupog2003 (屁股)   2016-12-24 22:11:00
但是这点我没有非常确定,因为常常被四舍五入掉我也不知道我的观念是否正确
作者: darren0831 (达)   2016-12-24 22:24:00
恩 想想还是要加21耶Orz因为题目只有给DISK相关的时间 page table 跟TLB的时间应该也要算在处理page fault上面
楼主: Transfat (Transfat)   2016-12-24 22:26:00
我想到我以前也用y大的方式算过,可是刚刚又突然忘记观念了QQ
作者: yupog2003 (屁股)   2016-12-24 22:26:00
嗯嗯,那我再回去想想,我先确认我自己的一个观念如果page fault发生:TLB+page table+disk+memory这个流程是正确的吗?
作者: darren0831 (达)   2016-12-24 22:29:00
其实我一直有个疑问张凡CPU去查TLB跟page table是同时的,但恐龙的公式却是分开的XD回Y大根据笔记是这样没错
作者: yupog2003 (屁股)   2016-12-24 22:35:00
是上课说的吗?我在书上找不到有同时的地方,看到比较有关的在下册75页,可是感觉他是TLB miss才去查table的阿对拉,应该还是要加,因为disk在传输的时候cpu可能会去做其他工作,等disk传输完之后全部都要重来感谢d大释疑XD
作者: darren0831 (达)   2016-12-24 22:40:00
因为我有纪录他上课说的话 课本我也没印象有特别表示
作者: aa06697 (todo se andarà)   2016-12-25 00:52:00
请问 “TLB miss,要花一次TLB access time.(do nothing)+2次memory access time”这边 为什么不用再乘page hit ratio?为什么是直接用TLB miss的rate(0.001) 而不是用total page hit rate(1 - total page fault = 0.99999) @@~~~不是应该是分成 TLB hit / TLB miss but page hit / TLBmiss and page fault 这样吗~? 中间那段应该不能只看TLB miss的ratio吧qq没事....别理我XDDDD

Links booklink

Contact Us: admin [ a t ] ucptt.com