СОДЕРЖАНИЕ
ВВЕДЕНИЕ
РАЗДЕЛ 1.ОСНОВЫ ДЕФРАГМЕНТАЦИИ
1.1 Файловая система типа FAT32
1.2 Файловая система типа NTFS
1.3 Популярные утилиты-дефрагментаторы
1.3.1 Программа Windows Disk Defragmente
1.3.2. Дефрагментатор Diskeeper 2009
1.3.3. Утилита UltraDefrag
1.3.4. Программа AuslogicsDiskDefrag
1.3.5. Программа O&O Defrag
РАЗДЕЛ 2.ОПИСАНИЕ АЛГОРИТМОВ ДЕФРАГМЕНТАЦИИ
2.1 Алгоритмы
2.1.1 Простая дефрагментация
2.1.2 Дефрагментация свободного места или полная дефрагментация
2.1.3 Дефрагментация часто используемых данных
2.1.4 По дате последнего изменения
2.1.5 Сортировка по имени
2.2 Выбранный алгоритм
2.3 Среда разработки
2.3.1 С++ Bilder
2.3.2 MicrosoftVisualStudio
2.3.3 Выбранная среда
РАЗДЕЛ 3. РУКОВОДСТВО ПРОГРАММИСТА
3.1 Стандартные функции
3.1.1 Управляющий код FSCTL_GET_VOLUME_BITMAP
3.1.2 Управляющийкод FSCTL_GET_RETRIEVAL_POINTERS
3.1.3 Структура RETRIEVAL_POINTERS_BUFFER
3.1.4 Управляющийкод FSCTL_MOVE_FILE
3.1.5 Функция CreateFile
3.1.5 Функция CheckTokenMembership
3.2 Функции, выполняющие дефрагментацию
3.2.1 Функция «file_map»
3.2.2 Функция «volume_map»
3.2.3 Функция «simply_defrag»
РАЗДЕЛ 4. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
4.1. Интерфейс программы
4.2 Кнопка «Drive info»
4.3 Кнопка«GO»
4.4 Кнопка «Fileinfo»
ВЫВОДЫ
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЯ
ВВЕДЕНИЕ
Используя операционные системы семейства Windows пользователи становятся привязанными к конкретным файловым системам. Наиболее часто используются, как файловые системы для жестких дисков, типы NTFS и FAT32. Эти системы имеют множество отличий, но их сходство заключается во фрагментации файлов, так как в программах для работы с ними обычно не предусмотрено никаких средств для предотвращения фрагментации.
Длинные данные зарисуются на диск в нескольких кластерах. Если места для записи определенного файла достаточно, то все кластеры размещаются последовательно. Однако если пространство частично заполнено, большому файлу может не найтись цельной свободной области для его размещения. В таком случае данные будут записаны в свободные кластера, при условии, что их суммарный объем удовлетворяет данный файл. В этом случае файл записывается в виде нескольких фрагментов. Более того: во многих файловых системах (пример FAT32) начало файла записывается в начало кластера, следовательно, если сам файл или его часть по объёму меньше размера кластера, то оставшееся место в кластере остается неиспользованным. Поэтому фрагментированность диска обратно пропорциональна эффективности использования его пространства.
«Фрагментация дискового пространства. Эффект, возникающий в процессе активной работы с файлами (создание, удаление, перемещение, изменение размеров) и выражающийся в отсутствии на жёстком диске достаточного количества последовательных свободных блоков. На фрагментированном диске свободные блоки разбросаны по всей поверхности диска, и при дальнейшей работе с диском, это приводит к фрагментации данных.» [1]
Так мы можем сказать, что фрагментация данных является негативным эффектом. Дробление файлов затрудняет работу с ними и увеличивает нагрузку на аппаратную часть компьютера. На сильно фрагментированных областях жесткому диску потребуется затратить гораздо больше времени для записи или считывания файла, чем на мало фрагментируемых областях. Это объясняется тем, что большое количество кластеров занятых конкретным файлом располагаются не последовательно, а, можно сказать, хаотично разбросаны по всему объему винчестера. И именно этот факт заставляет считывающую головку затрачивать лишнее время на поиск очередной части файла.
Таким образом, можно сделать вывод, что минимальная фрагментация не только увеличит быстродействие системы, но и увеличит срок службы некоторых устройств.
Чтобы избежать фрагментации дискового пространства необходимо проводить процесс дефрагментации.
«Дефрагментация — процесс обновления и оптимизации логической структуры раздела диска с целью обеспечить хранение файлов в непрерывной последовательности кластеров. После дефрагментации ускоряется чтение и запись файлов, а следовательно и работа программ. Другое определение дефрагментации: перераспределение файлов на диске, при котором они располагаются в непрерывных областях» [2].
РАЗДЕЛ 1. ОСНОВЫ ДЕФРАГМЕНТАЦИИ
1.1 Файловая система типа FAT32
FAT32 (от англ. File Allocation Table — «таблица размещения
файлов») — это файловая система, разработанная компанией Майкрософт, разновидность FAT. Файловая система поддерживает кластеры с минимальным размером 4 КБ, а также жесткие диски EIDE, объем которых превышает 2 ГБ. Данную систему поддерживают все операционные системы семейства Windows начиная с Windows 95.
Файловая система FAT32 содержит следующие возможности, отсутствовавшие в предыдущих версиях файловой системы FAT.
· FAT32 поддерживает диски размером до 2 терабайт.
· FAT32 более эффективно использует пространство на диске. За счет поддержки кластеров меньшего размера (4 КБ на дисках до 8 ГБ) файловая система FAT32 использует пространство на больших дисках на 10–15% эффективнее, чем файловые системы FAT и FAT16.
· FAT32 более надежна. FAT32 поддерживает изменение места расположения корневой папки и использование резервной копии таблицы размещения файлов (вместо основного экземпляра). Также загрузочная запись на дисках, с файловой системой FAT32, использует резервную копию наиболее важных данных. Таким образом, диски с FAT32 более надежны, чем диски с файловой системой FAT16.
· FAT32 более гибка. Корневая папка на диске FAT32 представляет собой стандартную последовательность кластеров и может размещаться в любом месте диска. Отсутствуют ограничения на количество элементов в корневой папке, существовавшие в предыдущих версиях. Кроме того, FAT32 позволяет отключать дублирование основного экземпляра таблицы размещения файлов и использовать второй экземпляр. Эти функции позволяют динамически изменять размер разделов FAT32.
Были расширены атрибуты файлов. Теперь возможно теперь хранить время и дату создания, даты модификации и последнего доступа к файлу или каталогу.
Но данная файловая система не поддерживает журналирование. Эта технология позволяет записывать все операции производимых с файлами. Журналирование помогает установить тип ошибки, произошедшей при сбое во время работы ОС. Также используется при восстановлении файловой системы. Как следствие отсутствия сведений о изменениях данных после сбоя необходимо проводить полную проверку ФС на наличие логических ошибок.
1.2 Файловая система типа NTFS
NTFS (от англ. New Technology File System — «файловая система новой технологии») — стандартная файловая система для ОС Windows NT. NTFS заменила применяемую ранее FAT.
Как и любая другая система, NTFS делит все полезное место на кластеры — единичные блоки данных. NTFS поддерживает различные размеры блоков — минимальные 512 байт до предельно допустимых 64 Кбайт, стандартом, в операционных системах Windows NT, считается кластер размером 4 Кбайт, при таком объеме будет доступна функция сжатия дынных. Файловая система NTFS условно разделена на две части. Первая часть диска будет занята MFT (Master File Table — общая таблица файлов), для ее хранения отводится 12% пространства всего раздела. Это пространство необходимо для хранения метафайла MFT. Запись каких-либо пользовательских данных в эту область невозможна. Область для MFT всегда держится пустой — это делается для того, чтобы служебный файл не фрагментировался при увеличении своего объема. Остальные 88% диска представляют собой обычное пространство для хранения файлов.
Далее перечислены возможности, предоставляемые файловой системой NTFS.
· Усовершенствованные возможности масштабирования при использовании дисков больших объемов. Максимальный объем раздела или тома для системы NTFS значительно превышает максимальный объем раздела или тома для файловой системы FAT, и, в отличие от системы FAT, при увеличении объемов не происходит снижения производительности.
· Active Directory (и домены, являющиеся частью Active Directory). С помощью Active Directory можно легко просматривать сетевые ресурсы и управлять ими. С помощью доменов, сохраняя простоту администрирования, можно настроить параметры безопасности. Контроллеры домена и Active Directory требуют наличия NTFS.
· Возможности сжатия, включая возможность сжатия или распаковки диска, папки или определенного файла. (Файл не может быть сжат и зашифрован одновременно.)
· Шифрование файлов, значительно повышающее безопасность. (Файл не может быть сжат и зашифрован одновременно.)
· Разрешения, которые могут быть установлены для отдельных файлов, а не только для папок.
· Внешнее хранилище, обеспечивающее расширение места на диске с помощью организации более совершенного доступа к съемным носителям, таким как магнитные ленты.
· Регистрация событий по обращению к дискам, помогающая быстро восстановить данные в случае перебоя электропитания или других системных сбоев.
· Разреженные файлы — файлы больших размеров, создаваемые в приложениях определенным образом, что для их хранения требуется малые объемы дискового постранства. В связи с этим NTFS выделяет дисковое пространство только для тех частей файла, в которые производится запись данных.
· Дисковые квоты, с помощью которых можно управлять объемом дискового пространства, выделяемого конкретным пользователям.
Вернемся к проблеме фрагментации. Изначально утверждалось, что новая файловая система не нуждается в дефрагментации. Но, как выяснилось, она страдает той же проблемой, хотя и обладает некоторыми технологиями способствующих увеличению производительности даже на сильно фрагментируемых дисках.
При заполнении диска на 88% мы, можно сказать, лишаемся возможности проводить дефрагментацию, так как запись данных в MFT зону нам запрещена, а для перемещения файлов нет свободного места. С MFT возникают еще ряд проблем. При переполнении свободного места (более 88% от общего объема) MFT область сокращается, что в дальнейшей работе приводит к ее фрагментации, а это уже является проблемой так, как из-за особенностей ФС дефрагментировать ее не удастся.