现在的位置: 首页 > 综合 > 正文

计算机内存碎片(下)——文件系统碎片

2013年01月19日 ⁄ 综合 ⁄ 共 1361字 ⁄ 字号 评论关闭

本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/17514079

数据碎片

数据碎片发生时,在内存中的数据的集合被分解成很多块未并拢。它通常是试图插入一个大对象存储到一个已经遭受了外部碎片的结果。
例如,在一个文件中的文件系统中的单位称为通常管理块或簇。当创建一个文件系统,有免费的空间来存储文件块一起连续。这样就可以快速的顺序文件读取和写入。然而,随着文件的添加,删除和改变大小,可用空间变得支离破碎外,只留下小孔中,把新的数据。当一个新文件被写入时,或当现有的文件被扩展时,操作系统把新数据在新的非连续的数据块,以适合可用的孔。新的数据块都必然分散,减缓访问由于寻道时间和旋转延迟的读/写磁头,并产生额外的开销来管理其他地点。这就是所谓的文件系统碎片。
当写一个已知大小的新文件时,如果有任何空孔比该文件时,操作系统可以通过将文件导入到这些孔中的任一项避免数据碎片。有各种各样的选择,其中那些潜在的漏洞把文件的算法,他们每个人是一个启发式近似解的装箱问题。“最适合”算法选择是足够大的最小的孔。“最坏适合”算法选择最大钻孔。在“ 首次适应算法 “选择是足够大的第一洞。“下一个合适的”算法跟踪每个文件写的。“下一个适合的”算法比“第一贴合”更快,而这又是比“最适合”更快,这是相同的速度“最坏配合”。
正如压实可以消除外部碎片,数据碎片可以通过重新排列数据存储,以便相关作品是接近被淘汰。例如,一个主要的工作碎片整理工具是重新排列在磁盘上的块,使得每个文件的块是连续的。大多数碎片整理实用程序还试图减少或消除自由空间碎片。一些移动的垃圾收集器也将移动与物体靠近在一起(这就是所谓的压制),以提高缓存的性能。
有4种系统,从来没有遇到数据碎片,他们总是连续存储的每个文件。唉,都4种有较系统,使至少一些临时数据碎片显著的缺点:
只需连续写入的每个文件,与CD-R 。如果没有已经足够了连续可用空间来保存文件,系统立即失败来存储文件,即使有大量的免费空间从已删除的文件,加起来足够多的存储文件的小位。
如果没有已经足够了连续可用空间来存放文件,使用复制收集到的可用空间多一点位转换成一个连续的空闲区域大到足以容纳该文件。这需要比打破文件分成碎片,并把这些碎片进入的可用空间更多的时间。
固定大小的块分配:写文件到任何空闲块。如果一个程序员选取一个固定的块大小太小,系统会立即失败比存储块大一些文件,文件大小,即使也有很多,加起来足够多的存储文件空闲块。如果一个程序员选取一个块大小太大,我们在内部碎片浪费了大量的空间。
有些系统避免动态分配完全,因为他们需要-例如所有可能的文件预分配(连续)空间,的MultiFinder预分配的RAM块给每个应用程序,因为它根据多少RAM该应用程序的编程人员声称它已启动需要。
由于性能下降碎片

内存碎片是所面临的最严重问题之一的系统管理人员。随着时间的推移,它会导致系统性能下降。最终,内存碎片可能会导致可用内存完全丧失。
内存碎片是一个内核 编程水平的问题。在实时计算的应用程序,碎片化程度可高达99%,并可能导致系统崩溃或其他的不稳定性。这种类型的系统崩溃的可能是难以避免的,因为不可能预见到临界上升的内存碎片的水平。

抱歉!评论已关闭.