传统的机械硬盘一般由盘片和磁头组成,而盘片上又被进一步划分成磁道和扇区,以方便数据的管理与存储。系统在读写磁盘时,需要先将磁头移动到数据所在的磁道上。此时由于盘片旋转,会将数据所在的扇区旋转到磁头下方,从而进行数据的读取或写入。现在的机械硬盘一般包含多个盘片,因此也就有了所谓柱面的概念,本文只是阐述I/O请求服务时间的概念,因此不再概述讨论磁道、扇区和柱面相关的细节。
磁盘结构因此普通的I/O请求主要包括以下三个步骤:寻道操作、磁盘旋转操作和数据传输操作。因此假设此时有n个I/O请求,其请求队列如下所示:
请求队列以上为请求队列,假设请求 Ri 是请求 Rj 的前一个请求,Dij 为请求 Ri 和请求 Rj 之间的距离,Bj 为请求 Rj 的数据块长度。Lj 为请求 Rj 的扇区起始位置。则请求 Rj 的服务时间 Tj 可以通过如下公式求得:
请求 Rj 服务时间 Tj其中函数seek表示寻道延迟,rot表示旋转延迟,trans表示传输延迟。rot延迟与硬盘的转速有关,速度越快旋转延迟越小。trans延迟与硬盘接口和传输速度有关,速度越快,传输时延越小。而seek时延则可以根据文献[1]给出的模型通过距离Dij求出,其公式如下所示:
请求Rj的寻道延迟[1] Ruemmler C, Wilkes J. An introduction to disk drive modeling[M]. IEEE Computer Society Press, 1994.
网友评论