某文件占100个磁盘块,现要把该文件磁盘块逐个读入主存缓冲区,并送用户区进行分析。假设一个缓冲区与一个磁盘块大小相同,把一个磁盘块读入缓冲区的时间为200bμs将缓冲区的数据传送到用户区的时间是100μs,CPU对一块数据进行分析的时间为100μs。在单缓

admin2019-12-10  48

问题 某文件占100个磁盘块,现要把该文件磁盘块逐个读入主存缓冲区,并送用户区进行分析。假设一个缓冲区与一个磁盘块大小相同,把一个磁盘块读入缓冲区的时间为200bμs将缓冲区的数据传送到用户区的时间是100μs,CPU对一块数据进行分析的时间为100μs。在单缓冲区和双缓冲区结构下,读入并分析完该文件的时间分别是(          )。

选项 A、30000μs、20000μs
B、30100μs、20200μs
C、30100μs、30100μs
D、20200μs、20200μs

答案B

解析 这是一个简单的缓冲区的问题。由于缓冲区的访问是互斥的,所以对单一缓冲区,从磁盘写入和读出到用户区的操作必须串行执行,也就是要保证互斥操作。而CPU对数据的分析与从用户区读数据也是需要互斥操作,但是CPU分析与从磁盘写入缓冲区的操作可以并行。从本题看,由于分析所用的时间小于从磁盘写入缓冲区的时间,因此,CPU会空闲。单缓冲区的总时间=(磁盘写入缓冲区时间+缓冲区读出时间)×100+CPU处理最后一块数据的时间=(200+100)×100+100=30100μs。当采用双缓冲区时,每块缓冲区的操作也必须满足互斥操作,但是,对两块缓冲区的操作却可以并行,所以,当第一个缓冲区写满以后,磁盘紧接着写另一个缓冲区,同时,前一个已经满了的缓冲区被读出到用户区,并立即进行CPU的数据分析。读出操作和数据分析必须互斥进行,故,从时间上看,当数据被读出并分析后,恰好另一个缓冲区也写满了,可以立即进行读出数据到用户区并进行数据分析。两块缓冲区交替进行读写,直到数据分析完毕,因此,总时间一(磁盘写入缓冲区时间)×100+读出最后一块数据时间+CPU分析最后一块数据时间=(200)×100+100+100=20200μs。
转载请注明原文地址:https://jikaoti.com/ti/3TDjFFFM
0

最新回复(0)