首页 > 试题广场 >

某文件占10个磁盘块,现要把该文件磁盘块逐个读入主存缓冲区,

[单选题]

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

  • 1500ms、1000ms
  • 1550ms、1100ms
  • 1550ms、1550ms
  • 2000ms、2000ms
推荐

在单缓冲区中,当上一个磁盘块从缓冲区读入用户区完成时,下一磁盘块才能开始读入,也就是当最后一块磁盘块读入用户区完毕时所用时间为150×10=1500ms,加上处理最后一个磁盘块的时间50ms,得1550ms。双缓冲区中,不存在等待磁盘块从缓冲区读入用户区的问题,10个磁盘块可以连续从外存读入主存缓冲区,加上将最后一个磁盘块从缓冲区送到用户区的传输时间50ms以及处理时间50ms,也就是100×10+50+50=1100ms。

发表于 2018-09-03 20:18:11 回复(1)
单缓冲:(100+50)x10+50=1550ms
双缓冲:100x10+50+50=1100ms
发表于 2020-03-18 11:34:19 回复(2)
单缓冲区第一块的处理时间:等待读入缓冲区:100,缓冲区当用户区:50,处理时间50,因此是200。第二块时间:在第一块处理时,已读入一半的缓冲区,因此只需要等待50,缓冲区到用户区50,处理时间50,因此是150。后面同理:因此总共是200+150×9=1550。 双缓冲区第一块时间:等待读入100,缓冲区到用户区:50,处理时间50,总共200。第二块时间:在缓冲区到用户区和在用户区处理消耗100时,已经读入第二块缓冲区,因此只有缓冲区到用户,用户处理的时间,共计100。后面同理,因此总共:200+100×9= 1100。
发表于 2019-06-14 12:47:54 回复(0)

单缓冲区总时间=(磁盘写入缓冲区时间 + 缓冲区读出时间) × 磁盘块数 + CPU处理最后一块的时间


双缓冲区总时间=磁盘写入缓冲区时间 × 磁盘块数 + 读出最后一块数据时间 + CPU处理最后一块的时间

发表于 2020-03-31 20:23:03 回复(0)
这里有个公式。设读入缓存的时间为T,从缓存读入用户区的时间为M,cpu处理时间为C,缓冲区的初始状态为空,用户区的初始状态为满。当C>T时,平均处理一次的时间为C+M。当C<T时,平均处理一次的时间为T+M。此题C=50<T+M=150,所以平均处理一次数据的时间为150。由于初始状态用户区已经有数据,而内存没有,所以需要进行9次,也就是150×9=1350。此时用户区有数据需要进行处理需要50,所以是1350+50=1400。当系统要想达到初始状态需要将数据调入内存,再送入用户区需要150。所以共需要1400+150=1550。 双缓冲区也有一个公式,初始状态为一个缓冲区满,一个不满,用户区满。当T>C+M时,平均处理一次数据的时间为T,当T<C+M时,平均处理一次数据的时间为C+M。所以此题平均处理一次的时间为100,同理100×9=900,再加上200,所以需要1100。 可能没有讲的特别清楚,欢迎大家指教。
编辑于 2020-09-11 17:17:57 回复(0)