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

Автор работы: Пользователь скрыл имя, 20 Ноября 2013 в 15:00, реферат

Описание работы

Файловая система HPFS (HIGH Performance File System — высокопроизводительная файловая система) впервые появилась в операционных системах OS/2 1.2 и LAN Manager. Она была разработана совместными усилиями лучших специалистов компаний IBM и Microsoft на основе опыта IBM по созданию файловых систем MVS, VM/CMS и виртуального метода доступа. Архитектура HPFS начала создаваться как файловая система для многозадачного режима и была призвана обеспечить высокую производительность при работе с файлами на дисках большого размера.

Файлы: 1 файл

HPFS.docx

— 466.53 Кб (Скачать файл)

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

Теперь кратко рассмотрим вопрос надежности хранения данных в HPFS. Любая файловая система должна обладать средствами исправления ошибок, возникающих при записи информации на диск. Система HPFS для этого использует механизм аварийного замещения (HotFix).

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

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

HPFS относится к так называемым  монтируемым файловым системам. Это означает, что она не встроена в операционную систему, а добавляется к ней при необходимости. Файловая система HPFS монтируется оператором IFS (Installable File System — монтируемая файловая система) в файле CONFIG.SYS. Оператор IFS всегда помещается в первой строке этого конфигурационного файла. В приводимом далее примере оператор IFS устанавливает (монтирует) файловую систему HPFS с кэшем в 2 Мбайт, длиной записи кэша в 8 Кбайт и автоматической процедурой проверки дисков С: и D:.

IFS=E:\0S2\HPFS.IFS /CACHE:2048 /CRECL:4 /AUTOCHECK:CD

Для запуска программы  управления процессом кэширования  следует прописать в файле CONFIG.SYS еще одну строку:

RUN=E:\0S2\CACHE.EXE /Lazy:On /Bufferldlе:2000 /DiskIdle:4000 /MaxAge:8000 /DirtyMax:256 /ReadAhead:On

В этой строке включается режим  отложенной записи, устанавливаются параметры работы этого режима, а также включается режим упреждающего чтения данных, что в целом позволяет существенно сократить количество обращений к диску и ощутимо повысить быстродействие файловой системы. Так, ключ Lazy с параметром On включает отложенную запись, а с параметром Off — выключает. Ключ Bufferldle определяет время в миллисекундах, в течение которого буфер кэша должен оставаться в неактивном состоянии, чтобы стало возможным осуществить запись данных из кэша на диск. По умолчанию (то есть если не прописывать этот ключ явным образом) это время равно 500 мс. Ключ Diskldle задает время (в миллисекундах), по истечении которого диск должен оставаться в неактивном состоянии, чтобы стало возможным осуществить запись данных из кэша на диск. По умолчанию это время равно 1 с. Этот параметр позволяет избежать записи из кэша на диск во время выполнения других операций с диском.

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

Остальные подробности установки  параметров и возможные значения ключей имеются в файлах помощи операционной системы OS/2 Warp. Однако здесь следует сказать и еще об одной системе управления файлами — речь идет о реализации HPFS для работы на серверах, функционирующих под управлением OS/2. Эта система управления файлами получила название HPFS386.IFS. Ее принципиальные отличия от системы управления файлами HPFS.IFS, прежде всего, заключаются в том, что она позволяет посредством более полного использования технологии расширенных атрибутов организовать ограничения на доступ к файлам и каталогам с помощью соответствующих списков управления доступом (ACL). Эта технология, как известно, используется в файловой системе NTFS. Кроме того, в системе управления файлами HPFS386.IFS, в отличие от HPFS.IFS, нет ограничений на объем памяти, выделяемой для кэширования файловых записей. Иными словами, при наличии достаточного объема оперативной памяти объем файлового кэша может составлять несколько десятков мегабайтов, в то время как для обычной HPFS.IFS этот объем не может превышать двух мегабайтов, что по сегодняшним понятиям безусловно мало. Наконец, при установке режимов работы файлового кэша HPFS386.IFS есть возможность явным образом указать алгоритм упорядочивания запросов на запись. Наиболее эффективным алгоритмом можно считать так называемый «элеваторный», при котором операции записи данных из кэша на диск предварительно упорядочиваются таким образом, чтобы минимизировать время, отводимое на позиционирование головок чтения/записи. Головки чтения/записи при этом перемещаются от внешних цилиндров к внутренним и по ходу своего движения осуществляют запись и чтение данных в соответствии со специальным образом упорядочиваемых списков запросов на дисковые операции. Напомним, что такой алгоритм управления запросами на дисковые операции имеет название циклического сканирования (C-Scan).

Приведем пример записи строк  в конфигурационном файле CONFIG.SYS, в  которых устанавливается система HPFS386.IFS и определяются параметры работы ее подсистемы кэширования:

IFS=E:\IBM386FS\HPFS386.IFS /AUTOCHECK:EGH

RUN=E:\IBM386FS\CACHE386.EXE /Lazy:0n /Bufferldlе:4000 /MaxAge:20000

Эти записи следует понимать следующим образом. При запуске операционной системы в случае обнаружения флага, означающего, что не все файлы были закрыты в процессе предыдущей работы, система управления файлами HPFS386.IFS сначала запустит программу проверки целостности файловой системы для томов Е:, G: и Н:.

Для кэширования файлов при  работе этой системы управления файлами устанавливается режим отложенной записи со временем жизни буферов до 20 с. Остальные параметры и, в частности, алгоритм обслуживания запросов, устанавливаются в файле HPFS386.INI, который в данном случае располагается в каталоге E:\IBM386FS.

Опишем кратко некоторые  наиболее интересные параметры, управляющие работой кэша. Прежде всего, отметим, что файл HPFS386.INI разбит на несколько секций. В настоящий момент мы рассмотрим секцию [ULTIMEDIA]:

[ULTIMEDIA]

QUEUESORT={FIFO|ELEVATOR|DEFAULT|CURRENT}

QUEUEMETHOD={PRIORITY|NOPRIORITY j DEFAULT|CURRENT}

QUEUEDEPTH={1...255|DEFAULT|CURRENT}

Параметр QUEUESORT задает способ ведения очереди запросов к диску. Он может принимать значения FIFO, ELEVATOR, DEFAULT и CURRENT. Если задано значение FIFO, то каждый новый запрос просто добавляется  в конец очереди, то есть запросы выполняются в том порядке, в котором они поступают в систему. Однако можно упорядочить некоторое количество запросов по возрастанию номеров дорожек. Если задано значение ELEVATOR, то включается режим поддержки упорядоченной очереди запросов. При этом запросы начинают обрабатываться по алгоритму ELEVATOR (он же C-SCAN, или «режим циклического сканирования» [11, 26]). Напомним, что этот алгоритм подразумевает, что головка чтения/записи сканирует диск в выбранном направлении (например, в направлении возрастания номеров дорожек), останавливаясь для выполнения запросов, находящихся на пути следования.

Если для параметра QUEUESORT задано значение DEFAULT, то выбирается значение по умолчанию, которым является ELEVATOR. Если задано значение CURRENT, то остается в силе тот алгоритм, который был выбран при инициализации менеджером дисковых операций (DASD-manager).

Параметр QUEUEMETH0D определяет, должны ли учитываться приоритеты запросов при построении очереди. Он может  принимать значения PRIORITY, NOPRIORITY, DEFAULT и CURRENT. Если задано значение NOPRIORITY, то все запросы включаются в общую  очередь, а их приоритеты игнорируются. Если задано значение PRIORITY, то менеджер дисковых операций будет поддерживать несколько очередей запросов, по одной на каждый приоритет. Когда менеджер дисковых операций передает запросы на исполнение драйверу диска, он сначала выбирает запросы из самой приоритетной очереди, потом из менее приоритетной и т. д. Приоритеты назначает система управления файлами HPFS386.IFS, а распределены они следующим образом.

1. Останов операционной  системы с закрытием всех файлов или экстренная запись из-за сбоя питания. Это самый высокий приоритет.

2. Страничный обмен. 

3. Обычные запросы активного сеанса (foreground session), то есть задачи, с которой в данный момент работает пользователь, и окно которой является активным.

4. Обычные запросы фонового  сеанса (background session), то есть задачи, запущенной пользователем, с которой он в данный момент непосредственно не работает (говорят, что эта задача выполняется на фоне текущих активных вычислений). Приоритеты 3 и 4 равны, если в файле CONFIG.SYS имеется строка:

RI0RITY_DISK_I0=N0

5. Опережающее чтение и  низкоприоритетные запросы страничного обмена (предварительная выборка страниц).

6. Отложенная запись и  прочие запросы, не требующие  немедленной реакции. 

7. Предварительная выборка.  Это самый низкий приоритет. 

Если для параметра QUEUEMETHOD задано значение DEFAULT, то выбирается значение по умолчанию, которым является PRIORITY. Если задано значение CURRENT, то остается в силе тот метод, который был выбран менеджером дисковых операций при инициализации.

Параметр QUEUEDEPTH задает глубину  просмотра очереди при выборке  запросов. Он может принимать значения из диапазона (1...255), а также DEFAULT и CURRENT.

Если в качестве значения параметра QUEUEDEPTH задано число, то оно  определяет количество запросов, которые  должны находиться в очереди дискового  адаптера одновременно. Например, для SCSI-адаптеров имеет смысл поддерживать такую длину очереди, при которой  они смогут загрузить все запросы  в свои аппаратные структуры. Если очередь  запросов к адаптеру будет слишком короткой, то аппаратура будет работать с неполной загрузкой, а если она будет слишком длинной, драйвер SCSI-адаптера окажется перегруженным «лишними» запросами. Поэтому разумным значением для QUEUEDEPTH является число, немного превышающее длину аппаратной очереди команд адаптера. Если для параметра QUEUEDEPTH задано значение DEFAULT, то глубина просмотра очереди определяется автоматически на основании значения, которое рекомендовано драйвером дискового адаптера. Если задано значение CURRENT, то глубина просмотра очереди не изменяется. В текущей реализации значение CURRENT эквивалентно значению DEFAULT

Итак, текущие умолчания  для системы управления файлами HPFS386.IFS имеют вид:

QUEUESORT=FIFO

QUEUEMETHOD=DEFAULT

QUEUEDEPTH=2

А текущие умолчания для  менеджера дисковых операций таковы:

QUEUESORT=ELEVATOR

QUEUEMETHOD=PRIORITY

QUEUEDEPTH=<зависит от адаптера диска>

Значения, устанавливаемые  для менеджера дисковых операций по умолчанию, можно поменять с помощью  параметра /QF:

BASEDEV=0S2DASD.DMD /QF:{1|2|3>

Здесь: 1 соответствует выражению QUEUESORT=FIFO, 2 — выражению QUEUEME TH0D = NOPRIORITY, 3 - выражениям QUEUESORT = FIFO и QUEUEMETHOD = NOPRIORITY.

Наконец, скажем еще несколько  слов о монтируемых системах управления файлами (Installable File System, IFS), представляющих собой специальное системное программное обеспечение («драйверы») для доступа к разделам, отформатированным под другую файловую систему. Это очень удобный и мощный механизм добавления в ОС новых файловых систем и замены одной системы управления файлами на другую. Сегодня, например, для OS/2 уже реально существуют IFS-модули для файловой системы VFAT (FAT с поддержкой длинных имен), FAT32, Ext2FS (файловая система Linux), NTFS (правда, пока только для чтения). Для работы с данными на компакт-дисках имеется система CDFS.IFS. Есть и система управления файлами FTP.IFS, позволяющая монтировать ftp-архивы как локальные диски. Механизм монтируемых систем управления файлами был перенесен и в систему Windows NT.

Информация о работе Файловая система HPFS