Файловая система hpfs реферат

Обновлено: 05.07.2024

HPFS (англ. High Performance File System ) — высокопроизводительная файловая система, разработанная специалистами Microsoft и IBM и представленная в 1989 году вместе с операционной системой OS/2 1.20. Файловая система HPFS также поддерживалась ОС Windows NT до версии 3.51 включительно. По производительности эта ФС существенно опережает FAT. HPFS позволяет использовать жесткие диски объемом до 2 Терабайт (первоначально до 4 Гбайт). Кроме того, она поддерживает разделы диска размером до 512 Гб и позволяет использовать имена файлов длиной до 255 символов (на каждый символ при этом отводится 2 байта.

Содержание

Особенности HPFS

  • Главное отличие - базовые принципы размещения файлов на диске и принципы хранения информации о местоположении файлов. Благодаря этим принципам HPFS имеет высокую производительность и отказоустойчивость, является надежной файловой системой.
  • Дисковое пространство в HPFS выделяется не кластерами (как в FAT), а блоками. В современной реализации размер блока взят равным одному сектору, но в принципе он мог бы быть и иного размера. (По сути дела, блок -- это и есть кластер, только кластер всегда равен одному сектору). Размещение файлов в таких небольших блоках позволяет более эффективно использовать пространство диска, так как непроизводительные потери свободного места составляют в среднем всего (полсектора) 256 байт на каждый файл. Вспомним, что чем больше размер кластера, тем больше места на диске расходуется напрасно.
  • Система HPFS стремится расположить файл в смежных блоках, или, если такой возможности нет, разместить его на диске таким образом, чтобы экстенты (фрагменты) файла физически были как можно ближе друг к другу. Такой подход существенно уменьшает время позиционирования головок записи/чтения жесткого диска и время ожидания (задержка между установкой головки чтения/записи на нужную дорожку). Напомним, что в FAT файлу просто выделяется первый свободный кластер.

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

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

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

Структура

В начале раздела с установленной HPFS расположено три управляющих блока:

  • загрузочный блок (boot block),
  • дополнительный блок (super block) и
  • запасной (резервный) блок (spare block).

Они занимают 18 секторов.

Все остальное дисковое пространство в HPFS разбито на части из смежных секторов - полосы (band - полоса, лента). Каждая полоса занимает на диске 8 Мбайт.

Каждая полоса и имеет свою собственную битовую карту распределения секторов. Битовая карта показывает, какие секторы данной полосы заняты, а какие -- свободны. Каждому сектору полосы данных соответствует один бит в ее битовой карте. Если бит = 1, то сектор занят, если 0 - свободен.

Битовые карты двух полос располагаются на диске рядом, так же располагаются и сами полосы. То есть последовательность полос и карт выглядит как на рис.

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

Рассмотрим управляющие блоки.

Загрузочный блок (boot block)

  • имя тома
  • его серийный номер
  • блок параметров BIOS
  • программу начальной загрузки.

Программа начальной загрузки находит файл OS2LDR, считывает его в память и передает управление этой программе загрузки ОС, которая, в свою очередь, загружает с диска в память ядро OS/2 - OS2KRNL. И уже OS2KRIML с помощью сведений из файла CONFIG.SYS загружает в память все остальные необходимые программные модули и блоки данных.

Загрузочный блок располагается в секторах с 0 по 15.

Супер Блок (super block)

  • указатель на список битовых карт (bitmap block list). В этом списке перечислены все блоки на диске, в которых расположены битовые карты, используемые для обнаружения свободных секторов;
  • указатель на список дефектных блоков (bad block list). Когда система обнаруживает поврежденный блок, он вносится в этот список и для хранения информации больше не используется;
  • указатель на группу каталогов (directory band),
  • указатель на файловый узел (F-node) корневого каталога,
  • дату последней проверки раздела программой CHKDSK;
  • информацию о размере полосы (в текущей реализации HPFS - 8 Мбайт).

Super block размещается в 16 секторе.

Резервный блок (spare block)

  • указатель на карту аварийного замещения (hotfix map или hotfix-areas);
  • указатель на список свободных запасных блоков (directory emergency free block list);
  • ряд системных флагов и дескрипторов.

Этот блок размещается в 17 секторе диска.

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

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

Принцип размещения файлов

Для сокращения времени позиционирования головок чтения/записи жесткого диска система HPFS стремится

  1. расположить файл в смежных блоках;
  2. если такой возможности нет, то разместить экстенты фрагментированного файла как можно ближе друг к другу,

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

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

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

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

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

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

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

Принципы хранения информации о расположении файлов

Каждый файл и каталог диска имеет свой файловый узел F-Node. Это структура, в которой содержится информация о расположении файла и о его расширенных атрибутах.

Замечание. Файловая система FAT аналога файлового узла не имеет.

Каждый F-Node занимает один сектор и всегда располагается поблизости от своего файла или каталога (обычно -- непосредственно перед файлом или каталогом). Объект F-Node содержит

  • длину,
  • первые 15 символов имени файла,
  • специальную служебную информацию,
  • статистику по доступу к файлу,
  • расширенные атрибуты файла,
  • список прав доступа (или только часть этого списка, если он очень большой); если расширенные атрибуты слишком велики для файлового узла, то в него записывается указатель на них.
  • ассоциативную информацию о расположении и подчинении файла и т. д.

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

Замечание. Как раз из этого следует, что максимальный объем диска может составлять (232-1)*512 = 2 Тбайта.

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

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

Таким образом, двухуровневая структура блоков размещения может хранить информацию о 480 секторах, что позволяет работать с файлами размером до 7,68 Гбайт. На практике размер файла не может превышать 2 Гбайт, но это обусловлено текущей реализацией интерфейса прикладного программирования.

Структура и размещение каталогов

Для хранения каталогов используется полоса, находящаяся в центре диска.

Эта полоса называется directory band.

Если она полностью заполнена, HPFS начинает располагать каталоги файлов в других полосах.

Расположение этой информационной структуры в середине диска значительно сокращает среднее время позиционирования головок чтения/записи. Действительно, для перемещения головок чтения/записи из произвольного места диска в его центр требуется в два раза меньше времени, чем для перемещения к краю диска, где находится корневой каталог в случае файловой системы FAT. Уже только одно это обеспечивает более высокую производительность файловой системы HPFS по сравнению с FAT. Аналогичное замечание справедливо и для NTFS, которая тоже располагает свой master file table в начале дискового пространства, а не в его середине.

Однако существенно больший (по сравнению с размещением Directory Band в середине логического диска) вклад в производительность HPFS дает использование метода сбалансированных двоичных деревьев для хранения и поиска информации о местонахождении файлов.

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

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

Каждая запись, входящая в состав дерева, содержит

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

Файловая система HPFS при поиске файла в каталоге просматривает только необходимые ветви двоичного дерева (В-Тгее). Такой метод во много раз эффективнее, чем последовательное чтение всех записей в каталоге, что имеет место в системе FAT.

Размер каждого из блоков, в терминах которых выделяются каталоги в текущей реализации HPFS, равен 2 Кбайт. Размер записи, описывающей файл, зависит от размера имени файла. Если имя занимает 13 байтов (для формата 8.3), то блок из 2 Кбайт вмещает до 40 описателей файлов. Блоки связаны друг с другом посредством списка.

Проблемы

При переименовании файлов может возникнуть так называемая перебалансировка дерева. Создание файла, переименование или стирание может приводить к каскадированию блоков каталогов. Фактически, переименование может потерпеть неудачу из-за недостатка дискового пространства, даже если файл непосредственно в размерах не увеличился. Во избежание этого “бедствия” HPFS поддерживает небольшой пул свободных блоков, которые могут использоваться при “аварии”. Эта операция может потребовать выделения дополнительных блоков на заполненном диске. Указатель на этот пул свободных блоков сохраняется в SpareBlock.

Принципы размещения файлов и каталогов на диске в HPFS

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

Надежность хранения данных в HPFS

Любая файловая система должна обладать средствами исправления ошибок, возникающих при записи информации на диск. Система HPFS для этого использует механизм аварийного замещения (hotfix).

Эта карта представляет собой просто пары двойных слов, каждое из которых является 32-битным номером сектора.

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

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

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

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

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

Файловая система определяет:

- как хранятся файлы и каталоги на диске;

- какие сведения хранятся о файлах и каталогах;

- как можно узнать, какие участки диска свободны, а какие – нет;

- формат каталогов и другой служебной информации на диске.

Мы рассмотрим четыре файловые системы – FAT, FAT 32, HPFS, NTFS.

Файловая система FAT

FAT является наиболее простой из поддерживаемых Windows NT файловых систем. Основой файловой системы FAT является таблица размещения файлов, которая помещена в самом начале тома.

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

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

Преимущества файловой системы FAT

На компьютере под управлением Windows NT в любой из поддерживаемых файловых систем нельзя отменить удаление. Файловая система FAT лучше всего подходит для использования на дисках и разделах размером до 200 МБ, потому что она запускается с минимальными накладными расходами.

Недостатки файловой системы FAT

Не стоит использовать файловую систему FAT для дисков и разделов, чей размер больше 200 МБ. Это объясняется тем, что по мере увеличения размера тома производительность файловой системы FAT быстро падает. Для файлов, расположенных в разделах FAT, невозможно установить разрешения.
Разделы FAT имеют ограничение по размеру: 4 ГБ под Windows NT и 2 ГБ под MS-DOS.

Файловая система FAT32

FAT 32 представляет собой цепь данных, которые связывают между собой кластеры дискового пространства и файлы. В базе данных кластеров существует только один элемент. Из них, первые два элемента представляют собой информацию о системе FAT – 32, а третий и последующий элементы ставятся в соответствии с кластерами дискового пространства.
Самое большое число кластеров в данной файловой системе равно 268 435 445 кластеров. Данная система позволяет использовать жесткие диски размером до 32 Гб. Однако FAT может поддерживать дисковые пространства размером до 2 терабайт! Первоначально данная файловая система применялась в составе Windows 95 OSR 2. Именно в данной файловой системе были расширены атрибуты файлов, которые позволили хранить время и дату создания, и модификацию последнего доступа к файлу или каталогу.

Операционная система FAT – 32 также позволяет работать с любой из копий FAT 32.

Преимущества файловой системы FAT 32:

1. Высокая скорость работы;

2. Низкое требование к объему оперативной памяти;

3. Эффективная работа с файлами средних и малых размеров;

4. Более низкий износ дисков, вследствие меньшего количества передвижений головок чтения/записи.

Недостатки файловой системы FAT 32:

1. Низкая защита от сбоев системы;

2. Не эффективная работа с файлами больших размеров;

3. Ограничение по максимальному объему раздела и файла;

4. Снижение быстродействия при фрагментации;

5. Снижение быстродействия при работе с каталогами, содержащими большое количество файлов

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

Файловая система HPFS впервые была использована для операционной системы OS/2 1.2, чтобы обеспечить доступ к появлявшимся в то время на рынке дискам большого размера

В файловой системе HPFS поддерживается структура каталогов FAT и добавлена сортировка файлов по именам. Имя файла может содержать до 254 двухбайтовых символов. Кроме того, наименьший блок для хранения данных теперь равен размеру физического сектора (512 байт), что позволяет снизить потери дискового пространства.

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

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

HPFS делит диск на блоки по 8 МБ каждый и всегда пытается записать файл в пределах одного блока. Разбиение на блоки приводит к повышению производительности.
Кроме того, файловая система HPFS содержит два уникальных объекта данных:

· Суперблок

Суперблок располагается в логическом секторе 16 и содержит указатель на FNODE корневого каталога. В этом кроется главная опасность использования HPFS: если сектор суперблока помечен как поврежденный, это приводит к потере всех данных раздела даже на неповрежденных участках диска. Для восстановления данных их необходимо скопировать на другой диск с неповрежденным сектором 16 и воссоздать суперблок.

· Запасной блок

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


Преимущества файловой системы HPFS

HPFS – оптимальный вариант файловой системы для использования с дисками размером 200–400 МБ.

Глава 1. Файловые системы
1.1Современные файловые системы и их характеристики.
1.2Ядро MS DOS. Классификация функций BIOS и DOS.
1.3Структура драйверов устройств.
1.4Защита файлов
Глава 2. Файловая система HPFS
2.1 Файловая система семейства Windows.
2.2 Файловая система HPFS
Заключение Источники.литературы Ссылки

КАЗАХСКИЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ
ИМ. ТУРАРА РЫСКУЛОВА

ИНЖЕНЕРНО - ЭКОНОМИЧЕСКИЙ ФАКУЛЬТЕТ

КУРСОВАЯ РАБОТА ПО

ТЕМА: ФАЙЛОВАЯ СИСТЕМА HPFS

Выполнил: Тен Юрии., 209 гр.,
ИЭФ-05, ВТ и ПО

Проверил(а):
Досмуханбетовна Р. С.

Глава 1. Файловые системы

1.1Современные файловые системы и их характеристики.

1.2Ядро MS DOS. Классификация функций BIOS и DOS.

1.3Структура драйверов устройств.

1.4Защита файлов
Глава 2. Файловая система HPFS

2.1 Файловая система семейства Windows.

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

Заключение
Источники-
литературы
Ссылки

В современном и быстро развивающем мире высоких технологии, никак
нельзя даже представить бизнес-процесс или приложение, которые не зависели
бы от сервисов и устройств хранения файлов. За многие годы средства
управления файлами операционных систем превратились в одну из самых главных
элементов технологической инфраструктуры, без которого немыслимо дальнейшее
развитие распределенных информационных систем. Первое массовое устройство
хранения данных с прямым доступом DASD (direct access storage device) было
создано компанией IBM 50 лет назад — в 1956 году. Вначале программы
работали с такими устройствами напрямую через команды ассемблера или
машинные коды. В 1965 году в рамках развития проекта операционной системы
Multics был опубликован доклад Файловая система общего назначения для
внешней памяти, авторы которого исходили из того, что центральную роль в
мультипрограммной среде играет гибкая система управления внешней памятью,
поскольку пользователи должны иметь возможность сохранять для последующей
работы данные в машиночитаемой форме. Редко используемые данные должны
размещаться на менее быстродействующих устройствах, а более важные — на
скоростных накопителях. Доступ к данным должен отличаться простотой, но в
то же время быть контролируемым и обеспечивать целостность данных при сбоях
и авариях оборудования. В качестве объекта хранения рассматривался файл:
характеризующийся именем, наполнением (данными) и рядом атрибутов (размер,
время создания, правила доступа, владелец и т.д.).
Современнику подобные идеи могут показаться вполне очевидными, тем не менее
именно они определили основные направления развития и архитектуру файловых
систем сначала для мэйнфреймов, суперкомпьютеров, мини-машин и персональных
компьютеров, а затме для файл-серверов, специализированных устройств
хранения данных. И хотя способы конкретной реализации функций управления
хранением данных претерпели существенные изменения, файловая система и
поныне выступает в роли посредника между пользователем, операционной
системой и средой хранения — ее сервисы поддерживают отображение логических
томов, каталогов и файлов в физические блоки, сегменты и секторы устройств
и определяют, безопасно и надежно ли хранятся данные и насколько гибко ими
могут оперировать приложения.

По данным аналитической компании Taneja Group, в 2006 году 62%
опрошенных руководителей ИТ-подразделений крупных компаний считают
управление файлами одной из наиболее приоритетных задач, для реализации
которой рассматривается применение наиболее перспективных архитектур и
технологий, активно развивающихся в течение последних лет: управление
данными в территориально распределенных и глобальных сетях и
высокопроизводительных кластерах; виртуализация и консолидация сетей и
устройств хранения; управление метаданными и пространствами имен;
классификация данных и администрирование файлов на основе общекорпоративных
политик; многоуровневая организация среды хранения и др.

Глава 2. Файловые системы.
Постепенная замена перфорационных носителей (лент и карт)
накопителями произвольного доступа (на магнитных дисках) поставило
задачу организации данных на таких носителях, с тем, чтобы данные,
введённые оператором или сформированные одной программой могли
использоваться другой.
Эта задача была решена (и решается в подавляющем большинстве ОС сегодня)
путём реализации файловой структуры (способа однозначной адресации
определенной совокупности данных (файла) в ОС) и файловой системы
(физической организации дискового пространства, соответствующей файловой
структуре или её части).
1. Современные файловые системы и их характеристики.

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

Читайте также: