|
|
发表于 2005-11-19 18:08:01
|
显示全部楼层
如果只涉及到"读"的话,只要原来分区上没有碎片,任何系统都是不会产生碎片的.关键在于"写"操作,就个人几年间间断断使用linux对fat32分区操作而言,是会产生碎片的.
我不确定碎片具体是什么意思,我个人理解为"非连续存放的单个文件",还有一种情况是"就单个文件而言是连续存放的,但是文件与文件间可能存在未使用空间".举个例,硬盘某个区有10个存储单位,有A文件大小2,B文件大小3,C文件大小1
如果这样放:[A][ ][A][B][B][B][ ][ ][C][ ]
显然A文件不是连续存放的,肯定有碎片
如果这样放:[A][A][ ][ ][B][B][B][ ][C][ ]
A,B,C都是连续的,但我们想要的是下面这种
[A][A][B][B][B][C][ ][ ][ ][ ]
这就是所谓的"紧凑"吧,就是把分散的小空间聚到一起,以防有大文件写入时产生碎片
不知道windows的硬盘调度是根据什么算法,根据经验仿佛是从磁头的当前位置开始分配(不确定,说错请纠正),好处是写入时速度快,不需要移动磁头,缺点当然是文件在磁盘上到处都是,十分容易产生碎片,文件存放可能不连续,读出时影响效率;linux的算法也没看过,不过可以肯定是从分区的第一块空闲空间开始分配,按磁道和扇区增加的方向写入,如果文件比较大而空闲空间比较小比较分散,肯定也是会产生碎片的。最直观的感觉就是同一个拷贝任务(磁盘上同一批文件,分两次向磁盘上同一个格式化后的分区拷贝),windows下要比linux下快,但是windows拷贝后的分区可能有碎片(文件可能没从分区开始存放,分区图示被红白蓝三色混杂填充),linux拷贝的分区十分整齐(所有文件在分区从左至右存放,一条漂亮的“蓝带”) |
|