zl程序教程

您现在的位置是:首页 >  其他

当前栏目

操作系统 | “扇区”、“簇”、“块”、“页”等概念

2023-09-11 14:19:30 时间

总览:

 

 

        簇/块 是操作系统读写文件的基本单位。

        磁盘读写基本单位是扇区。操作系统是通过块和簇来做为单位读取等操作数据的。

        扇区是磁盘最小的物理存储单元是磁头从磁盘中读取数据的最小单位(一般512B),即磁头每次从磁盘中读取数据,都是一个扇区一个扇区读的。但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起形成一个簇,然后再对簇进行管理(每个簇可以包括2、4、8、16、 32或64个扇区。)

        块(簇)是 操作系统与磁盘(硬盘)交互的最小数据单元(在linux系统中称为块,在windows系统中称为簇)。操作系统从硬盘中拿一块数据,即完成一次磁盘IO。

        块(数据块)的大小在硬盘格式化时被指定,一般有1K,2K,4K(最常用)。如果块的大小设置为4K,那么磁盘要读取8个扇区之后,才将数据块传给操作系统。另外,数据块也是DOS下数据存储的最小单元。例如,如果一个文件的大小为1K,而块的大小为4K,那么该文件还是会占用一个块,块中剩下的3K被空闲出来,不能用于存储其他数据。因此,设置块的大小时,需要考虑要存储文件的大小。

        文件系统就是操作系统的一部分,所以文件系统操作文件的最小单位是块和簇

        磁盘控制器,其作用除了读取数据、控制磁头等作用外,还有的功能就是映射扇区和磁盘块的关系。


        扇区是对硬盘而言,是物理层的。

        块和簇是对文件系统而言,是逻辑层的。磁盘控制器是用来映射两层的。


1、什么是扇区和(磁盘)块?

物理层面:一个磁盘按层次分为 磁盘组合 -> 单个磁盘 -> 某一盘面 -> 某一磁道 -> 某一扇区

        扇区,顾名思义,每个磁盘有多条同心圆似的磁道,磁道被分割成多个部分。每部分的弧长加上到圆心的两个半径,恰好形成一个扇形,所以叫做扇区。

        扇区是磁盘中最小的物理存储单位。通常情况下每个扇区的大小是512字节。(由于不断提高磁盘的大小,部分厂商设定每个扇区的大小是4096字节)

逻辑层面: 磁盘块(虚拟出来的)。 

        块是操作系统中最小的逻辑存储单位。操作系统与磁盘打交道的最小单位是磁盘块。

2、什么是簇?和块什么区别?

        簇就是块。

        通俗的来讲,在Windows下如NTFS等文件系统中叫做簇;在Linux下如Ext4等文件系统中叫做块(block)。每个簇或者块可以包括2、4、8、16、32、64…2的n次方个扇区。

        数据存储在硬盘的时候都是以簇为单位,所以无论文件大小是多少,除非正好是簇大小的倍数,否则文件所占用的最后一个簇或多或少都会产生一些剩余的空间,且这些空间又不能给其它文件使用,即使这个文件只有0字节,也不允许两个文件或两个以上的文件共用一个簇,不然会造成数据混乱。

        操作系统规定,一个簇中只能放置一个文件的内容,因此文件所占用的空间只能是簇的整数倍,而如果文件实际大小小于一簇,它也要占一簇的空间。

        所以一般情况下文件所占空间要略大于文件的实际大小,只有在少数情况下,即文件的实际大小恰好是簇的整数倍时,文件的实际大小才会与所占空间完全一致。簇的大小主要由磁盘的分区格式和容量大小来决定,簇数=取整(文件大小簇大小)+1所占空间=簇数x磁盘簇大小。


        “文件大小”与“所占空间”的差别

         
4K对齐究竟是什么意思 固态硬盘4K对齐2048和4096区别 通俗易懂!

3、为什么存在磁盘块?

        读取方便:由于扇区的数量比较小,数目众多在寻址时比较困难,所以操作系统就将相邻的扇区组合在一起,形成一个块,再对块进行整体的操作。

        分离对底层的依赖:操作系统忽略对底层物理存储结构的设计。通过虚拟出来磁盘块的概念,在系统中认为块是最小的单位。

4、怎么映射磁盘块?

        磁盘控制器,其作用除了读取数据、控制磁头等作用外,还有的功能就是映射扇区和磁盘块的关系

5、磁盘的读写基本单位是什么?

        磁盘读写基本单位是扇区

        磁盘的原理,物理实现,磁盘控制器是按照扇区这个单位读取等操作数据的。操作系统是通过块簇来做为单位读取等操作数据的。此题问磁盘的读写,和操作系统没有关系,千万不要联系到操作系统层面去了。

        文件系统就是操作系统的一部分,所以文件系统操作文件的最小单位是块。

6、磁盘块与扇区的大小

        既然磁盘块是一个虚拟概念。是操作系统自己"杜撰"的。软件的概念,不是真实的。所以大小由操作系统决定,操作系统可以配置一个块多大。

        一个块大小=一个扇区大小*2的n次方。

        N是可以修改的。

7、为什么磁盘块大小必须是扇区大小的整数倍呢?

        磁盘读取数据的基本单位就是一个扇区的大小,一个块的大小对于磁盘来说就是一次获取数据读取的扇区数*扇区大小,如果是整数倍的扇区数对于磁盘的IO更好,速度更快,也会更合理的利用资源。否则会对扇区进行分割。

        一个扇区是512字节。有些硬盘厂商会提供4k大小扇区。这是物理结构。磁盘定下来的结构就是没法修改的。所以必须要将块设置为磁盘的大小。

8、4k对齐

        随着时代发展,硬盘容量不断扩展,使得之前定义的每个扇区512字节不再是那么的合理,于是将每个扇区512字节改为每个扇区4096 个字节,也就是现在常说的“4K扇区”。随着NTFS成为了标准的硬盘文件系统,其文件系统的默认分配单元大小(簇)也是4096字节,为了使簇与扇区相对应,即使物理硬盘分区与计算机使用的逻辑分区对齐,保证硬盘读写效率,所以就有了“4K对齐”的概念。

        新标准的”4K扇区”的硬盘在厂商为了保证与操作系统兼容的前提下,也将扇区模拟成512B,会默认定义为4096字节大小为一个簇,但因为其引导区占用了一个磁道共63个扇区,真正的文件系统在63号扇区之后。

我们通过计算得出前63个扇区大小为:512Bx63=32256B
并按照默认簇大小得出63扇区为:32256B÷4096B=7.875簇
即从第63个扇区结束,往后的每一个簇都会跨越两个物理单元,占据前一个单元的一小部分和后一个单元的一大部分。

而“4K对齐”主要是将硬盘的模拟扇区(512B)对齐到8的整数倍个“实际”4K扇区,即4096B*8=32768B,其正好跨过了63扇区的特性,从第64个扇区对齐。

9、块与页的关系

        操作系统经常与内存和硬盘这两种存储设备进行通信,类似于“块”的概念,都需要一种虚拟的基本单位。所以,与内存操作,是虚拟一个页的概念来作为最小单位。与硬盘打交道,就是以块为最小单位。


参考来源

扇区(sector),块(block),簇(cluster)_晚安丶的博客-CSDN博客_block sector

电脑中常用的“扇区”、“簇”、“块”、“页”等概念 - 走看看

簇是操作系统读写文件的基本单位_随心~稳心的博客-CSDN博客