一、磁盘基本结构
1、" 磁盘 " 的 立体结构
磁盘 是 冯诺依曼结构 中的 外存 , 也就是 辅助存储器 , 磁盘外接在计算机外部 ;
" 磁盘 " 的 结构是 立体的 , 一个磁盘中有多个 " 盘面 “ , 多个 " 盘面 " 都是绕 ” 轴心 " 进行旋转运动的 , 每个盘面都有一个读写 " 磁头 “ , " 磁头 " 都 连接在 ” 主杆 " 上 ;
- 盘面 : 磁盘中的 每个 圆形硬盘片 , 由金属或玻璃制成 , 涂有磁性材料 , 数据通过在磁盘表面上形成的磁场变化来存储 ;
- 轴心 : 支撑盘面旋转的 中心轴线 , 固定在硬盘驱动器的框架上 , 由 主杆 驱动 , 提供扭矩和转速 , 使盘面能够以恒定的速度旋转 ;
- 主杆 : 位于硬盘 驱动器 内部 , 连接轴心 , 驱动磁盘盘片旋转 ;
- 磁头 : 又称为 读写磁头 , 位于磁盘驱动器的臂部 , 可以在盘面上移动 , 并且能够精确地定位到特定的磁道和扇区 ;
2、" 盘面 " 的 结构
磁盘 内部有多个 盘面 , 每个盘面是一个圆形的硬盘片 , 可以独立存储数据 ; 每个盘面都有自己的 " 磁道 " 和 " 扇区 " ;
- 磁道 : 圆形 的路径 , 沿着磁盘表面布置 ; 每个磁道位于特定的半径位置上 , 从磁盘中心到边缘有多个不同半径的磁道 ;
- 磁道编号 : 由外到内 , 从 0 开始编号 ;
- 扇区 : 每个磁道 被划分为 多个扇区 , 扇区是存储数据的最小单位 ; 一般扇区大小为 512 字节 ;
- 扇区编号 : 在每个磁道内部进一步划分的部分 ;
盘面的结构如下 :
二、磁盘运行机制
1、" 磁头 " 的 读取机制
磁盘 运行时 , 会沿着一个方向匀速转动 , 使得磁盘能够 高效地 存储 和 检索 数据 ,
通过 精确控制 磁头的 移动 和 磁盘的旋转 , 磁盘驱动器 可以实现快速的数据访问速度 ,
磁盘的转速是 恒定的 , 用 转每分钟 ( RPM , Revolutions Per Minute ) 表示 ,
常见的 转速 有
- 5400 RPM
- 7200 RPM
- 10000 RPM
" 磁头 " 是负责读取和写入数据的装置 , 位于磁盘驱动器的臂部 , 磁头在读写操作时有 两种 运行方向 :
- 径向运动 : 查找磁道 , 磁头沿着盘面的半径方向移动 , 从磁盘的 内侧 向 外侧 运动 , 或 从 外侧向内侧运动 ;
- 圆周运动 : 查找扇区 , 在磁头径向移动到正确的磁道后 , 它可以进行微小的圆周运动 , 以准确定位到正确的扇区位置 ;
2、读写数据的 " 寻道时间 "
磁盘 读取数据时 , 磁头 进行 径向运动 , 查找磁道 ,
磁头沿着盘面的半径方向移动 , 从磁盘的 内侧 向 外侧 运动 , 或 从 外侧向内侧运动 ;
磁头 查找数据 移动到 磁道 所需的时间 , 称为 " 寻道时间 " ;
3、读写数据的 " 等待时间 "
磁盘 是 沿固定方向 , 不停地在转动 ,
磁头 找到 磁道 之后 , 需要 等待 磁盘 匀速转动 , 当 指定的磁道的扇区 位置转动到 磁头下方时 , 才能 开始 进行 圆周运动 , 读取 指定 磁道 的 指定 扇区 的数据 ,
这个等待的过程 , 称为 " 旋转延时 " 或 " 等待时间 " ;
4、读写数据的 " 存取时间 "
读写数据的 " 存取时间 " , 与 " 寻道时间 " 和 " 等待时间 " 之间的关系如下公式所示 :
教科书上定义的 存取时间 , 指的是 磁头 找到 指定数据 的 平均时间 , 软考考试的时候这么做题就行 ;
实际上 , 数据的 " 存取时间 " , 还需要考虑到 " 数据传输时间 " ,
" 数据传输时间 " 就是 实际读取或写入数据的时间 , 取决于数据传输速率和数据块大小 ;
5、磁盘存取时间案例
磁盘 的 磁头 从 一个磁道 移动到 另一个磁道 需要 10 ms , 这是 相邻 2 个磁道 跨越所需的时间 ,
文件在磁盘上 非连续存放 , ( 表示每个 数据块 的 读取 都是独立的 )
每个 数据块 占用 盘面 10 个磁道 ,
每个数据块 旋转等待延时 为 100 ms ,
每个数据块 的 传输时间 2 ms ,
计算读取 有 100 个数据块的 文件 时间 ;
计算过程如下 :
相邻两个磁道之间跨越 需要消耗 10 ms 时间 , 一个数据块有 10 个磁道 ,
则 一个据块 需要跨越 10 次 磁道 , 寻道时间 消耗为
ms ;
每个数据块 旋转延迟 100ms , 磁头找到扇区后 , 磁头 就不再进行圆周运行 , 因此 读取 一个 数据块 的 旋转延迟只有一次 ,
则 读取一个数据块的时间为 :
ms
文件在磁盘上 非连续存放 , 这就意味着 每次读取一个文件块 , 都需要有 旋转等待时延 和 寻道时间 , 每个文件块 都是独立读取的 , 不存在节省 寻道时间 和 旋转时延 的情况 ;
读取 有 100 个数据块的 文件 消耗的时间 :
ms