Смекни!
smekni.com

Организация файловых систем в OS (2 (WinWord) (стр. 2 из 2)

HPFS поддерживает те же самые атрибуты, что и файловая система FAT по историческим причинам, но он также поддерживает и новую форму fileassociated, то есть информацию, называемую Расширенными Атрибутами (EAs). Каждый EA концептуально подобен переменной окружения.

Значение имени

В OS/2 1.2 каждый каталог или файл может иметь максимум 64 КБ присоединенных EAs. Это ограничение снимается в более поздних версиях OS/2.

Метод хранения для EAs может изменяться. Если одиночный EA становится слишком большим, он может помещаться снаружи Fnode.

Ядро API функции DosQFileInfo и DosSetFileInfo расширено новыми информационными уровнями, которые позволяют прикладным программам управлять расширенными атрибутами файлов. Новые функции DosQPathInfo и DosSetPathInfo используются для чтения или записи EAs, связанных с произвольными именами пути.

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

Можно предположить, например, что в будущем версии API могут расширяться функциями EA, которые являются аналогичным DosFindFirst и DosFindNext и EA - данные могут быть организованы в B-Tree.

Инсталлируемые Файловые Системы

Поддержка для инсталлируемой файловой системы является очень ценной особенностью OS/2. Она дает возможность обращаться к многочисленным несовместимым томам структур FAT, HPFS, CD ROM, и UNIX. Система OS/2 упрощает жизнь и открывает путь быстрому развитию файловых систем и новшеств. Инсталлируемые файловые системы, однако, релевантны по отношению к HPFS, поскольку они используют HPFS факультативно. Файловая система FAT вложена в ядро OS/2 и будет оставаться там как файловая система совместимости в течение некоторого времени.

Драйвер инсталлируемой файловой системы (FSD) аналогичен драйверам устройств. FSD постоянно находится на диск как структурный файл, который является подобным библиотеке динамических компоновок (DLL). Обычно этот файл имеет системное расширение, и загружается во время инициализации системы из файла CONFIG. SYS.

Когда FSD установлен и инициализирован, ядро передает ему логические запросы на открытие, чтение, запись, поиск, закрытие, и так далее. FSD транслирует эти управляющие запросы в запросы на сектор чтения или записи.

Проблемы эффективности

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

В заключение, поддержка операционной системы OS/2 для многозадачного режима делает возможным для HPFS “ленивые записи” (иногда называемый отсроченными записями или запись позади) для улучшения эффективности.

Отказоустойчивость

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

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

CHKDSK освобождает карту hotfix. Он добавляет плохой сектор в список плохих блоков, выпускает сектор замены обратно в пул hotfix, удаляет hotfix вход из карты hotfix, и записывает модифицированный hotfix.

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

В течение загрузки OS/2, файловая система осматривает DirtyFS и, если флажок установлен, не будет позволять дальнейший доступ к тому до тех пор, пока CHKDSK не закончит работу. Если флажок DirtyFS установлен на томе начальной загрузки, система не будет загружена; пользователь должен загружать OS/2 в режиме с дискеты и выполнить CHKDSK для проверки и возможно ремонта тома начальной загрузки.

При потере SuperBlock или корневой директории, HPFS имеет возможность успешно восстановить их. Каждый тип, определяющий файл, включая объект Fnodes, секторы распределения, и каталоги блоков компонуются так, что и хозяин и дочерние записи и содержит уникальную сигнатуру с 32 битами. Fnodes также содержат начальную часть имени каталога или файлов. Следовательно, CHKDSK может восстановить весь том методом просмотр диска для Fnodes, секторов распределения, и блоки каталога, использовав их для восстановления файлов, каталогов и freespace - списков.

Прикладные Программы и HPFS

Новые функции API, DosCopy помогают прикладным программам создавать копии, по существу дублируя существующий файл вместе с EAs. EAs может также управляться явно с DosQFileInfo, DosSetFileInfo, DosQPathInfo, и DosSetPathInfo.

Другие изменения в API не будут воздействовать на среднюю прикладную программу. Функции DosQFileInfo, DosFindFirst, и DosFindNext.

DosQFsInfo используется для получения метки тома или дисковых характеристик точно как прежде, и использование DosSetFsInfo для меток тома не изменяется. Имеются a немногие полностью новые функции API типа DosFsCtl (аналогичный DosDev IOCtl но используемый для связи между прикладной программой и FSD), и DosQFsAttach (определяет, какой FSD имеет том); они предназначаются главным образом для использования дисковыми сервисными программами.


Дополнения

Структура системы файлов FAT

00Н

01Н

Идентификатор дисковода

01Н

09Н

Имя файла (8 символов)

09Н

0СН

Расширение (3 символа)

0СН

0ЕН

Номер текущего блока

0ЕН

10Н

Размер записи

10Н

14Н

Размер файла

14Н

16Н

Дата создания (обновления)

16Н

18Н

Время создания (обновления)

18Н

20Н

Зарезервировано

20Н

21Н

Номер текущей записи

21Н

25Н

Номер относительной записи

B Tree и B+Tree

Многие программисты не знакомы со структурой данных, известной как двоичное дерево. Двоичные деревья это методика для логического упорядочивания совокупности элементов данных.

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

Такие простые двоичные деревья, хотя просты в понимании и применении, имеют недостатки (неудобства), обнаруженные практикой. Если ключи распределяются не оптимально или добавляются к дереву в непроизвольном режиме, дерево может становиться совершенно асимметричным, что приводит к большим различиям между временами обхода дерева.

Поэтому большое количество программистов предпочитают в использовании сбалансированные деревья известные как B-Tree.

00Н

01Н

0FFH

01Н

06Н

Зарезервировано

06Н

07Н

Байт атрибута

07Н

08Н

Идентификатор дисковода

08Н

10Н

Имя файла (8 символов)

10Н

13Н

Расширение (3 символа)

13Н

15Н

Номер текущего блока

15Н

17Н

Размер записи

17Н

1ВН

Размер файла

1BН

1DН

Дата создания (обновления)

1DН

1FН

Время создания (обновления)

1FН

27H

Зарезервировано

27H

28H

Номер текущей записи

28H

2CH

Номер относительной записи

Резюме

Резюме.

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


Список использованной литературы:

1. Microsoft Systems Journal, Sept 1989. Получен из Computer Library Periodicals, Jan 1990, Doc #14753

2. OS/2 Warp, К. Данильченко, BHV Київ, 1995

3. Профессиональная работа в MS-DOS, Р.Данкан, Мир, 1993


[1] О двоичных деревьях B-Tree смотри в дополнении