磁盘结构:
- 磁盘柱面 (Cylinder):磁盘表面上的同心圆轨迹,是磁头读写数据的基本单位。
- 磁道 (Track):磁头在同一个柱面上读写数据的同心圆轨迹。
- 扇区 (Sector):磁道上的最小数据存储单位,通常为 512 字节。
- 磁头 (Read/Write Head):在磁盘表面上读写数据的装置。
- 磁盘壳 (Disk Platter):用于存储数据的圆盘,通常由铝或玻璃制成。
磁盘参数:
- 容量 (Capacity):磁盘可以存储的总数据量,通常以 GB 或 TB 为单位。容量越大,数据存储容量越大。
- 转速 (Rotational Speed):磁盘每分钟的转速,通常以 RPM (Revolutions Per Minute) 为单位。转速越快,数据读写性能越好。
- 存取时间 (Access Time):读取或写入数据所需的平均时间,包括寻道时间和旋转延迟时间。存取时间越短,性能越好。
- 数据传输速率 (Data Transfer Rate):每秒可以读写的数据量,通常以 MB/s 为单位。传输速率越高,性能越好。
- 缓存 (Cache):用于提高读写速度的高速缓存存储器,通常 DRAM 或 SRAM 制成。缓存越大越快,性能越好。
- 接口类型 (Interface Type):磁盘与主机系统之间的连接方式,如 SATA、SAS、SCSI 等,不同接口有不同的性能和特点。
磁盘工作原理:
- 读取数据:磁头定位到指定磁道和扇区,从磁盘表面读取数据。
- 写入数据:磁头定位到指定磁道和扇区,向磁盘表面写入数据。
- 磁头定位:通过电机驱动磁头在磁道之间移动,完成寻道过程。
- 数据传输:通过接口将数据在磁盘和主机系统之间传输。
磁盘性能优化:
- 提高转速:转速越高,寻道时间和旋转延迟时间越短,性能越好。
- 优化缓存:增加缓存容量和命中率,可以降低平均存取时间。
- 选择合适接口:如 SATA、SAS 等不同接口有不同的性能特点,要根据需求选择。
- 采用固态硬盘 (SSD):SSD 没有机械运动部件,存取时间更短,性能更佳。
# 练习题
例题 1:
某台服务器使用一块 15000 RPM 的 SAS 硬盘,平均寻道时间为 2.5 ms。如果每次读写的数据大小为 16 KB, 且磁盘的峰值传输速率为 800 MB/s, 则该硬盘的总平均存取时间是多少?
解答步骤:
- 计算旋转延迟时间: 1/(2*15000) = 0.033 ms
- 计算寻道时间: 2.5 ms
- 计算传输时间: 16 KB / 800 MB/s = 0.02 ms
- 计算总平均存取时间: 0.033 + 2.5 + 0.02 = 2.553 ms
例题 2:
某台服务器使用一块 10000 RPM 的 SATA 硬盘,最短寻道时间为 2 ms, 最长寻道时间为 20 ms。如果每次读写的数据大小为 8 KB, 且磁盘的峰值传输速率为 600 MB/s, 则该硬盘的总平均存取时间是多少?
解答步骤:
- 计算旋转延迟时间: 1/(2*10000) = 0.05 ms
- 计算平均寻道时间: (2 + 20) / 2 = 11 ms
- 计算传输时间: 8 KB / 600 MB/s = 0.0133 ms
- 计算总平均存取时间: 0.05 + 11 + 0.0133 = 11.0633 ms
例题 3:
假设磁盘磁头从一个磁道移至相邻磁道需要 2ms。文件在磁盘上非连续存放,逻辑上相邻数据块的平均移动距离为 5 个磁道,每块的旋转延迟时间及传输时间分别为 10ms 和 1ms,则读取一个 100 块的文件需要()ms
解答步骤:
- 磁头从一个磁道移至相邻磁道需要 2ms
- 文件在磁盘上非连续存放,逻辑上相邻数据块的平均移动距离为 5 个磁道
- 每块数据的旋转延迟时间为 10ms
- 每块数据的传输时间为 1ms
那么,计算读取 100 块文件的总时间可以分为以下几个部分:
平均寻道时间:
- 平均寻道距离为 5 个磁道
- 每次寻道需要 2ms
- 共需要 100 次寻道
- 总寻道时间 = 100 x 5 x 2ms = 1000ms
旋转延迟时间:
- 每块数据的旋转延迟时间为 10ms
- 共 100 块数据
- 总旋转延迟时间 = 100 x 10ms = 1000ms
数据传输时间:
- 每块数据的传输时间为 1ms
- 共 100 块数据
- 总传输时间 = 100 x 1ms = 100ms
因此,读取这个 100 块的非连续文件总共需要:
1000ms + 1000ms + 100ms = 2100ms = 2.1s
综上所述,读取这个 100 块的非连续文件需要 2.1 秒。