Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Управление данными / 7_1-Файловая система.doc
Скачиваний:
35
Добавлен:
04.06.2015
Размер:
179.71 Кб
Скачать

Каталоги ntfs

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

Дерево В+ — это структура данных, которая поддерживает упорядочен­ное хранение ино>ормации и эо>фективна в контексте операций поиска, удаления, вставки и просмотра данных. Деревья В+ состоят из "узловых" записей, содержащих ключи, а также указателей, которые соединяют узлы дерева. Преимущество использования такой структуры данных состоит в тенденции к расширению дерева, а не к увеличению в глубину, что позволяет сохра­нить приемлемую производительность даже для каталогов, которые содер­жат большое количество записей.

Записи в каталоге хранятся в отсортированном виде. Каждая запись со­держит имя файла, указатель на запись файла в MFT, а также дату/времен­ную метку (эта информация уже хранится в записи файла MFT). Это поз­воляет добиться высокой производительности при просмотре содержимого каталога. Деревья В-'- эффективны в аспекте количества сравнений, необхо-

Разреженные файлы ntfs

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

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

Термин разреженный относится к файлам, содержащим данные, после ко­торых идет большая область без данных, за ней небольшой фрагмент данных и т.д. Файловая система NTFS не выделяет дискового пространства для хра­нения пустых областей файлов. Вспомните, что виртуальный номер кластера определяет положение кластера относительно начала файла, а логический номер кластера определяет положение кластера относительно начала тома. Для разреженных файлов в NTFS выделяется виртуальный номер класте­ра, однако кластеры тома не выделяются. Таким образом, логический номер кластера, относящийся к тому, для некоторых виртуальных номеров класте­ров не выделяется. Если приложение пытается считать файл, NTFS заполня­ет участки буфера, соответствующие пустым пространствам файла, нулями. Если приложение попытается записать данные в пустые области файла, фай­ловая система выделит необходимый объем дискового пространства

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

Учитывая снижение стоимости жестких дисков, экономия дискового про­странства с помощью разреженных файлов уже не столь актуальна. Тем не менее доступ к разреженным файлам осуществляется более эффективно за счет сокращения ввода-вывода (отпадает необходимость в получении данных, представляющих собой набор нулей).

Приложения могут указать атрибут разреженности для файла с помощью параметра FSCTL_SET_SPARSE функции DeviceIoControl. Для получения ин­формации о разреженности файла требуется функция GetFileAttributes.