深入了解磁盘碎片的产生,危害和整理

06-07

几乎从硬盘诞生的时候开始,磁盘碎片的概念就产生了。最初的磁盘操作系统开发者设计了一个文件分配表,用来记录哪些文件储存在哪些扇区当中,这样就允许一个文件可以储存在不连续的扇区当中。

有了文件分配表,在操作系统上同一分区中移动文件时,不必移动储存在扇区中的数据,只需修改文件分配表中的链接就可以了,删除文件时也不必重写文件所在的扇区,只需将文件分配表中该文件所在的扇区标记为空就可以了。

这样的设计使得操作系统能够更有效的利用磁盘空间,不过与此同时,也衍生出了一个新的概念—磁盘碎片。
扇区:硬盘中储存数据的最小寻址单元,容量为512字节。后来又出现了簇的概念,它是扇区的扩展。

文件分配表(FAT):被广泛应用的组织和管理文件的文件系统。

(一)磁盘碎片的产生

接下来,我们将通过下图来了解两种磁盘碎片产生的典型过程。为了直观,我们将下面这幅硬盘结构图中的盘片部分简单的划分成3磁道共18扇区。我们不打算去考虑每个盘片有上千条磁道、每条磁道有上千个扇区的情况,也不考虑柱面的概念,忽略簇的概念,省略一切有碍理解的东西,用最简单的图,看清楚什么是磁盘碎片。
深入了解磁盘碎片的产生,危害和整理

磁头:用于读取、写入、清除数据,是硬盘中技术含量最高的部件。在音圈马达的带动下可沿Z移动到各条磁道。

盘片:表面涂有可记录磁性的物质,用于存储数据。在这幅图片中,由灰色线将盘片划分成了3条磁道,每条磁道又划分出若干个单元格,这里每一个单元格代表一个扇区。

主轴:内有轴承、马达,可带动盘片高速旋转。

音圈马达:硬盘里的定位马达,类似于音频扬声器里所用的马达。

1、磁盘碎片产生的典型过程(例一)
深入了解磁盘碎片的产生,危害和整理

图中,系统正在向硬盘中写入一个文件,名为“椰子”,该文件体积较大,需要占用5个扇区的空间,因此要完全写入到硬盘当中需要较长的时间。磁头从1号扇区开始顺时针方向写入文件,当2号扇区中的数据写入完时,硬盘接到了一条新的命令—写入文件“葡萄”,文件“葡萄”体积较小,只需占用1个扇区的空间,它被写入到了扇区3当中。

这样一来,由于3号扇区已经被占用,文件“椰子”剩下的数据就要从4号扇区开始写入,最后,剩下的数据被写入到了4至6号扇区。如图,由于“葡萄”的插队,文件椰子无法储存在连续的扇区当中,被分割开的这两段数据就被称为磁盘碎片。

2、磁盘碎片产生的典型过程(例二)

例一中的硬盘经过一段时间的使用之后,内部储存的文件发生了一些变化:一个新文件“西瓜”被写入到了硬盘当中,之后文件“葡萄”被删除了。
深入了解磁盘碎片的产生,危害和整理

这时,硬盘接到了写入文件“桔子”的命令,“桔子”需要占用3个扇区的储存空间。如图,现在硬盘中共有两段不连续的可用空间,但任何一段单独的可用空间都不足以容纳整个“桔子”文件,不得已,“桔子”被拆分为两部分写入硬盘剩余的可用空间中,从而产生了磁盘碎片。
深入了解磁盘碎片的产生,危害和整理

例一中的情况在下载大文件时十分常见,因为下载文件的过程不需要人为干预,所以一般人在下载文件的过程中都会做一些其它的事情。如:浏览网页、玩游戏等等。浏览网页的过程中浏览器会产生大量的“Internet 临时文件”,玩游戏的过程中游戏程序也可能会产生临时文件,或因内存不足导致操作系统改变了页面文件的大小,这些情况都可能如例一般影响下载中的文件,产生磁盘碎片。实际使用中往往一部电影文件被下载到硬盘中之后会有数千个磁盘碎片。

例二中的情况是在删除了旧文件、添加新文件时发生的。通常情况下,系统会在对文件来说足够大的第一个连续可用空间上存储文件。如果没有足够大的可用空间,系统会将尽可能多的文件保存在最大的可用空间上,然后将剩余数据保存在下一个可用空间上。因此,除非拥有容量无限大的硬盘,否则,在有限的硬盘空间中进行添加和删除文件的操作就必然会有例二这种产生磁盘碎片的情况发生。当然,较实际需求大的硬盘空间可以减少这种情况的发生。

(二)磁盘碎片的危害

通常,磁盘碎片并不影响硬盘的正常工作,它的主要危害在于会降低硬盘的读写速度,不过当大量磁盘碎片存在于Windows的重要文件中时,也可能导致系统崩溃或数据丢失。磁盘碎片会降低硬盘读写速度的原因来自两个方面。
深入了解磁盘碎片的产生,危害和整理

1、观察上图,当硬盘读取文件“橘子”时,磁头需划过图中的阴影区域,但其中有一部分并不是“橘子”所在的扇区,因此,和读取连续的文件比起来,读取碎片“橘子”时,硬盘增加了等待盘片旋转到指定扇区的潜伏期和磁头切换磁道所需的寻道时间。同理,在写入数据时,也会因无法将数据写入到连续的扇区中而降低速度。

2、操作系统会在内存中划分一部分区域作为缓存,有些硬盘也会为内置的缓冲区设置缓存功能,缓存的一项功能是“预取”:在硬盘读取完指定扇区的数据之后、接到系统的下一条指令之前,磁头接着读取相邻的若干扇区的数据并存入缓存中,如果系统接下来所需的数据正好就是相邻扇区的数据,那么便可以直接从缓存中读取而不用磁头再寻址,提高了访问速度。

缓存同样可以增加硬盘的写入速度。在实际生活中,一般的文件都会占用成千上万个扇区的空间,根据缓存“预取”的原理,如果硬盘中的文件完全没有磁盘碎片的话,那么“预取”的命中率就可以达到几乎100%,但因为有磁盘碎片,通常“预取”的命中率只在50%左右。

(三)整理磁盘碎片

既然知道了磁盘碎片的危害,接下来就是要了解如何去除磁盘碎片。要去除硬盘中已经存在的磁盘碎片,通常的做法是使用专门的磁盘碎片整理程序,它可以分析硬盘中的磁盘碎片,移动并合并碎片文件,使每个文件都可以占用硬盘上单独而连续的储存空间。

1、使用Windows的磁盘碎片整理程序
深入了解磁盘碎片的产生,危害和整理

对于使用Windows系统的用户来说,进行磁盘碎片整理是很方便的,因为在Windows系统中自带了一个磁盘碎片整理程序,您可以通过开始菜单运行这个程序。该程序界面简单、使用十分方便,它和Windows系统的兼容性很好,而且免费,是大多数人的第一选择。它最大的缺点是整理磁盘碎片的速度较慢。

2、使用其它的磁盘碎片整理程序
除了使用Windows自带的磁盘碎片整理程序外,我们还可以选用其他软件公司开发的磁盘碎片整理程序,在整理磁盘碎片方面的能力是Windows的整理程序无法比拟的。
脚本之家站长注:本文为网络收集,作者未知,如作者看到或者有知情者,请联系我们,并且提供相应的证明材料。我们将予以添加或者删除。谢谢支持。