某文件占10个磁盘块,现要把该文件磁盘块逐个读入主存缓冲区,并送用户区进行分析。假设一个缓冲区与一个磁盘块大小相同,把一个磁盘块读入缓冲区时间为80μs,将缓冲区的数据传送到用户区的时间是60μs,CPU对一块数据进行分析的时间为40μs。在单缓冲区和双缓冲区结构下,读入并分析完该文件的时间分别是()。
作者:孑小白
(1)如果我们单纯的思考每个流程,那么10次操作的总时间就是:TotalTime = (80+60+40)x10 = 1800(us)
(2)单缓存情况:由于下一次缓存读取的时间(80us)超过CPU分析的时间(40us),当下一个数据送到CPU进行分析的同时缓存也开始读取数据,那么就相当于节约了9次的CPU分析时间(40us):时间 = 1800 - 9 x 40 = 1800 - 360 = 1440(us)
(3)双缓存情况:当A缓存读取完数据,准备写入的时候,B缓存就准备读取数据,那么A缓存送到用户区的时间(60us)就被节约了下来(因为B缓存此时已经开始读取数据,除了第一次执行以外,剩余的9次,读取时间(90us)内另外一个缓存早已把数据送到用户区域(60us)),和(2)同理节约了9次的时间:时间 = 1440 - 60 x 9 = 900(us)