问题
问答题
在某系统中,数据从磁盘读入缓冲区,然后从缓冲区传入用户区,再在用户区中处理。假设该磁盘系统中,文件在磁道上非连续存放,磁头从一个磁道移至另一个磁道需要时间t1,逻辑上相邻数据块的平均距离为d磁道,每块的旋转延迟时间及传输到缓冲区的传输时间分别为t2和t3。问读取N个数据块的磁盘访问时间一共是多少另外,假设将缓冲区的数据传送到用户区所花费的时间为t4且t4远远小于读取一个数据块的磁盘访问时间,CPU对一块数据进行处理的时间为t5。问分别在单缓冲和双缓冲情况下,一块数据的总处理时间为多少
答案
参考答案:读取N个数据块的磁盘访问时间是:(N-1)×d×t1+(t2+t3)×N。读写磁盘的时间是由三个时间组成的,寻道时间(N-1)×d×t1,延迟时间t2×N,传输时间t3×N。
在单缓冲情况下,一个数据块的处理时间由以下几部分组成:从磁盘传输至缓冲区、从缓冲区传输至用户区、CPU处理时间。结果是:
((N-1)×d×t1+(t2+t3)×N)/N+t4+t5
在双缓冲情况下,两个缓冲区使得CPU的处理过程与传输过程在时间上重叠,当下一个数据内容从磁盘上读出时,CPU在同时处理前一个数据内容,因此结果是:
((N-1)×d×t1+(t2+t3)×(N)/N。