磁盘碎片整理程序的原理是什么?

您所在的位置:网站首页 磁盘碎片整理过程中不会占用大量资源 磁盘碎片整理程序的原理是什么?

磁盘碎片整理程序的原理是什么?

2024-07-16 20:20| 来源: 网络整理| 查看: 265

磁盘主要由盘片,能够转动盘片的驱动马达,机械臂以及机械臂上的读取头组成,在读取数据时,马达会驱动盘片来让读取头在盘片上读取。盘片是主要记录数据的地方,扇区(sector)是硬盘的盘片上最小的物理存储单位,一般为 512 KB;而块(block)是文件系统(FAT、NTFS、Ext2,Ext3 )中最小的操作单位,由一个或多个 sector 组成,类似于 FAT 文件系统中簇的概念,读写文件时是按照文件系统中定义的 block 的大小来进行的。一般最小的 block 为 4 KB,大文件读写时有 128 KB、256 KB。

以 FAT 文件系统(Windows 98 以前的操作系统以及 U 盘常用的文件系统)为例,文件数据一般会存放在连续的block中,比较大的文件会占用多个block。但是当对同一文件进行频繁更新(删除、移动、新增等)时,文件体积发现变化后,文件系统会尝试放在原始文件开始的 block 紧邻的位置中,但是由于紧邻的 block 已经没有空间可放,此时会跳到其他 block 中存放。通常,一个文件占用的多个 block 都是不连续的,操作过于频繁时会使同一文件的block太过分散。

(图片源自《鸟哥的LINUX私房菜》)

在FAT文件系统中,每一文件的 block 号码都是记录在前一个 block 当中,读取方式类似上图所示。

上图中我们假设文件的数据依序写入 1->7->4->15 号这四个 block 号码中, 但这个文件系统没有办法一口气就知道四个 block 的号码,他得要一个一个的将 block 读出后,才会知道下一个 block 在何处。 如果同一个文件数据写入的 block 分散的太过厉害时,则我们的磁盘读取头将无法在磁盘转一圈就读到所有的数据, 因此磁盘就会多转好几圈才能完整的读取到这个文件的内容!——引自《鸟哥的LINUX私房菜》

磁盘碎片整理的目的就是将文件太过分散的 block 存到在磁盘开始的地方,使它们连续分布,进而弥补磁盘上形成的大量的空洞,提高文件读写时的速度。而 NTFS 文件系统后来进行了优化,会在文件周围分配一些“缓冲”的空间,在使用时间长后仍然需要进行碎片整理,而 Linux 中的 Ext 文件系统则是采用索引式式文件系统,有 inode 来记录文件所在的 block 号码,能够将文件的所有 block 一口气读出来,所以 Linux 系统一般不太需要碎片整理。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3