<< Вернуться у выбору материала

Лекции № 6 - 7
Системы управления файлами. Файловая система HPFS

Введите ваш запрос для начала поиска.

Патентные исследования реферат. Виды патентных исследований.

Вопросы:

  1. Файловая система HPFS
  2. Система управления файлами HPFS.IFS
  3. Система управления файлами HPFS386.1FS
  4. Файловая система JFS

HPFS (High Performance File System) — высокопроизводительная файловая система.

HPFS впервые появилась в OS/2 1.2 и LAN Manager. (Кстати, HPFS была первой файловой системой, поддерживающей длинные имена.)

Перечислим основные особенности HPFS.

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

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

Cтруктура раздела HPFS

структура тома HPFS

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

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

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

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

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

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

Сравним с FAT. Там на весь диск только одна “битовая карта” (таблица FAT). И для работы с ней приходится перемещать головки чтения/записи в среднем через половину диска.

Именно для того, чтобы сократить время позиционирования головок чтения/записи жесткого диска в HPFS диск разбит на полосы.

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

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

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

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

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

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

Содержит

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

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

Содержит

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

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

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

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

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

1) расположить файл в смежных блоках;

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

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

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

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

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

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

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

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

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

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

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

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

Если файл непрерывен, то его размещение на диске описывается двумя 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).

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

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

Первый номер указывает на дефектный сектор, а второй — на тот сектор среди имеющихся запасных секторов, который был выбран для его замены.

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

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

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

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

Система управления файлами HPFS.IFS

HPFS относится к так называемым монтируемым файловым системам -IFS (installable file system - устанавливаемая, монтируемая система управления файлами). Это означает, что она не встроена в операционную систему, а добавляется к ней при необходимости.

Устанавливаемые файловые системы представляют собой специальные “драйверы” для доступа к разделам, отформатированным под другую файловую систему. Это очень удобный и мощный механизм добавления в ОС новых файловых систем и замены одной системы управления файлами на другую.

Сегодня, например, для OS/2 уже реально существуют IFS-модули для файловой системы VFAT, FAT32, Ext2FS (файловая система Linux), NTFS (правда, пока только для чтения). Для работы с данными на CD-ROM имеется CDFS.IFS. Есть и FTP.IFS, позволяющая монтировать ftp-архивы как локальные диски.

Файловая система HPFS устанавливается оператором IFS в файле CONFIG.SYS.

Этот оператор всегда помещается в первой строке данного конфигурационного файла. Пример.

IFS-E:\OS2\HPFS.IFS /САСНЕ:2048 /CRECL :4 /AUTOCHECK : CD

Здесь оператор IFS устанавливает файловую систему HPFS с кэшем в 2 Мбайт, длиной записи кэша в 8 Кбайт и автоматической процедурой проверки дисков С и D:

Замечание. Подробности установки параметров и возможные значения ключей имеются в HELP-файлах, устанавливаемых вместе с операционной системой OS/2 Warp (или см. в книге Гордеева, Молчанова “Системное программное обеспечение” на стр. 175.

Cистема управления файлами HPFS386.1FS

Это реализации HPFS для работы на серверах, функционирующих под управлением OS/2.

Ее принципиальное отличие от системы HPFS.IFS

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

Пример записи строк в конфигурационном файле CONFIG.SYS, которые устанавливают систему HPFS386.1FS и определяют параметры работы ее подсистемы кэширования можно посмотреть в книге Гордеева, Молчанова “Системное программное обеспечение” на стр. 176-178

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

Для серверной операционной системы OS/2 Warp 4.5 была создана новая журнализирующая файловая система JFS (Journaling file system).

Новая серверная ОС компании IBM под названием OS/2 WarpServer for e-Business вышла в 1999 г.

JFS имеет большую безопасность в структурах данных благодаря технике, разработанной для СУБД.

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

В этой системе увеличена скорость восстановления файловой системы после сбоя.

Но, сохраняя целостность файловой системы, система управления файлами не гарантирует восстановление данных пользователя.

Файловая система JFS обеспечивает самую высокую скорость работы с файлами из всех известных систем, созданных для ПК (это очень важно для серверной ОС).

Но, сохраняя целостность файловой системы, система управления файлами не гарантирует восстановление данных пользователя.

Файловая система JFS обеспечивает самую высокую скорость работы с файлами из всех известных систем, созданных для ПК (это очень важно для серверной ОС).

Рейтинг@Mail.ru