Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВМСС / HDD / Файловые системы.doc
Скачиваний:
20
Добавлен:
10.12.2013
Размер:
1.07 Mб
Скачать
      1. Устранение потерь

Теперь, когда допустимое число кластеров и число секторов одинаковы, видимо, можно было бы предположить, что для минимизации потерь места на диске в FAT32 будут использоваться кластеры, состоящие из одного сектора. Но в этом вопросе необходим какой-то компромисс, поэтому в спецификации FAT32 размер кластера для накопителей ёмкостью до 8 ГБайт составляет 4 КБайт.

Одним из факторов, сыгравшим роль при принятии такого решения, стало то, что теперь нужно учитывать и размер самой FAT. OS сохраняет две копии FAT, поэтому под элемент каждого кластера в FAT требуется 8 байт. На 2 ГБайт диске FAT займёт 32 МБайт его пространства при размере кластера 512 байт. А если размер кластера составляет 4 КБайт, для хранения двух таблиц FAT потребуется всего 4 МБайт, то есть будет сэкономлено 28 МБайт.

Но причиной компромисса стали не только соображения экономии дискового пространства; не были забыты и вопросы производительности. Для ускорения доступа к диску программы дискового кэша VCACHE загружает всю FAT в оперативную память. Очевидно, что проще добиться этого, если каждая отдельная таблица FAT занимает 2 МБайт, а не 16. Увеличение размеров FAT и удвоение числа кластеров не приведут к снижению эффективности VCACHE: для FAT32 Microsoft разработала новый алгоритм работы с кэшем, который по их утверждению приводит к увеличению быстродействия.

      1. Изменения архитектуры fat

Чтобы обеспечить возможность работы с возросшим числом кластеров, в записи каталога для каждого файла (дескрипторе файла) должно выделяться 4 байта для номера начального кластера вместо 2 байт в FAT16. Каждая запись в каталоге состоит из 32 байт (см Табл. 2). В середине этой записи 10 байт, которые Microsoft зарезервировала для своих нужд в будущем, не использовались. Два из них теперь отводятся как дополнительные байты, необходимые для указания начального кластера в системе FAT32.

Операционная система всегда предусматривала наличие на диске двух копий FAT, но использовалась только одна из них. С переходом к FAT32 OS может работать с любой из них. Ещё одно изменение состоит в том, что корневой каталог, раньше имевший фиксированный размер и положение, теперь можно свободно наращивать по необходимости, подобно любому другому каталогу. В FAT32 нет ограничений на число записей в корневом каталоге, что особенно важно, поскольку под длинное имя используется несколько записей каталога.

    1. HPFS

      1. Архитектура файловой системы hpfs

Windows NT 3.50 поддерживала файловую систему HPFS. Из операционной системы Windows NT 4.0 (а так же Windows 2000) эта возможность была исключена.

HPFS имеет особенности, которые способствуют её эффективному использованию для управления жёсткими дисками больших размеров. HPFS так же поддерживает длинные имена (до 255 символов).

Когда HPFS форматирует раздел, первые 18 секторов резервируются для блока начальной загрузки (Boot Block), суперблока (super block) и запасного блока (spare block). Эти три структуры используются для загрузки операционной системы и поддержки целостности файловой системы.

HPFS так же резервирует пространство под два битовых массива (bitmaps) объёмом по 2 КБайт для каждого дискового интервала в 16 МБайт. Каждый битовый массив отводит по одному биту для каждого размещаемого блока (равного одному сектору) в полосе 8 МБайт, указывая, какие сектора используются файлами.

Битовые массивы поочерёдно размещаются в начале и в конце каждой полосы, обеспечивая таким образом максимальное количество непрерывного пространства для данных (16 МБайт вместо 8). Кроме того, HPFS планирует запись новых файлов, оставляя участок диска для расширения в непрерывном дисковом пространстве. Эта особенность позволяет HPFS осуществлять быстрый поиск данных и минимизировать фрагментацию файлов.

Другая особенность HPFS, которая объясняет быстрый поиск в каталоге — использование технологии B-Tree (Двоичное Дерево). B-Tree — древовидная структура с корнем и узлами. Корень содержит административную информацию, карту для остальной структуры, и , возможно, некоторые данные. Большую часть данных содержат узлы дерева. Для больших каталогов B-Tree работает значительно эффективнее линейных списков FAT.

HPFS использует B-Tree для структуризации каждого файла и каталога. Каждый каталог указывает на структуры FNode для файлов, содержащихся в этом каталоге. Структура FNode имеет длину 512 байт и содержит заголовок, имя файла (усечённое до 15 символов), длину файла, расширенные атрибуты (EA), список управления доступом (ACL) и расположение данных файлов.

Благодаря чередующемуся расположению битовых массивов размер одного фрагмента может быть почти 16 МБайт. Обычно FNode может включать до 8 указателей на фрагменты. Если файл настолько большой, что восьми указателей не хватает для того, чтобы разместить всю информацию об его фрагментов, FNode может включать до 12 указателей на узлы распределения, которые имеют пространство для большего числа указателей на фрагменты файла.

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

Соседние файлы в папке HDD