Файловая система hpfs
HPFS имеет особенности, которые способствуют ее эффективному управлению большими объемами жесткого диска. HPFS также поддерживает длинные имена файла (до 255 символов).
Когда HPFS форматирует том, первые 18 секторов резервируются для блока начальной загрузки (boot block), суперблока (super block) и запасного блока (spare block). Эти три структуры используются для загрузки операционной системы, поддержки файловой системы и восстановления при возможных ошибках.
HPFS также резервирует пространство под два битовых массива (bitmap) объемом 2 Кб для каждого дискового интервала в 16 Мб. Каждый битовый массив отводит по одному биту для каждого размещаемого блока (равного одному сектору) в полосе 8 Мб, показывая, какие размещаемые блоки находятся в использовании.
Б
итовые
массивы поочередно размещаются в конце
и начале каждой полосы, обеспечивая
таким образом максимальное количество
непрерывного пространства для данных
(16 Мб вместо 8 Мб). Кроме того, HPFS
планирует запись новых файлов, оставляя
участок памяти между новым и существующим
файлом с тем, чтобы каждый файл имел
участок памяти для расширения в
непрерывном
дисковом пространстве.
Эта особенность помогает HPFS
осуществлять быстрый поиск данных и
минимизировать фрагментацию файлов.
Рис. 7.3. Организация тома HPFS
Другая особенность, которая объясняет быстрый поиск в каталоге — использование HPFS технологии B-tree (В-дерево). B-tree — древовидная структура с корнем и несколькими узлами. Она содержит организованные некоторым логическим способом данные; этот способ позволяет производить быстрый просмотр всей структуры. Корень содержит административную информацию, карту для остальной структуры и, возможно, некоторые данные. Большинство данных содержат узлы. Для больших каталогов технология B-tree работает значительно эффективнее линейных списков, используемых файловой системой FAT.
HPFS использует B-tree для структуризации каждого каталога и каждого файла. Каждый каталог указывает на структуры Fnode для файлов, содержащихся в этом каталоге. Структура Fnode имеет размер 512 байт и содержит заголовок, имя файла (усеченное до 15 символов), длину файла, расширенные атрибуты (ЕА), список управления доступом (ACL) и расположение данных файла
Рисунок иллюстрирует структуру Fnode для файла, данные которого находятся в Extent I, Extent2 и Extents (где Extent — диапазон непрерывных секторов).
Благодаря расположению битовых массивов, показанному на рисунке, размер одного фрагмента может быть почти 16 Мб. Обычно Fnode может включать до 8 указателей на фрагменты. Если файл настолько большой, что восьми фрагментов не хватает для размещения всей информации, Fnode может включать до 12 указателей к узлам распределения, которые имеют пространство для большего количества фрагментов файла.
Если расширенный атрибут и ACL не могут быть включены в Fnode, Fnode содержит указатель на эту информацию.
HPFS имеет мощные возможности и эффективно работает на дисках объемом до 2 Гб. Однако файловая система HPFS имеет и некоторые слабые стороны. Например, при повреждении первой части тома, которая содержит информацию начальной загрузки и указатель на корневой каталог, использование тома будет невозможно. Использование системой HPFS утилиты chkdsk при каждой начальной загрузке системы и восстановление диска после ошибок требуют больших временных затрат. Кроме того, HPFS предполагает использование 512-байтовіх секторов, которые не очень подходят для больших томов.
