某计算机系统输入/输出采用双缓冲工作方式,其工作过程如下图所示,假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间T为10μs,由缓冲区送至用户区的时间M为6μs,系统对每个磁盘块数据的处理时间C为2μs。若用户需要将大小为10个磁盘块的Doc1文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用双缓冲需要花费的时间为( )μs,比使用单缓冲节约了( )μs时间。
双缓冲的运行时间为 108μs
- T:磁盘块读入缓冲区的时间,为10μs。
- M:由缓冲区送至用户区的时间,为6μs。
- C:系统对每个磁盘块数据的处理时间,为2μs。
下一次传输数据同时,CPU读取上一次数据并处理,最后一次的数据会单独占用8μs,所以运行时间计算就是,T*磁盘数+M+C
还有一个叫流水线的计算公式:第一次运行时长+(次数-1)*周期 套用在这道题上就是T+M+C +(10-1)*10 =108 这个周期是单次运行中,花费时间最长的部分。
单缓冲运行的时间为 168μs
在单缓冲中数据的传入和读取不能分开,因为只有一个缓存必须上一步执行完毕后才能,接受下一次的数据,CPU在处理数据的同时,下一次的数据可以传送进来,每次运行会节省2μs,最后一次需要单独占用时间处理。最后的运行时长就是:(T+M)*10+C=162