Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 49
Текст из файла (страница 49)
Затем удаляет запись из карты аварийного замещения и записывает отредактированную карту на диск.g c e основные файловые объекты в HPFS, в том числе файловые узлы, блоки размещения и блоки каталогов, имеют уникальные 32-разрядные идентификаторы« указатели на свои родительские и дочерние блоки. Файловые узлы, кроме того,содержат сокращенное имя своего файла или каталога.
Избыточность и взаимосвязь файловых структур HPFS позволяют программе CHKDSK полностью восстанавливать файловую структуру диска, последовательно анализируя все файловыеузлы, блоки размещения и блоки каталогов. Руководствуясь собранной информацией, CHKDSK реконструирует файлы и каталоги, а затем заново создает битовые карты свободных секторов диска. Запуск программы CHKDSK следует осуществлять с соответствующими ключами. Так, например, один из вариантов работыэтой программы позволяет найти и восстановить удаленные файлы.HPFS относится к так называемым монтируемым файловым системам.
Это означает, что она не встроена в операционную систему, а добавляется к ней при необходимости. Файловая система HPFS монтируется оператором IFS (Installable FileSystem — монтируемая файловая система) в файле CONFIG.SYS. Оператор IFS всегдапомещается в первой строке этого конфигурационного файла. В приводимом далее примере оператор IFS устанавливает (монтирует) файловую систему HPFS скэшем в 2 Мбайт, длиной записи кэша в 8 Кбайт и автоматической процедуройпроверки дисков С: и D:.IFS=E:\0S2\HPFS.IFS /CACHE:2048 /CRECL:4 /AUTOCHECKrCDДля запуска программы управления процессом кэширования следует прописатьв файле CONFIG.SYS еще одну строку:RUN=E:\0S2\CACHE.EXE /Lazy:On /Bufferldle:2000 /Dlskldle:4000 /MaxAge:8000 /DirtyMax:256/ReadAhead:OnВ этой строке включается режим отложенной записи, устанавливаются параметры работы этого режима, а также включается режим упреждающего чтения данных, что в целом позволяет существенно сократить количество обращений к дискуи ощутимо повысить быстродействие файловой системы.
Так, ключ Lazy с параметром On включает отложенную запись, а с параметром Off — выключает. КлючBufferldle определяет время в миллисекундах, в течение которого буфер кэша должен оставаться в неактивном состоянии, чтобы стало возможным осуществить запись данных из кэша на диск. По умолчанию (то есть если не прописывать этотключ явным образом) это время равно 500 мс. Ключ Diskldle задает время (в миллисекундах), по истечении которого диск должен оставаться в неактивном состоянии, чтобы стало возможным осуществить запись данных из кэша на диск. По умоланию это время равно 1 с.
Этот параметр позволяет избежать записи из кэша на1 с к вовремя выполнения других операций с диском.1юч МахАде задает время (тоже в миллисекундах), по истечении которого часто° Раняемые в кэше данные помечаются как «устаревшие» и при переполнении' Ша Могут быть замещены новыми. По умолчанию это время равно 5 с.с х186Глава 6.
Файловые системыОстальные подробности установки параметров и возможные значения ключей имеются в файлах помощи операционной системы 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:EGHRUN=E:\IBM386FS\CACHE386.EXE /Lazy:0n / B u f f e r l d l e : 4 0 0 0 /MaxAge:20000Эти записи следует понимать следующим образом. При запуске операционной системы в случае обнаружения флага, означающего, что не все файлы были закрыты впроцессе предыдущей работы, система управления файлами HPFS386.IFS сначалазапустит программу проверки целостности файловой системы для томов Е:, G: и Н:.Для кэширования файлов при работе этой системы управления файлами устанавливается режим отложенной записи со временем жизни буферов до 20 с.
Остальныепараметры и, в частности, алгоритм обслуживания запросов, устанавливаются вфайле HPFS386.INI, который в данном случае располагается в каталоге E:\IBM386FS.Опишем кратко некоторые наиболее интересные параметры, управляющие раоотой кэша. Прежде всего, отметим, что файл HPFS386.INI разбит на несколько секций. В настоящий момент мы рассмотрим секцию [ULTIMEDIA]:[ULTIMEDIA]QUEUES0RT»{FIF01ELEVATOR|DEFAULT | CURRENT}QUEUEMETH0D={PRIORITY|N0PRI0RITY|DEFAULT!CURRENT}QUEUEDEPTH={1...
2551 DEFAULT|CURRENT}[файловая система HPFS187Параметр QUEUESORT задает способ ведения очереди запросов к диску. Он можетпринимать значения FIFO, ELEVATOR, DEFAULT и CURRENT. Если задано значение FIFO,т о каждый новый запрос просто добавляется в конец очереди, то есть запросы выполняются в том порядке, в котором они поступают в систему. Однако можно упорядочить некоторое количество запросов по возрастанию номеров дорожек.
Еслизадано значение ELEVATOR, то включается режим поддержки упорядоченной очереди запросов. При этом запросы начинают обрабатываться по алгоритму ELEVATOR(он же C-SCAN, или «режим циклического сканирования» [11, 26]). Напомним,что этот алгоритм подразумевает, что головка чтения/записи сканирует диск ввыбранном направлении (например, в направлении возрастания номеров дорожек),останавливаясь для выполнения запросов, находящихся на пути следования.Если для параметра QUEUESORT задано значение DEFAULT, то выбирается значениепо умолчанию, которым является ELEVATOR. Если задано значение CURRENT, то остается в силе тот алгоритм, который был выбран при инициализации менеджеромдисковых операций (DASD-manager).Параметр QUEUEMETHOD определяет, должны ли учитываться приоритеты запросовпри построении очереди. Он может принимать значения PRIORITY, NOPRIORITY, DEFAULTи CURRENT. Если задано значение NOPRIORITY, то все запросы включаются в общуюочередь, а их приоритеты игнорируются.
Если задано значение PRIORITY, то менеджер дисковых операций будет поддерживать несколько очередей запросов, по одной на каждый приоритет. Когда менеджер дисковых операций передает запросы наисполнение драйверу диска, он сначала выбирает запросы из самой приоритетнойочереди, потом из менее приоритетной и т. д. Приоритеты назначает система управления файлами HPFS386.IFS, а распределены они следующим образом.1.
Останов операционной системы с закрытием всех файлов или экстренная запись из-за сбоя питания. Это самый высокий приоритет.2. Страничный обмен.3. Обычные запросы активного сеанса (foreground session), то есть задачи, с которой в данный момент работает пользователь и окно которой является активным.4. Обычные запросы фонового сеанса (background session), то есть задачи, запущенной пользователем, с которой он в данный момент непосредственно не работает (говорят, что эта задача выполняется на фоне текущих активных вычислений).
Приоритеты 3 и 4 равны, если в файле CONFIG.SYS имеется строка:RI0RITY_DISK_IO=NOР< Опережающее чтение и низкоприоритетные запросы страничного обмена (предварительная выборка страниц)."• Отложенная запись и прочие запросы, не требующие немедленной реакции.• Предварительная выборка. Это самый низкий приоритет.сли для параметра QUEUEMETHOD задано значение DEFAULT, то выбирается значеЧе по умолчанию, которым является PRIORITY. Если задано значение CURRENT, тоСтается в силе тот метод, который был выбран менеджером дисковых операцийпРи инициализации.188Глава 6. Файловые системаПараметр QUEUEDEPTH задает глубину просмотра очереди при выборке запросовОн может принимать значения из диапазона (1...255), а также DEFAULT и CURRENTЕсли в качестве значения параметра QUEUEDEPTH задано число, то оно определяетколичество запросов, которые должны находиться в очереди дискового адаптераодновременно.
Например, для SCSI-адаптеров имеет смысл поддерживать такуюдлину очереди, при которой они смогут загрузить все запросы в свои аппаратныеструктуры. Если очередь запросов к адаптеру будет слишком короткой, то аппаратура будет работать с неполной загрузкой, а если она будет слишком длинной, драйвер SCSI-адаптера окажется перегруженным «лишними» запросами.
Поэтому разумным значением для QUEUEDEPTH является число, немного превышающее длинуаппаратной очереди команд адаптера. Если для параметра QUEUEDEPTH задано значение DEFAULT, то глубина просмотра очереди определяется автоматически на основании значения, которое рекомендовано драйвером дискового адаптера. Еслизадано значение CURRENT, то глубина просмотра очереди не изменяется. В текущейреализации значение CURRENT эквивалентно значению DEFAULT.Итак, текущие умолчания для системы управления файлами HPFS386.IFS имеют вид:QUEUES0RT=FIF0QUEUEMETHOD=DEFAULTQUEUEDEPTH=2А текущие умолчания для менеджера дисковых операций таковы:QUEUESORT=ELEVATORQUEUEMETHOD=PRIORITY0иЕЮЕРТН=<зависит от адаптера диска>Значения, устанавливаемые для менеджера дисковых операций по умолчанию,можно поменять с помощью параметра/QF:BASEDEV=0S2DASD.DMD/QF:{1|2|3}Здесь: 1 соответствует выражению QUEUES0RT=FIF0, 2 — выражению QUEUEMETH0D=N0PRI0RITY, 3 - выражениям QUEUESORT=FIFO и QUEUEMETHOD=NOPRIORITY.Наконец, скажем еще несколько слов о монтируемых системах управления файлами (Installable File System, IFS), представляющих собой специальное системное программное обеспечение («драйверы») для доступа к разделам, отформатированнымпод другую файловую систему.