Contig v1.7

By Mark Russinovich

Опубликовано 15 ноября 2012 г.

Введение

На бесплатной основе распространяется великое множество программ дефрагментации диска для NT, среди них можно выделить, например, Winternals Defrag Manager. Эти программы эффективно выполняют задачу общей дефрагментации дисков. В то же время, некоторые файлы, которые следовало бы дефрагментировать, находятся на дисках вне сферы действия таких программ. Кроме того, довольно сложно организовать дефрагментацию отдельных регулярно применяемых файлов — в силу особенностей применяемых алгоритмов дефрагментации они могут оставаться во фрагментированном состоянии. Наконец, даже если все файлы были дефрагментированы, ситуация может быстро измениться в результате последующего редактирования критических файлов. Лишь повторная комплексная дефрагментация способна привести файлы в желаемое состояние.

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


Установка и применение

Программа Contig работает в среде NT 4.0 и в более поздних версиях этой ОС. Она позволяет, во-первых, дефрагментировать существующий файл, а, во-вторых, создать новый файл указанного размера и имени, оптимизировав его размещение на диске. Contig обращается к стандартным интерфейсам API, применяемым в Windows для дефрагментации; поэтому повреждение диска исключено даже при закрытии программы во время выполнения ею операций.


Для смежного размещения фрагментов существующего файла нужно запустить программу Contig следующим образом.

Синтаксис: contig [-v] [-a] [-q] [-s] [имя_файла]

Параметр -v предназначен для вывода информации об операциях дефрагментации файла, выполненных программой Contig. Чтобы ознакомиться с текущим состоянием фрагментации файла или файлов, воспользуйтесь параметром -a — в результате программа Contig проведет анализ фрагментации. Параметр -s позволяет провести рекурсивную обработку подкаталогов исходя из указанного имени с шаблонами. К примеру, чтобы дефрагментировать все DLL-файлы в каталоге c:\winnt, следует ввести команду «contig -s c:\winnt\*.dll». Параметр -q, который переопределяет параметр -v, переводит программу Contig в «молчаливый» режим, в котором в процессе дефрагментации выводится только итоговая сводка.

Для создания нового файла, дефрагментированного непосредственно в процессе создания, вызовите программу Contig следующим образом.

Синтаксис: contig [-v] [-n имя_файла длина]


Принцип работы

Программа Contig обращается к собственные средствам дефрагментации Windows NT, впервые реализованным в версии NT 4.0 (дополнительные сведения см. в моих документах по API-интерфейсам дефрагментации). В первую очередь проводится проверка диска для сбора данных о местоположении и размере свободных областей. Затем определяется местоположение искомого файла. После этого программа Contig исследует возможность оптимизации файла исходя из наличия свободных областей и числа фрагментов, из которых файл состоит в данный момент. Если возможность оптимизации файла существует, он перемещается в свободные области диска.


Дополнительные сведения

Прекрасный обзор пространства имен диспетчера объектов содержится в работе Хелен Кастер (Helen Custer) «Внутреннее устройство Windows NT», еще один высококачественный материал по этой теме представлен в колонке Марка Руссиновича в журнале Windows NT Magazine за октябрь 1997 («Устройство диспетчера объектов»).

К началу страницыК началу страницы