Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 6004.doc
Скачиваний:
21
Добавлен:
30.04.2022
Размер:
1.29 Mб
Скачать

4.3.5.4Расширенные атрибуты

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

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

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

API функции ядра DosQFileInfo и DosSetFileInfo позволяют прикладным программам управлять расширенными атрибутами файлов.

Функции DosQPatНInfo и DosSetPatНInfo используются, чтобы читать или записать EA связанные с произвольными путями. Прикладная программа может или запрашивать значение специфического EA или может получать все EA для файла или каталога сразу.

Мы должны обратить внимание на то, что кроме EA, LAN Manager версия НPFS поддерживает другой класс связанной с файлом информации, называемой контрольный список доступа (ACL). ACL имеют тот же самый вид как EA и управляются подобным способом, но они предназначены для хранения прав доступа, паролей, и другой информации, представляющей интерес для работы с сетями.

4.3.5.5Инсталлируемые файловые системы

Поддержка для инсталлируемой файловой системы была одной из наиболее долгожданных особенностей OS/2 1.2. Она сделала возможным обращение к несовместимым по структуре томам - FAT, HPFS, CD ROM на той же самой системе OS/2 в то же самое время.

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

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

Для повышения производительности НPFS использует расширенные структуры данных, непрерывное распределение, интеллектуальное кеширование, отложенную запись.

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

Следующая основная цель HPFS's - оптимизация распределения файлов в совокупности с управляющими структурами.

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

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

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

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

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

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

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

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

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

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