当前位置:K88软件开发文章中心电脑基础基础应用05 → 文章内容

什么是磁盘碎片?什么情况下会产生磁盘碎片?

减小字体 增大字体 作者:华军  来源:华军资讯  发布时间:2019-1-31 15:41:21

  计算机日常使用的过程中会不断的产生磁盘碎片,TA产生于虚拟内存对硬盘不断的读写中,若是磁盘碎片过多,则会影响硬盘的读写性能,磁盘碎片的整理效率不可太过频繁,大概一个月清理2~3次足以,且整理过程中不可运行过多进程,避免碎片占用资源无法整理。阅读下文了解磁盘碎片产生的原因和危害。  什么是磁盘碎片:  磁盘碎片应该称为文件碎片,是因为文件被分散保存到整个磁盘的不同地方,而不是连续地保存在磁盘连续的簇中形成的。当应用程序所需的物理内存不足时,一般操作系统会在硬盘中产生临时交换文件,用该文件所占用的硬盘空间虚拟成内存。虚拟内存管理程序会对硬盘频繁读写,产生大量的碎片,这是产生硬盘碎片的主要原因。  磁盘碎片的产生,是从硬盘诞生的时候开始的。最初的磁盘操作系统开发者设计了一个文件分配表,用来记录哪些文件储存在哪些扇区当中,这样就允许一个文件可以储存在不连续的扇区当中。 有了文件分配表,在操作系统上同一分区中移动文件时,不必移动储存在扇区中的数据,只需修改文件分配表中的链接就可以了,删除文件时也不必重写文件所在的扇区,只需将文件分配表中该文件所在的扇区标记为空就可以了。  这样的设计使得操作系统能够更有效的利用磁盘空间,不过与此同时,也衍生出了一个新的概念—磁盘碎片。  1、扇区:硬盘中储存数据的最小寻址单元,容量为512字节。后来又出现了簇的概念,它是扇区的扩展。  2、文件分配表(FAT):被广泛应用的组织和管理文件的文件系统。  磁盘碎片的产生:  接下来,我们了解两种磁盘碎片产生的典型过程。为了直观,我们将下面这幅硬盘结构中的盘片(磁盘)部分。我们不打算去考虑每个盘片有上千条磁道、每条磁道有上千个扇区的情况,也不考虑柱面的概念,忽略簇的概念,省略一切有碍理解的东西,用最简单的图,看清楚什么是磁盘碎片。  磁头:用于读取、写入、清除数据,是硬盘中技术含量最高的部件。在音圈马达的带动下可沿Z移动到各条磁道。  盘片(磁盘):表面涂有可记录磁性的物质,用于存储数据。盘片由灰色线将盘片划分成了3条磁道,每条磁道又划分出若干个单元格,这里每一个单元格代表一个扇区。  主轴:内有轴承、马达,可带动盘片高速旋转。  音圈马达:硬盘里的定位马达,类似于音频扬声器里所用的马达。  1、磁盘碎片产生的典型过程(例一)  系统正在向硬盘中写入一个文件,名为“椰子”,该文件体积较大,需要占用5个扇区的空间,因此要完全写入到硬盘当中需要较长的时间。磁头从1号扇区开始顺时针方向写入文件,当2号扇区中的数据写入完时,硬盘接到了一条新的命令—写入文件“葡萄”,文件“葡萄”体积较小,只需占用1个扇区的空间,它被写入到了扇区3当中。  这样一来,由于3号扇区已经被占用,文件“椰子”剩下的数据就要从4号扇区开始写入,最后,剩下的数据被写入到了4至6号扇区。由于“葡萄”的插队,文件椰子无法储存在连续的扇区当中,被分割开的这两段数据就被称为磁盘碎片。  2、磁盘碎片产生的典型过程(例二)  例一中的硬盘经过一段时间的使用之后,内部储存的文件发生了一些变化:一个新文件“西瓜”被写入到了硬盘当中,之后文件“葡萄”被删除了。  这时,硬盘接到了写入文件“桔子”的命令,“桔子”需要占用3个扇区的储存空间。现在硬盘中共有两段不连续的可用空间,但任何一段单独的可用空间都不足以容纳整个“桔子”文件,不得已,“桔子”被拆分为两部分写入硬盘剩余的可用空间中,从而产生了磁盘碎片。  例一中的情况在下载大文件时十分常见,因为下载文件的过程不需要人为干预,所以一般人在下载文件的过程中都会做一些其它的事情。如:浏览网页、玩游戏等等。浏览网页的过程中浏览器会产生大量的“Internet 临时文件”,玩游戏的过程中游戏程序也可能会产生临时文件,或因内存不足导致操作系统改变了页面文件的大小,这些情况都可能如例一般影响下载中的文件,产生磁盘碎片。实际使用中往往一部电影文件被下载到硬盘中之后会有数千个磁盘碎片。  例二中的情况是在删除了旧文件、添加新文件时发生的。通常情况下,系统会在对文件来说足够大的第一个连续可用空间上存储文件。如果没有足够大的可用空间,系统会将尽可能多的文件保存在最大的可用空间上,然后将剩余数据保存在下一个可用空间上。因此,除非拥有容量无限大的硬盘,否则,在有限的硬盘空间中进行添加和删除文件的操作就必然会有例二这种产生磁盘碎片的情况发生。当然,较实际需求大的硬盘空间可以减少这种情况的发生。  磁盘碎片对硬盘的危害:  通常,磁盘碎片并不影响硬盘的正常工作,它的主要危害在于会降低硬盘的读写速度,不过当大量磁盘碎片存在于Windows的重要文件中时,也可能导致系统崩溃或数据丢失。磁盘碎片会降低硬盘读写速度的原因来自两个方面。  1、当硬盘读取文件“橘子”时,磁头需划过区域,但其中有一部分并不是“橘子”所在的扇区,因此,和读取连续的文件比起来,读取碎片“橘子”时,硬盘增加了等待盘片旋转到指定扇区的潜伏期和磁头切换磁道所需的寻道时间。同理,在写入数据时,也会因无法将数据写入到连续的扇区中而降低速度。  2、操作系统会在内存中划分一部分区域作为缓存,有些硬盘也会为内置的缓冲区设置缓存功能,缓存的一项功能是“预取”:在硬盘读取完指定扇区的数据之后、接到系统的下一条指令之前,磁头接着读取相邻的若干扇区的数据并存入缓存中,如果系统接下来所需的数据正好就是相邻扇区的数据,那么便可以直接从缓存中读取而不用磁头再寻址,提高了访问速度。  缓存同样可以增加硬盘的写入速度。在实际生活中,一般的文件都会占用成千上万个扇区的空间,根据缓存“预取”的原理,如果硬盘中的文件完全没有磁盘碎片的话,那么“预取”的命中率就可以达到几乎100%,但因为有磁盘碎片,通常“预取”的命中率只在50%左右。  整理磁盘碎片:  既然知道了磁盘碎

[1] [2]  下一页


什么是磁盘碎片?什么情况下会产生磁盘碎片?