Слайд 2
Определение HPFS.
HPFS— файловая система, разработанная специалистами Microsoft и
IBM на основе опыта IBM по созданию файловых систем
MVS, VM и виртуального метода доступа.
Впервые поддержка HPFS появилась в операционной системе OS/2 версии 1.2. С тех пор штатная поддержка HPFS присутствует во всех версиях OS/2. В Windows NT поддержка HPFS существовала до версии 3.51 включительно. Впоследствии Microsoft отказалась от HPFS в пользу собственной файловой системы NTFS, при разработке которой был учтён опыт создания HPFS.
В OS/2 существует серверный вариант драйвера для HPFS, называемый HPFS386, который обладает некоторыми дополнительными возможностями.
Слайд 3
Характеристика файловой системы HPFS.
Файловая система HPFS впервые была
использована для операционной системы OS/2 1.2, чтобы обеспечить доступ
к появлявшимся в то время на рынке дискам большого размера
В файловой системе HPFS поддерживается структура каталогов FAT и добавлена сортировка файлов по именам. Имя файла может содержать до 254 двухбайтовых символов. Кроме того, наименьший блок для хранения данных теперь равен размеру физического сектора (512 байт), что позволяет снизить потери дискового пространства.
Слайд 4
В каталоге файловой системы HPFS наряду с
атрибутами файла здесь хранятся сведения о создании и внесении
изменений, а также дата и время доступа. Записи в каталоге файловой системы HPFS указывают не на первый кластер файла, а на FNODE. FNODE может содержать данные файла, указатели на данные файла или другие структуры, указывающие на данные файла.
Слайд 5
HPFS старается по возможности располагать данные файла в
смежных секторах. Это приводит к повышению скорости последовательной обработки
файла.
HPFS делит диск на блоки по 8 МБ каждый и всегда пытается записать файл в пределах одного блока. Разбиение на блоки приводит к повышению производительности.
Кроме того, файловая система HPFS содержит два уникальных объекта данных:
· Суперблок
Слайд 6
Суперблок располагается в логическом секторе 16 и содержит
указатель на FNODE корневого каталога. В этом кроется главная
опасность использования HPFS: если сектор суперблока помечен как поврежденный, это приводит к потере всех данных раздела даже на неповрежденных участках диска. Для восстановления данных их необходимо скопировать на другой диск с неповрежденным сектором 16 и воссоздать суперблок.
Слайд 7
Запасной блок
Запасной блок располагается в логическом секторе 17
и содержит таблицу экстренных исправлений, а также блок резервного
каталога. В файловой системе HPFS запись таблицы экстренных исправлений используется при обнаружении дефектного сектора, чтобы логически указать вместо него имеющийся неповрежденный сектор. Эта технология обработки ошибок записи известна как экстренное исправление.
Слайд 8
Если используется технология экстренного исправления, то при обнаружении
поврежденного сектора данные переносятся в другой сектор, а исходный
помечается как дефектный. Эти действия выполняются открыто для любого приложения, которое выполняет дисковые операции ввода/вывода (то есть на работе приложения проблемы с жестким диском не сказываются). Сообщения об ошибке, которые появляются при обнаружении поврежденного сектора (например, «FAT "Abort, Retry, or Fail?"»), в файловой системе, поддерживающей экстренные исправления, отсутствуют.
Слайд 11
Диск в HPFS делится на сектора фиксированного размера
(512 байт в текущей реализации).
Для определения того, свободен
сектор или занят, HPFS использует битовые карты, в которых каждый бит соответствует одному сектору. Если бит содержит 1, это означает, что сектор занят, иначе он свободен.
Слайд 12
В начале диска расположены несколько управляющих блоков:
1. Загрузочный
сектор DOS-овского вида.
2. SuperBlock содержит информацию о геометрии диска, указатели на битовые
карты свободного пространства, указатель на корневой каталог, размер дисковой полосы, номер полосы с каталогами, указатель на список сбойных блоков и т.п.
Слайд 13
3. SpareBlock содержит указатели на пул HOTFIX-areas, пул Fault-Tolerance областей (только
HPFS386 использует Fault-Tolerance), пул блоков для операций на почти
переполненном диске и другие указатели, флаги и дескрипторы.
4. Область начальной загрузки.
5. Область секторов используемых для выполнения операций требующих дополнительную дисковую память.
6. Другие области.
Слайд 14
Расстояние между двумя битмапами равно 16MB.
Размер битмапа равен
2K (8MB/512/8 = 2K).
Полоса, находящаяся в центре диска, используется
для хранения каталогов. Эта полоса называется Directory Band. Однако, если она будет полностью заполнена, HPFS начнёт располагать каталоги файлов в других полосах.
Слайд 15
Имена файлов и каталогов при полной подстановке (от
корня) не должны превышать 260 символов, при этом каждая
компонента пути не должна быть длиннее 255 символов.
Слайд 16
Экстент — это часть файла, лежащая в последовательных секторах.
Каждый экстент описывается двумя числами: номером первого сектора и
длиной (в секторах). Два последовательных экстента всегда объединяются HPFS в один.
Слайд 18
Файлы и каталоги в HPFS базируются на фундаментальном
объекте называемом F-Node. Каждая FNode занимает один сектор и
всегда располагается HPFS-ом поблизости от своего файла или каталога.
Слайд 19
FNode содержит длину и первые 15 символов
имени файла, статистику по доступу к файлу, внутри-HPFS-сную информацию,
расширенные атрибуты и ACL, ассоциативную информацию о расположении и подчинении файла и т.д.
Слайд 20
Внутри имени файла точка такой же символ как
и остальные. Русские буквы работают нормально. При создании файла
HPFS запоминает написание его имени, хотя и не различает регистров в дальнейших операциях, кроме тех, что возвращают информацию о файле.
Слайд 21
Принципы работы файловой системы HPFS
Слайд 22
Принципы размещения файлов и каталогов на диске в
HPFS:
· информация о местоположении файлов рассредоточена по
всему диску, при этом записи каждого конкретного файла размещаются (по возможности) в смежных секторах и поблизости от данных об их местоположении;
· каталоги размещаются в середине дискового пространства;
· каталоги хранятся в виде бинарного сбалансированного дерева с записями, расположенными в алфавитном порядке.
Слайд 23
файловая система - это набор спецификаций и соответствующее
им программное обеспечение, которые отвечают за создание, уничтожение, организацию,
чтение, запись, модификацию и перемещение файловой информации, а также за управление доступом к файлам и за управлением ресурсами, которые используются файлами.
Слайд 24
Каждый F-Node занимает один сектор и всегда располагается
поблизости от своего файла или каталога (обычно — непосредственно
перед файлом или каталогом). Объект F-Node содержит
· длину,
· первые 15 символов имени файла,
· специальную служебную информацию,
· статистику по доступу к файлу,
· расширенные атрибуты файла,
· список прав доступа (или только часть этого списка, если он очень большой); если расширенные атрибуты слишком велики для файлового узла, то в него записывается указатель на них.
· ассоциативную информацию о расположении и подчинении файла и т. д.
Слайд 25
Если файл непрерывен, то его размещение на диске
описывается двумя 32-битными числами. Первое число представляет собой указатель
на первый блок файла, а второе — длину экстента (число следующих друг за другом блоков, принадлежащих файлу).
Если файл фрагментирован, то размещение его экстентов описывается в файловом узле дополнительными парами 32-битных чисел.
Слайд 27
· Главное отличие - базовые принципы размещения файлов
на диске и принципы хранения информации о местоположении файлов.
Благодаря этим принципам HPFS имеет высокую производительность и отказоустойчивость.
Слайд 28
· Дисковое пространство в HPFS выделяется не кластерами
(как в FAT), а блоками. В современной реализации размер
блока взят равным одному сектору, но в принципе он мог бы быть и иного размера. Размещение файлов в таких небольших блоках позволяет более эффективно использовать пространство диска, так как непроизводительные потери свободного места составляют в среднем всего 256 байт на каждый файл.
Слайд 29
· Система HPFS стремится расположить файл в смежных
блоках, или, если такой возможности нет, разместить его на
диске таким образом, чтобы фрагменты файла физически были как можно ближе друг к другу. Такой подход существенно уменьшает время позиционирования головок записи/чтения жесткого диска и время ожидания.