Проблемы эффективности, отказоустойчивость в os/2


Здесь рассмотрим лишь часть методик повышения эффективности. Например, когда файл открывается, файловая система прочитает и кэш 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 - списков.