数据存储

举报
去休 发表于 2021/06/07 20:36:32 2021/06/07
【摘要】 数据是如何存储在硬盘中的?!机械硬盘 :抛开一些复杂的概念,我们只需了解磁盘内部物理结构是由磁头和盘片组成。盘片上涂有磁性材料,通过改变磁性物质的极性来记录数据,分别极性分别对应0和1。磁头用来读取或者修改盘片上磁性物质的状态,读取数据时根据磁性材料的不同极性还原成01数据流。磁头依靠磁盘的高速旋转引起的空气动力效应悬浮在盘面上,不与盘片直接接触盘面: 一张盘片有上下两个盘面磁道:盘片上拥...

数据是如何存储在硬盘中的?!

机械硬盘 :抛开一些复杂的概念,我们只需了解磁盘内部物理结构是由磁头盘片组成。

  • 盘片上涂有磁性材料,通过改变磁性物质的极性来记录数据,分别极性分别对应0和1。
  • 磁头用来读取或者修改盘片上磁性物质的状态,读取数据时根据磁性材料的不同极性还原成01数据流。

磁头依靠磁盘的高速旋转引起的空气动力效应悬浮在盘面上,不与盘片直接接触


盘面: 一张盘片有上下两个盘面

磁道:盘片上拥有同一半径的圆周称为磁道(同心圆)

柱面: 不同盘面上的同一磁道构成一个圆柱,通常称做柱面

扇区:把磁道划分成若干段,每段称为一个扇区。扇区是硬盘上存储的物理单位,包括512个字节的数据和一些其他信息。(可以理解为地址和数据)

​ 地址标识符: 磁头号:磁道号:扇区号:是否可靠

扇区编号: 编号并不一定需要连续,原因是控制器在处理一个扇区的数据期间,磁盘同时也会旋转,于是采用交叉因子的方式间隔编号。将交叉因子设定为2﹕1时,磁头要读出磁道上的全部数据,磁盘只需转两周(10个扇区 l,6,2,7,3,8,4,9,5,10)

​ 硬盘的写操作是优先写满同一柱面,先写满一个扇区,再写该柱面的下一个扇区,磁头是不会移动到别的磁道上的,从操作系统底层来看,数据存放不是常规意义的连续)。

​ 磁头靠近主轴接触的表面,即线速度最小的地方,其不存放任何数据,称为启停区,启停区外是数据区。在最外圈,离主轴最远的地方是“0”磁道,硬盘数据的存放就是从最外圈开始的。硬盘不工作时,磁头停留在启停区,当需要从硬盘读写数据时,磁盘开始旋转。旋转速度达到额定的高速时,磁头就会因盘片旋转产生的气流而抬起,这时磁头才向盘片存放数据的区域移动。

: 物理上相邻的N个扇区称为簇。操作系统读写磁盘的基本单位是扇区,而文件系统的基本单位是簇。簇越大存储性能越好,但空间浪费严重。簇越小性能相对越低,但空间利用率高。


固态硬盘:把磁存储改为集成电路存储,固态硬盘储存数据靠的是闪存,其基本存储单元是浮栅晶体管,其中的浮栅被二氧化硅包裹,和上下绝缘,在断电时也能够保存电子,当电子数量高于一个中间值就表示 0 ,低于中间值就表示 1 。

  • 写数据: 0->在控制极加一个电压,让电子穿过绝缘层再注回浮栅,使电子数量高于中间值,表示 0 。

    ​ 1->在 P 极上加一个电压,浮栅中原有的电子会被吸出来,让浮栅中的电子数量低于中间值,表示1。

  • 读数据: 往控制极加一个中间值电压,如果两个 N 极导通,浮栅中的电子较少,识别为 1;如果没有导通,就说明浮栅中的电子较多,识别为 0

损耗: 晶体管擦写数据时,二氧化硅绝缘层会困住一部分电子,这些电子的累积会逐渐抵消控制极上的电压,使得控制极为了导通两个 N 极所需的电压越来越大,当这个偏移超过中间值,那么读取时也就无法分辨 0 和 1 。


局部性原理:当前数据段附近的数据有可能在接下来的时间被访问到。这就是所谓的空间局部性。而程序中还存在着循环,因此当前被访问的数据有可能在短时间内被再次访问,这就是所谓的时间局部性原理。

减少磁盘IO方法 磁盘读取数据的过程中,真正读取数据的时间只占了很小一部分,而大部分时间花在了旋转延迟和寻道时间上

  • 提前读: 每次读取数据的时间不仅仅读取所需要的数据,还将所请求数据附近的数据进行读取。

  • 延迟写: 当数据更改之后不马上写回磁盘,而是继续放在内存中,以备接下来的请求读取或者修改;

计算机科学的基础在于材料学与物理学,硬件的突破往往比软件的突破来的更加震撼。

【版权声明】本文为华为云社区用户翻译文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容, 举报邮箱:cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。