写入磁盘是否比读取磁盘更昂贵?例如 - 写入 1 GB 的记录文件与读取整个文件相比。
答案1
在驱动器级别,读取扇区操作所需的时间与写入扇区操作大致相同(或更长)。对于读取扇区,命令必须通过驱动器接口(例如 SATA)到达,命令解码,寻道,扫描地址标记并记录 ID 直到找到扇区,将扇区数据读入缓冲区,使用 ECC(错误校正码)验证扇区,然后最终发送扇区数据。(请注意,人们普遍误以为扇区数据可以直接从读取头传输到接口。绝对错误:扇区数据始终完全缓冲,并且始终仅在读取和验证整个扇区后以全接口速度传输。)如果执行并缓存预读,则后续顺序读取将不会有寻道和旋转延迟。对于写入扇区,命令和扇区数据必须通过驱动器接口到达,命令解码,寻道,扫描地址标记并记录 ID 直到找到扇区,使用 ECC 写出扇区,并通知主机完成。
在操作系统或文件系统级别,创建新文件时写入操作更为复杂。读取或重写现有磁盘文件仅需要查找数据扇区(或簇)的位置。写入新文件或向文件附加内容将需要首先从空闲列表中分配扇区/簇,将这些扇区/簇分配给文件(目录条目更新?),然后写出数据。请注意,磁盘分配表通常会尽快更新(即写入磁盘),甚至可能在文件数据之前更新,以保持文件系统的完整性。如果您在创建文件时注意到/听到过大量磁盘寻道,则可以假设磁头在分配表和新文件之间移动。