问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

数据在磁盘中的存储

创作时间:
作者:
@小白创作中心

数据在磁盘中的存储

引用
1
来源
1.
https://www.cnblogs.com/lang77/p/18778688

数据存储在磁盘上的抽象

数据存储在磁盘上,物理层面上是在每一个存储单元中,有类似2维的一个一个空间,每一个空间存储1bit或者1byte的数据。

当存储数据的时候都需要知道每一段数据的头地址由此进行读写

这样并不方便管理,所以将整个存储空间划分为更大的单位空间,以block的方式进行管理,在这个文件系统中,除了要维护对应的数据,还需要存储类似于目录一样的元数据块。

以上是最基本的一种抽象,block是常常的技巧,但是依旧会有很多事情需要考虑

  • block的大小是固定的吗?大小是多少,如果大小是固定的,如果有很多小文件,那么会有内存碎片等等

  • 文件是有读写的,一个文件的大小可能是不断增长的,当文件超过的他的block空间,他是如何递增空间的?(guess: 文件分配的block不一定是顺序的)

磁盘的存储

首先是磁盘,磁盘就是在上面电镀了很多的磁粒,每一个磁粒都有磁性,NS级,磁头就是通过NS级转换成为01电信号

然后是盘面,盘面由磁道和扇区组成,一般0磁道的0扇区就是引导扇区,不存储用户数据,而扇区的编号一般并不是如图一样是sequential的,而是一般隔一个扇区加一的原因,因为磁盘转到首先是有惯性的,而且磁头将一个扇区的磁信号转换成为电信号是需要时间的,因此中间隔一个扇区可以说有一定的时间让其进行转换。 扇区是磁盘的最小读写单元。

最后是柱面,在这里其实有两个寻址方法:

  • 3D寻址方法:他是之前的做法,让每一个磁道都有相同的扇区,为了达到这个目的,在内部的磁道中的扇区的存储密度是更大的,这样因为每一个磁道有相同扇区就可以快速定位到xx磁头,xx磁道,xx扇区这种

  • 线性寻址:这是新的设计方法,每一个磁道中的扇区数量不相同,但保证存储密度相同,这样的寻找方法是从外磁道依次到内磁道,以扇区为单位进行线性寻址

文件系统的设计

文件在磁盘上的存储一定都是扇区的整数倍,就算是一字节的文件也要占用一整个扇区的大小

考虑兼容性,因为不同的硬件它的扇区的大小是不同的,因此为了兼容,文件系统提出了一个最小读写逻辑单元块或者簇,扇区是磁盘的最小读写物理单元.

  • 一个块的大小等于扇区的2,4,8等等倍

  • 一个文件占用的空间体积是块的整数倍

  • 块越小,磁盘空间利用率越高,但存储效率会降低

    • 块越小,管理的块越多,元数据占用比例越高

    • 现代磁盘一次 I/O 读取通常以块为单位

在文件系统中,设定好了block之后,在底层会有文件系统映射层将block转换为对应扇区,这里就是的block变成了一个抽象统一的标准,而真正对扇区的映射就交给了映射层

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号