Xreferat.com » Рефераты по информатике и программированию » Дефрагментатор файловой системы

Дефрагментатор файловой системы

Размещено на /

СОДЕРЖАНИЕ

Дефрагментатор файловой системы

ВВЕДЕНИЕ

РАЗДЕЛ 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. Программа Auslogics Disk Defrag

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 Microsoft Visual Studio

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 Кнопка «File info»

ВЫВОДЫ

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЯ


ВВЕДЕНИЕ


Используя операционные системы семейства 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 область сокращается, что в дальнейшей работе приводит к ее фрагментации, а это уже является проблемой так, как из-за особенностей ФС дефрагментировать ее не удастся.


1.3 Популярные утилиты-дефрагментаторы


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

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


1.3.1 Программа Windows Disk Defragmenter

Данный дефрагментатор является стандартным средством Windows.

Имеет простой интерфейс, графическое отображение состояния диска (Рис. 1.1.).

Дефрагментатор файловой системы

Рис. 1.1. Интерфейс Windows Disk Defragmenter.


Он позволяет работать с файловыми системами FAT, FAT32 и NTFS. Дефрагментации подвергается большинство требуемых файлов. Данный продукт имеет множество недостатков, основными, из которых, можно считать: малую производительность, минимальный спектр настроек, наличие 15% свободного дискового пространства для начала процесс дефрагментации. Также программа не объединяет свободное пространство, что в скором времени приведет к более частой фрагментации. Не организована функция автоматической дефрагментации. Из-за плохой работы данную программу не следует использовать для основного средства дефрагментации.


1.3.2 Дефрагментатор Diskeeper 2009

Diskeeper являться популярным пакетом для дефрагментации жесткого диска. Поддерживает файловые системы NTFS, FAT16 и FAT32. Программа способна работать с томами более 1 Тб, большими файлами, сильно фрагментированными файлами, системными файлами, MFT. Для работы дефрагментатора, по заверениям разработчиков, достаточно 1% свободного дискового пространства, но на практике большие файлы попросту пропускаються. К сожалению программа имеет низкую скорость работы, в сравнении с другими решениями.

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


Дефрагментатор файловой системы

Рис. 1.2. Интерфейс Diskeeper 2009.


После проведения Анализа диска пользователю представляют детальнейший отчет о файлах, их расположении, состоянии.

Diskeeper может работать в автоматическом режиме и в ручном. В первом случае, благодаря специальной технологии, программа самостоятельно принимает решение относительно процесса дефрагментации и применяемого метода. Также возможно создать расписание дефрагментации. В ручном режиме процесс дефрагментации инициируется пользователем, выбор метода и приоритета также указывает пользователь. Для ручного режима доступно два варианта работы «Quick» и «Recommended». При использовании первого метода обеспечивается высокая скорость работы при малой эффективности. Это объясняется тем, что при работе не производится объединение свободных областей. Режим «Recommended» более длительны, использует больше системных ресурсов. В этом случае производится дефрагментация файлов и частичное объединение свободного пространства диска. Для этого режима возможно использовать автоматическое определения приоритета дефрагментации


1.3.3 Утилита UltraDefrag.

Маленький бесплатный дефрагментатор. К основным достоинствам можно отнести открытый программный код, высокую скорость работы, малое потребление системных ресурсов, простой интерфейс.

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


Дефрагментатор файловой системы

Рис. 1.3. Интерфейс Ultradefrag.


Однако UltraDefrag использует слабый алгоритм дефрагментации. Программа не способна сортировать файлы по частоте доступа или же по имени, не дефрагментирует свободное пространство. Несмотря на эти недостатки, после завершения процесса дефрагментации ощущается значительный прирост производительности. Программа генерирует отчеты в формате HTML. Имеет 32-х битные и 64-х битные версии.


1.3.4 Программа Auslogics Disk Defrag

Auslogics Disk Defrag бесплатное решение дефрагментации жестких дисков. Имеет приятный понятный интерфейс (Рис. 1.4).


Дефрагментатор файловой системы

Рис. 1.4. Интерфейс Auslogics Disk Defrag.


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

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

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

Сразу после выполнения дефрагментации пользователю представляется краткий отчет, в котором выделены важнейшие сведенья. Также можно просмотреть полный отчет.


1.3.5 Программа O&O Defrag

Мощный программный пакет для дефрагментации диска. O&O Defrag выделяется благодаря уникальным технологиям. ActivityGuard следит за работой компьютера и незаметно проводит дефрагментацию, самостоятельно изменяю свою активность в зависимости от основных задач, выполняемых на данный момент. Технология OneButtonDefrag позволяет проводить дефрагментацию в соответствии с заданными установками, при определенном уровне фрагментации.

Дефрагментация может проводиться во время простоя системы, по расписанию, в ручном режиме. Для начала работы необходимо более 5% свободного пространства на диске. Программа позволяет дефрагментировать отдельный диск или все, отдельный файл, конкретную папку. Однако иногда возникают проблемы с дефрагментацией отдельных файлов. Если программе не удается найти достаточного свободного объема, она отмечает процент выполненной работы и переходит в недоступный режим (программа не отвечает), в таких ситуациях приходиться завершать процесс. После такого использовать программу удастся только после запуска соответствующей службы.

Пользоваться программой достаточно просто. Все возможности программы сгруппированы в четыре вкладки: Дефрагментация, Отчеты, Вид, Справка. Интерфейс удобный и интуитивно понятен (Рис. 1.5.).


Дефрагментатор файловой системы

Рис. 1.5. Интерфейс O&O Defrag.


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

Организовано несколько различных алгоритмов дефрагментации. Это самые распространенные алгоритмы: Скрытая (быстрая) дефрагментация (Stealth), Дефрагментация свободного места (Space), Имя (Complete/Name), Изменен(Complete/Modified), Доступ (Complete/Access). Более детально работу этих методов будет рассмотрено в следующем разделе.

РАЗДЕЛ 2. ОПИСАНИЕ АЛГОРИТМОВ ДЕФРАГМЕНТАЦИИ


2.1 Алгоритмы


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


2.1.1 Простая дефрагментация

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

На первом этапе задается файл, который необходимо дефрагментировать. Далее проводится поиск всех кластеров занимаемым файлом. Если кластеры не образуют нераздельную цепочку – это означает, что файл фрагментирован. На следующем этапе проводится поиск подходящего места для перемещения файла. После успешного выполнения предыдущего шага выполняется перемещение кластеров файла в новое место на диске. Если же место для файла не найдено (особо актуально для больших по объему файлов), то он пропускается и остается фрагментированным.

На рисунках 2.1. и 2.2. представлен, в графическом виде, принцип работы алгоритма. На рисунке 2.3. изображены условные обозначения.


Дефрагментатор файловой системы

Рис. 2.1. Область диска до дефрагментации.


Дефрагментатор файловой системы

Рис. 2.2. Использован «простой» метод.

операционный файловый дефрагментация программа

Дефрагментатор файловой системы

Рис. 2.3. «Легенда».


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

Недостатки: не способен дефрагментировать свободное пространство, что приводит к сильной фрагментации не занятых кластеров. Если общее свободное место позволяет дефрагментировать файл, но неразделенного свободного объема нет (фрагментировано свободное место). Не выполняется никакой сортировки данных.


2.1.2 Дефрагментация свободного места или полная дефрагментация

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

В настоящее время такой способ дефрагментации используется крайне редко, как основной метод, так как он занимает длительное время и требует относительно много свободного дискового пространства.

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

На рисунках 2.4. и 2.5. представлен, в графическом виде, принцип работы алгоритма. На рисунке 2.6. изображены условные обозначения.


Дефрагментатор файловой системы

Рис. 2.4. Область диска до дефрагментации.


Дефрагментатор файловой системы

Рис. 2.5. Дефрагментация свободного места.


Дефрагментатор файловой системы

Рис. 2.6. «Легенда».


Преимущества: метод эффективен для сильно фрагментированных дисков. Дефрагментация свободного места предотвращает дальнейшую фрагментацию данных. При проведении дефрагментации пропущенными фрагментированными остается намного меньше файлов, нежели при «простой дефрагментации».

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


2.1.3 Дефрагментация часто используемых данных

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

Для минимальной фрагментации и поддержания высокой производительности следует использовать данный метод регулярно.

Проводится обычный процесс дефрагментации файлов. Особенностью данного метода является реорганизация файловой структуры. После завершения дефрагментации файлы сортируются по времени последнего доступа. Файл с наименьшей частотой использования помешается в начало раздела. Часто испытываемые файлы размешаются в конце раздела. В таком случае редко используемые файлы будут дефрагментированны и не возникнет необходимости их перемещать. Данный метод можно отнести к «полной» дефрагментации, так как при сортировке и перемещении данных на жестком диске образуются большие объемы смежных свободных областей.

На рисунках 2.7. и 2.8. представлен, в графическом виде, принцип работы алгоритма. На рисунке 2.9. изображены условные обозначения.


Дефрагментатор файловой системы

Рис. 2.7. Область диска до дефрагментации.


Дефрагментатор файловой системы

Рис. 2.8. Дефрагментация часто используемых данных.


Дефрагментатор файловой системы

Рис. 2.9. «Легенда».


Преимущества: реорганизация данных повышает производительность на серверных станциях. Полная дефрагментация позволяет объединить большинство свободного места на жестком диске.

Недостатки: требуется много свободного дискового пространства для начала процесса дефрагментации. Высокое потребление системных ресурсов. Не универсальность данного типа сортировки.


2.1.4 По дате последнего изменения

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

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

На рисунках 2.10. и 2.11. представлен, в графическом виде, принцип работы алгоритма. На рисунке 2.12. изображены условные обозначения.


Дефрагментатор файловой системы

Рис. 2.10. Область диска до дефрагментации.


Дефрагментатор файловой системы

Рис. 2.11 По дате последнего изменения.


Дефрагментатор файловой системы

Рис. 2.12. «Легенда».


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

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

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


2.1.5 Сортировка по имени

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

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

Использование такого метода дефрагментации позволит ускорить процесс работы компьютера, в частности загрузки операционной системы. Это объясняется тем, что при загрузке большинство требуемых библиотек загружаются из нескольких каталогов «C:WindowsSystem32», «C:WindowsSystem32drivers»).

Данный алгоритм рекомендуется использовать на системных дисках, на которых файлы редко изменяются.

На рисунках 2.13. и 2.14. представлен, в графическом виде, принцип работы алгоритма. На рисунке 2.15. изображены условные обозначения.


Дефрагментатор файловой системы

Рис. 2.13. Область диска до дефрагментации.


Дефрагментатор файловой системы

Рис. 2.14. Область диска до дефрагментации.


Дефрагментатор файловой системы

Рис. 2.15. «Легенда».

Преимущества: алгоритм полной дефрагментации сортирует все файлы на жестком диске. Повышает скорость работы операционной системы.

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


2.2 Выбранный алгоритм


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

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

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


2.3 Среда разработки


2.3.1 С++ Bilder

Пятая версия продукта Borland C++ Builder , вышедшая в начале 2000 года, является достаточно популярной визуальной средой разработки на С++ для Windows. В состав среды входит множество различных компонентов и библиотек. Среда разработки имеет удобный редактор форм. Это позволяет создавать визуальные приложения с интерфейсами любой сложности. Редактор кода достаточно прост, но при написании большого кода программы навигация становится более трудной. К сожалению компилятор и отладчик в Bilder на выполнены на достаточном уровне. Откомпилированная программа занимает, относительно, много пространства на диске, и скорость работы приложения не максимальна. Язык программирования для данной среды является Object Pascal, но так же допускается использование в коде языка С. Такая мультиязычность кода приводит к потеряв быстродействия программы и усложнением работы над проектом.


2.3.2 Microsoft Visual Studio

Является универсальной средой разработки. Включает в себя Visual Basic .NET (Visual Basic), Visual C++,Visual C#. Имеет различные редакции, одна из которых бесплатна, в некоторые входят также Microsoft SQL Server либо Microsoft SQL Server Express. Среда разработки имеет хороший и удобный редактор кода. Для облегчения работы программиста код подсвечен разными цветами, на каждую стандартную функцию можно получить справку. Однако количество доступных компонентов намного меньше чем для С++ Bilder 5.0. Существует большая библиотека справочной информации Microsoft Developer Network (MSDN), что значительно помогает при изучении языка и создании приложений. Компилятор в Visual Studio создает приложения достаточно малого размера и скорость выполнения в связке с языком С++ предельно высокая.


2.3.3 Выбранная среда

Для написания программы был выбран язык программирования высокого уровня C++. Язык является C подобным, имеет небольшие отличия, которые значительно улучшают качество кода. Этот язык имеет множество библиотек, большое количество готовых функций, имеет множество возможностей, написание кода занимает значительно меньше времени, в сравнении с другими языками. Однако разработка приложения может занять более длительное время, нежели при использовании других языков. В виду сложности языка на его изучение требуется, относительно, много времени.

В качестве среды разработки была выбрана Microsoft Visual Studio 2005. Данная среда разработки является универсальной, так, как она поддерживает несколько языков программирования. В VS2005 встроен достаточно хороший компилятор, имеет удобный редактор кода и редактор графического интерфейса, обладает хорошим отладчиком.

РАЗДЕЛ 3. РУКОВОДСТВО ПРОГРАММИСТА


3.1 Стандартные функции


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

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

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


3.1.1 Управляющий код FSCTL_GET_VOLUME_BITMAP

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

Для использования этой операции необходимо вызвать функцию DeviceIoControl

Возвращаемые значения. Если операция завершена успешно, DeviceIoControl возвращает ненулевое значение.

Если операция не может выполниться или еще выполняется, DeviceIoControl возвращает ноль (0). Для

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту

Похожие рефераты: