硬盘的秘密(下)

简介: 硬盘的秘密(下)

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 这样的逻辑块序列来对应具体的物理块。

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

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

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


最后


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

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


相关文章
|
4月前
|
算法 数据可视化 API
常用的Python第三方库中哪个库可以用于图像处理?
常用的Python第三方库中哪个库可以用于图像处理?
364 5
|
1月前
|
机器学习/深度学习 人工智能 算法
拒绝数据荒!手部分带你用合成数据开启大模型实战
本文深入探讨大模型时代的关键突破:合成数据与参数微调。面对高质量数据稀缺、隐私与成本难题,合成数据成为“无中生有”的解决方案。从技术原理到实践步骤,解析如何利用大模型生成数据、优化训练,并通过LLaMA-Factory等平台实现低成本定制化AI。未来,每个企业都将拥有专属“智能大脑”。
157 0
|
10月前
|
数据格式
Modbus协议详解:RTU帧与ASCII帧的差错校验
总的来说,RTU和ASCII各有优势,选择哪种方式取决于具体的应用需求。如果需要高效的数据传输和强大的错误检测能力,可能会选择RTU。如果需要易于理解的数据表示和简单的错误检测方式,可能会选择ASCII。
514 14
|
11月前
|
安全 量子技术 数据安全/隐私保护
量子计算的未来蓝图:从量子比特到量子霸权
量子计算的未来蓝图:从量子比特到量子霸权
452 28
|
缓存 网络协议 安全
QoS
QoS
1030 5
|
Web App开发 缓存 监控
前端性能优化实战:从代码到部署的全面策略
前端性能优化实战:从代码到部署的全面策略
349 1
|
人工智能 搜索推荐 大数据
智能食品生产:自动化与定制化的食品制造
【10月更文挑战第26天】本文探讨了智能食品生产中的自动化与定制化趋势。自动化技术在原料处理、加工制造、包装和质检等环节的应用,显著提高了生产效率和产品质量。智能化技术则通过物联网、大数据、云计算和人工智能等手段,实现了更高效、精准和灵活的生产,并能满足消费者的个性化需求。虽然面临高成本、技术维护和数据安全等挑战,但政府和企业共同努力,将推动食品行业的健康和可持续发展。
|
JSON 调度 数据库
Android面试之5个Kotlin深度面试题:协程、密封类和高阶函数
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点。文章详细解析了Kotlin中的协程、扩展函数、高阶函数、密封类及`inline`和`reified`关键字在Android开发中的应用,帮助读者更好地理解和使用这些特性。
432 1
HTTP报文格式概览
【6月更文挑战第21天】HTTP报文始于起始行:请求行(含方法如GET、POST,URL和HTTP版本)用于指示服务器执行操作;响应行(含HTTP版本、状态码,如200,和原因短语,如OK)告知客户端操作结果。
|
机器学习/深度学习 算法 算法框架/工具
e - 一个神奇的存在
本文介绍了数学常数e,即自然对数的底,约等于2.71828,由欧拉命名。e是一个无限不循环小数,可通过级数1 + 1/n!表示。e在数学、物理、工程和计算机科学等领域有广泛应用,尤其在微积分、复利、概率统计和算法分析中扮演关键角色。它是自然界和科学研究中的基本概念。
1540 1