数据存储

网友投稿 965 2022-05-28

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

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

盘片上涂有磁性材料,通过改变磁性物质的极性来记录数据,分别极性分别对应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方法 磁盘读取数据的过程中,真正读取数据的时间只占了很小一部分,而大部分时间花在了旋转延迟和寻道时间上

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

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

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

数据库

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:linux系统非lvm扩容实验
下一篇:SATA、mSATA、M.2、M.2(NVMe)、PCIE固态硬盘接口详解
相关文章