4. Файловая система HPFS

Файловая система HPFS (высокопроизводительная файловая система) впервые появилась в операционной системе OS/2. HPFS является файловой системой для многозадачного режима работы, поддерживает длинные имена файлов, и обеспечивает высокую производительность при работе с дисками большого объема. Она, как и FAT, имеет древовидную структуру каталогов, но в ней еще предусмотрены автоматическая сортировка каталогов и специальные расширенные атрибуты, упрощающие обеспечение безопасности на файловом уровне и создание множественных имен. Расширенные атрибуты позволяют хранить дополнительную информацию о файле. Например, каждому файлу может быть сопоставлено его индивидуальное графическое изображение (значок).

По сравнению с FAT HPFS обладает более высокой производительностью, надежностью, и эффективнее использует дисковое пространство. Еще одна особенность заключается в том, что пространство, освобожденное стертым файлом, обычно используется не сразу и файл можно восстановить.

Для достижения более этого в HPFS применяется:

- размещение каталогов в середине дискового пространства;

- используется метод бинарных сбалансированных деревьев, для ускорения поиска информации о файле;

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

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

Все эти преимущества обусловлены структурой диска с файловой системой HPFS.

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

Дисковое пространство в HPFS выделяется не кластерами, а блоками. Размещение файлов в таких небольших блоках позволяет экономить дисковое пространство. Так потери составляют в среднем всего 256 байт на файл.

Загрузочный блок Дополнительный блок Резервный блок Полоса 1 Битовая карта 1 Битовая карта 2 Полоса 2 Полоса 3 Битовая карта 3 Битовая карта 4 Полоса 4

Рис. 3 Структура раздела HPFS

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

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

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

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

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

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

Файловая система HPFS при записи файла на диск стремится избежать фрагментации. Если файл непрерывен то, его размещение описывается двумя 32-разрядными числами. Первое число представляет собой указатель на первый блок файла, а второе – длину экстента, то есть число следующих друг за другом блоков, принадлежащих файлу. Из этого следует, что максимальный объем диска в HPFS составляет 2 Тб. Если файл фрагментирован, то размещение его экстентов описывается дополнительными парами 32-разрядных чисел. Фрагментация происходит, когда на диске нет непрерывного свободного участка, достаточного для размещения файла целиком. В этом случае файл делится на несколько частей и располагается в разных местах диска. Файловая система HPFS старается поместить части фрагментированного файла как можно ближе друг к другу, для того чтобы сократить время позиционирования головок чтения/записи при чтении файла с жесткого диска. Также файловая система старается резервировать минимум 4 Кб места в конце файлов подлежащих изменению.

Пользовательская программа может указать размер файла при его создании. В этом случае система сразу попытается выделить место под файл так, чтобы он занимал как можно меньше экстентов. Если программа не сообщила размера файла, используется значение по умолчанию. Фактически, HPFS размещает место, под файл, начиная выделение с наибольшего непрерывного участка свободного пространства. В результате фрагментированными оказываются только файлы, длина которых увеличивалась многократно или же те, которые создавались при почти заполненном диске. При нормальной работе файл редко занимает больше 3—4 экстентов.

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

Большое значение для увеличения производительности HPFS имеет метод сбалансированных двоичных деревьев, используемый для хранения и поиска информации о местонахождении файлов. В файловой системе FAT каталог имеет линейную неупорядоченную структуру и при поиске файла необходимо последовательно просматривать его с самого начала. В HPFS структура каталога представляет собой сбалансированное дерево, с записями расположенными в алфавитном порядке. Каждая запись содержит атрибуты файла, указатель на соответствующий файловый узел, информацию о времени и дате создания, последнего изменения и обращения к файлу, о размере файла, счетчик обращения к файлу, информацию о длине имени файла и само имя, и другая подобная информация. Таким образом, при поиске файла в каталоге просматриваются только необходимые ветви двоичного дерева. Записи каталога заведомо не относящиеся к искомому файлу не рассматриваются.

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

Файловая система HPFS для исправления ошибок, возникающих при записи файлов на диск, использует механизм аварийного замещения. Информация, предназначенная для записи в сектор, оказавшийся дефектным, сохраняется в одном из запасных секторов, заранее зарезервированных на этот случай. Их список хранится в резервном блоке файловой системы. Затем происходит обновление карты аварийного замещения. Она представляет собой пары 32-разрядных чисел. Первое число такой пары указывает на дефектный сектор, а второе на сектор его замещающий. Очистка карты аварийного замещения выполняется программой CHKDISK при проверке тома HPFS. Для каждого замещенного блока (сектора) выделяется новый сектор в наиболее подходящем месте. Затем данные записываются в этот сектор, и обновляется информация о положении файла. После этого программа вносит поврежденный сектор в список дефектных блоков, и возвращает освобожденный сектор в список свободных запасных секторов резервного блока. После этого происходит удаление записей из карты аварийного замещения.

Существует еще одна реализация HPFS для работы на серверах – HPFS386.IFS. Ее отличие в том, что она позволяет посредством более полного использования расширенных атрибутов, организовать ограничение доступа к файлам, с помощью списков управления доступом. Также в этой системе нет ограничения на объем памяти, выделяемой для кэширования файловых записей. В HPFS этот объем не может превышать 2 Мб.

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

 


Информация о работе «Файловые системы»
Раздел: Информатика, программирование
Количество знаков с пробелами: 40697
Количество таблиц: 4
Количество изображений: 2

Похожие работы

Скачать
24692
3
0

... символов Любые символы Юникода, кроме NUL 32767 символов Юникода; каждая компонента пути (каталог или имя файла) – до 255 символов 16 EiB 16 EiB 12 8.3. Особенности файловых систем Файловая система Жесткие ссылки Мягкие ссылки Журнали-рование блоков Журнали-рование только метаданных Чувстви-тельно к регистру Case-preser-ving Логизм файлов ...

Скачать
23709
0
0

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

Скачать
65546
9
27

... и установлены 80 G ATA/IDE дисководы . Постановка задачи Целью данного проекта является, разработка методики для проведения установки эффективной системы защиты и восстановления данных, а также обучение сотрудников фирмы методам администрирования различных PC в организации для осуществления технического обслуживания. Данная задача должна осуществляться специальными приспособлениями и стандартным ...

Скачать
9403
1
2

... и, по большому счету, пользователям совершенно все равно, на каком именно диске или разделе диска расположены его файлы /usr/spool/moshkow или /home1/moshkow/bin/mcopy... Файловая система Unix кэшируется буферным кэшем. Операция записи на диск выполняется не тогда, когда это приказывает выполняемый процесс, а когда операционная система сочтет нужным это сделать. Это резко поднимает эффективность ...

0 комментариев


Наверх