Книга: Защита компьютера на 100: сбои, ошибки и вирусы

Фрагментация файлов

Фрагментация файлов

На физическом уровне жесткий диск записывает информацию только целыми секторами размером по 512 байт. Когда-то такой стандарт был удобен и достаточен. По мере роста емкости винчестеров возникло желание увеличить размер участков диска, к которым система обращается одномоментно. Современные жесткие диски чаще всего на уровне BIOS поддерживают функцию LBA (Logical Block Access — доступ к логическим блокам). В таком случае BIOS обращается не к каждому сектору отдельно, а к целым блокам, состоящим из нескольких физических секторов. Считывание и запись информации при таком обращении происходят сразу большими порциями и осуществляются гораздо быстрее. Наконец, на уровне файловой системы существует понятие «кластер». Кластер представляет собой группу секторов, или логических блоков, рассматриваемых как единое целое. Каждый кластер включает в себя от 8 до 128 секторов. В процессе форматирования диска средствами Windows размер кластера при желании можно задать вручную. Значение по умолчанию предлагается операционной системой в зависимости от размера диска: чем больше диск, тем больше размер кластеров на нем. После того как диск отформатирован, правильнее всего говорить не о секторах, а о кластерах — для любой операционной системы диск выглядит именно так.

Если размер файла превышает размер сектора (логического блока, кластера), файл занимает несколько секторов (блоков, кластеров). Другими словами, фрагменты одного файла могут размещаться в разных кластерах. В процессе обращения к файлу операционная система собирает эти фрагменты воедино в оперативной памяти. Когда фрагменты файла занимают кластеры, следующие один за другим, все отлично — головка жесткого диска может считывать или записывать эти данные практически «не отходя от кассы». В действительности такая непрерывная запись возможна лишь в идеале. Допустим, мы по одному записываем файлы на только что отформатированный диск. Тогда файлы действительно располагаются на диске один за другим и каждый занимает кластеры, последовательно идущие друг за другом. Принято говорить, что файлы на таком диске не фрагментированы или что фрагментация диска составляет 0 %.

На практике дело обстоит совсем иначе. Нужно вспомнить, что запись данных начинается на ближайшее свободное место диска. Это вполне логично: операционная система старается размещать все файлы так, чтобы на диске сохранялось как можно больше непрерывного свободного места. Записав на первый свободный участок столько данных, сколько туда поместилось, система ищет следующее свободное место, продолжает запись на него и т. д.

Поскольку файлы периодически удаляются, такие свободные участки возникают в самых разных местах (рис. 1.5). В результате фрагменты вновь записываемого файла обычно разбросаны по всему диску. Чем чаще на диске записываются и удаляются файлы, тем больше становится их фрагментация. Во время чтения блок головок вынужден метаться по всему диску, собирая фрагменты файлов, а средняя скорость чтения ощутимо снижается. Процесс записи файлов на сильно фрагментированный диск замедляется по той же причине.


Рис. 1.5. Процесс фрагментации файлов.

Наиболее ощутима фрагментация файлов операционной системы и системного диска вообще. Замедление загрузки и работы системы по этой причине особенно заметно на относительно медленных моделях жестких дисков. Фрагментация других дисков не так влияет на общее быстродействие компьютера. Процессу фрагментации противодействуют несколько механизмов.

• Некоторые наиболее важные системные файлы ОС считает неперемещаемыми (фиксированными), и они всегда занимают на диске строго определенное положение.

• При выключении компьютера периодически запускается служба дефрагментации файлов, участвующих в загрузке операционной системы.

• Процесс перезаписи частей файла в соседние секторы на жестком диске для ускорения доступа и загрузки называется дефрагментацией. В состав ОС Windows входит служебная программа Дефрагментация диска, которая анализирует размещение фрагментов файлов на дисках, а затем переносит все фрагменты каждого файла в последовательно расположенные секторы. В процессе дефрагментации файлы на диске многократно перетасовываются, чтобы освободить непрерывное место для каждого из них. Поэтому программа дефрагментации может упорядочивать файлы довольно долго, а для своей работы требует наличия на диске не менее 15 % свободного пространства от общего объема.

Встроенная программа дефрагментации, входящая в состав Windows, не умеет оптимизировать файл подкачки. Если после определенных экспериментов возникает желание провести дефрагментацию файла подкачки или переместить его в начало диска, следует воспользоваться утилитами сторонних разработчиков.

В качестве примера очень удачного дефрагментатора с гибкими настройками можно назвать программу VoptXP компании Golden Bow Systems (www.goldenbow.com).

Оглавление книги


Генерация: 2.712. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз