硬盘的秘密(下)

简介: 硬盘的秘密(下)

image.png


不知看到这大家是否有点疑惑,每个扇区包含相等的数据位,那明显距离圆心更近的同心圆扇区看起来能存的数据比最外围的扇区小很多,那岂不是外围的数据位要迁就最内部的?


image.png


是的。为了让每个磁道都有相等的扇区数,外圈磁道的扇区之间间隔很大,不过以前硬盘的数据存储密度很低,所以还能接受。


而随着硬盘存储密度的上升这样就造成了极大的浪费,因此就搞了个 zoned-bit recording 技术,目的就是在外圈磁道上放置比内圈磁道更多的扇区,看下这个图就明白了。


image.png


具体怎么实现我就不展开了,这不重要。

重要的是解惑,并不是像有些书上说的,死板的按照最内圈的扇区数来确定所有磁道的扇区数。

硬盘通常由一个或者多个盘片组成。

例如下图就有三个盘片,每个盘片有上下两个盘面,对应的会有六个磁头。


image.png


磁头号从上到下以 0 开始计数,由磁头臂带领着磁头做圆弧形运动。每个盘面的磁道也由 0 开始计数,相同编号的磁道组成的区域称之为柱面,发挥下想象力应该可以 get 到,我再贴个图助力一下。


image.png


为什么要有柱面这一术语呢?

因为几个磁头其实都是依靠同一个磁头臂运动的,所以要转就一起转,并且都是一个角度。

因此想要数据读取的快,那么数据就应该在统一柱面上顺序存储,比如最上面的盘面的第 1 个磁道上写不下了,那继续写到背部的第二个盘面上,这样磁头臂只要寻道一次即可,读数据的时候也只要寻道一次即可。

从这里我们也可以知道如果一个硬盘的盘片越多,速度就越快。


硬盘访问的时间


从上文我们已经知道硬盘是以扇区为基本单位的,所以硬盘的访问就是要找到对应的扇区。

盘片的表面是磁性的,盘片随着主轴旋转而转动,当要访问某个扇区的时候首先要转动磁头臂找到对应的磁道,这叫寻道时间。

这时盘片还是在旋转中的,磁头可以感知到下方数据位上的值,等旋转到目标扇区的时候就晓得该读/写数据了,这个时间称为旋转时间,所以我们买硬盘的时候会看到  7200RPM、15000RPM 啥的,转的越快磁盘找到扇区的时间就越短。

最后就是读取数据的传送时间了。

所以硬盘数据访问延迟就是这三个时间相加,而最慢的就是寻道时间,我给下 CSAPP 提供的数据:

总延时=寻道时间+旋转时间+传送时间=9ms+4ms+0.02ms=13.02ms

当然不同的硬盘总延时肯定不一样,反正知道寻道时间最慢就行了。


逻辑磁盘块


从上述的物理结构我们已经知道需要找到盘面,再找到磁道,最后找到扇区才能读取数据,有点复杂。

没必要把这么不友好的访问姿势暴露给操作系统,所以就搞了个逻辑磁盘块,屏蔽了底层访问的细节,提供编号 0 、1、2.....n 这样的逻辑块序列来对应具体的物理块。

这样操作系统要访问磁盘就很舒服了,不过最终还是要找到对应的扇区的,而磁盘控制器就维护了逻辑块和实际物理扇区的映射关系。

磁盘控制器属于硬盘里面的一个硬件,它会将逻辑块翻译成:盘面、磁道、扇区这么一个三元组。

至此平时我们说的逻辑块与硬盘的物理访问也对应上了。


最后


身为普通程序员我觉得对硬盘的了解到这个地步就差不多了,该知道的都知道了。

如果有什么纰漏指出欢迎指正!


相关文章
|
8月前
|
人工智能 安全 机器人
保姆级教程:2026年本地部署OpenClaw+阿里云部署Clawdbot+集成Telegram步骤(含代码可直接复制)
在AI自动化办公与跨终端协同需求爆发的2026年,OpenClaw(原Clawdbot、Moltbot)凭借“自然语言驱动、多场景适配、零技术门槛”的核心优势,成为个人与轻量团队的首选智能AI助手,无需专业编程基础,就能轻松完成文档处理、代码生成、会议纪要整理、多模态解析等多元化办公任务,堪称“全天候在线的AI数字助理”。
1539 2
|
8月前
|
数据采集 存储 人工智能
2026年OpenClaw+Playwright全能指南:阿里云+本地部署+动态网页爬取实战教程
在数据驱动的时代,“数据就在网页上却抓不下来”是无数从业者的痛点——尤其是面对MWC议程这类多Tab、懒加载的复杂单页应用(SPA),传统工具要么束手无策,要么需要复杂的脚本编写。2026年,OpenClaw凭借Playwright Skill实现革命性突破,无需手动写代码,仅用自然语言指令就能让AI自动模拟浏览器操作、渲染动态内容、提取结构化数据,彻底攻克复杂网页抓取难题。本文将详解**2026年阿里云OpenClaw超简单部署流程**与**本地私有化部署方案**,深度拆解Playwright Skill的核心用法与商用场景,附带完整代码命令与避坑指南,让零基础用户也能快速解锁“几乎能爬任意
3731 5
|
7月前
|
存储 弹性计算 测试技术
阿里云服务器ECS实用攻略:试用条件、免费额度、试用步骤及常见问题解答
阿里云为新用户提供ECS免费试用服务,完成实名认证的用户最长可享3个月的云服务器ECS试用,充分体验其弹性与灵活性。个人版总免费额度300元,企业版660元,均含每月220GB公网流量。试用期内可灵活调整配置,试用地域多达7个。本文为大家提供详尽的试用攻略与常见问题解答,帮助大家了解具体的试用规则和流程,以供参考。
|
9月前
|
消息中间件 数据可视化 数据安全/隐私保护
【2026最新 架构环境安装篇三】Docker安装RabbitMQ4.x详细教程
通过Docker快速部署RabbitMQ服务,拉取镜像并运行容器,配置用户名密码及端口映射,访问服务器IP:15672即可进入管理界面,实现消息队列的可视化管理。
345 5
|
机器学习/深度学习 数据可视化 测试技术
YOLO11实战:新颖的多尺度卷积注意力(MSCA)加在网络不同位置的涨点情况 | 创新点如何在自己数据集上高效涨点,解决不涨点掉点等问题
本文探讨了创新点在自定义数据集上表现不稳定的问题,分析了不同数据集和网络位置对创新效果的影响。通过在YOLO11的不同位置引入MSCAAttention模块,展示了三种不同的改进方案及其效果。实验结果显示,改进方案在mAP50指标上分别提升了至0.788、0.792和0.775。建议多尝试不同配置,找到最适合特定数据集的解决方案。
4464 0
|
数据格式
Modbus协议详解:RTU帧与ASCII帧的差错校验
总的来说,RTU和ASCII各有优势,选择哪种方式取决于具体的应用需求。如果需要高效的数据传输和强大的错误检测能力,可能会选择RTU。如果需要易于理解的数据表示和简单的错误检测方式,可能会选择ASCII。
893 14
|
SQL 弹性计算 运维
云卓越架构:稳定性支柱整体解决方案综述
阿里云卓越架构聚焦于五大支柱,其中稳定性是关键。常见的云上稳定性风险包括架构单点、容灾设计不足和容量规划不合理等。为提升稳定性,需从架构设计时考虑容灾与容错、实施变更时遵循“三板斧”原则(灰度发布、可观测性和可回滚性),并确保快速响应和恢复能力。此外,通过客观度量、主观评估和巡检等方式识别风险,并进行专项治理。识货APP作为成功案例,通过优化容器化改造、统一发布体系、告警系统和扩缩容机制,实现了99.8%的高可用率,大幅提升了业务稳定性。
|
JSON 数据格式 Python
X86架构属于国产化架构吗
在信息时代,处理器架构至关重要。本文通过简单流程和代码示例,帮助初学者理解X86架构是否属于国产化架构。首先明确国产化架构指本土研发的处理器架构,如龙芯、飞腾等。X86架构由Intel设计,主要由外资公司开发,通常不被视为国产架构。文章提供了一个判断X86架构是否国产化的流程图,并用Python代码实现判断过程。Architecture类描述架构来源和类型,App类负责获取和判定架构信息。通过这些步骤,初学者可以更好地掌握相关知识并提升开发技能。
1561 5
|
JSON 中间件 Go
Go语言Web框架Gin介绍
【7月更文挑战第19天】Gin是一个功能强大、高性能且易于使用的Go语言Web框架。它提供了路由、中间件、参数绑定等丰富的功能,帮助开发者快速构建高质量的Web应用。通过本文的介绍,你应该对Gin框架有了初步的了解,并能够使用它来开发简单的Web服务。随着你对Gin的深入学习和实践,你将能够利用它构建更复杂、更强大的Web应用。