Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Особенности построения файловой системы HPFS




Прежде чем перейти к более известной файловой системе NTFS, рассмотрим ее идейную предшественницу HPFS. Файловая система HPFS, призванная устранить недостатки системы FAT16 для персонального компьютера, появилась в 1989 г. в операционной системе OS/2.

Эта файловая 32-битная система с самого начала поддерживала длинные имена (до 255 символов). Кроме этого, ее основными отличительными особенностями от FAT16 были:

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

- бинарное дерево поиска;

- битовые карты;

- использование сектора как единицы распределения памяти.

Структура каталогов HPFS с самого начала включала время и дату последнего изменения, а также время и дату последнего доступа (в Windows в варианте FAT32 это появилось позже на целых семь лет).

Еще одной характерной особенностью HPFS явилось автоматическое хранение "расширенных атрибутов", в качестве которых предполагалось хранить и индивидуальные пиктограммы для файлов и каталогов. Практически это – самая быстрая и эффективная файловая система за пределами Unix систем. Она обладает высокой производительностью (файлы большого размера копируются внутри ее в несколько раз быстрей чем в FAT и NTFS). Ее отличает высокая надежность, быстрое восстановление после аварийного отключения, чрезвычайно эффективное использование дискового пространства.

Внутренняя структура HPFS использует битовые карты и экстенты для хранения файла. (Напомним, что экстент – это фрагмент файла, расположенный в смежных секторах.) При создании файла (его первого и в лучшем случае единственного экстента) или выделении еще одного экстента HPFS предоставляет ему место по возможности "вразброс", с большим интервалом последовательных свободных секторов до и после этого экстента. Такая стратегия, как правило, обеспечивает возможность расширения текущих экстентов файла на их неизменном месте. Эксперименты и исследования показали, что если файловая система HPFS заполнена файлами не более чем на 80%, то в среднем менее 3% файлов занимают два и более экстентов, подавляющее большинство файлов размещаются всего в одном экстенте.

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

В частности, Fnode занимает отдельный сектор. При возможности Fnode размещается перед первым блоком хранения (все блоки хранения – также 512 байтов) своего файла. (Это дает возможность считывать и Fnode и начальные блоки файла одной операции чтения с магнитного диска.) Размещение файла описывается в Fnode парами 32-битных чисел: указателем на первый блок экстента и его длиной, выраженной числом секторов в нем. В одном Fnode можно поместить информацию только о 8 экстентах. Если требуется больше (что бывает чрезвычайно редко), то в Fnode помещается указатель на дополнительный блок размещения (allocation block), который содержит до 40 указателей на экстенты или другие блоки размещения.

Каждая запись в каталоге HPFS содержит:

- длину записи;

- байт флагов (атрибутов) со значениями Archive, Hidden, System, ReadOnly;

- указатель на Fnode для данного файла;

- время и дату создания;

- время и дату последнего обращения к файлу;

- время и дату последней модификации файла;

- длину расширенных атрибутов;

- счетчик обращений к файлу;

- длину имени файла;

- имя файла длиной до 255;

- указатель связывающий файлы в бинарное дерево каталога.

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

Служ. область | Группа1 |BM1|BM2| Группа2 | Группа3 |BM3|BM4| Группа4...

Часть этой структуры, состоящая из группы блоков (на схеме Группа k) и находящейся рядом с ней битовой карты BMk, названа полосой (band). Входящая в такую полосу битовая карта описывает занятость блоков данных в группе данных этой полосы. Размер полосы выбран разработчиками фиксированной величины (8 Мбайт).

Одна из полос, размещенная в середине логического диска названа полосой каталога (directory band) и хранит каталоги диска. В ней наряду с другими каталогами находится корневой. Логическая структура каталога – сбалансированное двоичное дерево с ключевыми записями имен файлов в алфавитном порядке.

Эта структура состоит из корневого блока (root block) и оконечных блоков (leaf blocks). Каждый из этих блоков содержит по 40 записей. Каждая запись корневого каталога указывает на один из оконечных блоков, а каждая запись в оконечном блоке – либо на Fnode, либо на оконечный блок следующего уровня.

Служебная область разделяется на три части: загрузочный блок (BootBlock), дополнительный блок (SuperBlock) и резервный блок (SpareBlock). В SuperBlock содержится указатель на список блоков битовых карт (bitmap block list), указатель на список дефектных блоков (bad block list), указатель на группу каталогов (directory band), указатель на файловый узел (Fnode) корневого каталога. В этом же дополнительном блоке содержится дата последней проверки диска.

Резервный блок служит для резервирования сбойных блоков и хранит карту замещения (hotfix map) их в виде пар слов (номер сбойного, номер запасного блока для замены). Кроме того, в резервном блоке есть флажок Dirty File System, который устанавливается после открытия любого файла на диске и сбрасывается при закрытии всех файлов и сбросе кэша всех отложенных буферов на диск. Практически этот флаг сбрасывается только после нормального завершения разгрузки системы (ShutDown). В процессе загрузки этот флажок проверяется на всех томах HPFS.

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

 




Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 433; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.