The design of the UNIX Operating System 87 страница



 

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

 

К сожалению, приходится констатировать, что не существует никаких средств, гарантирующих абсо-

 

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

 

Управление "плохими" блоками

 

Наличие дефектных блоков на диске - обычное дело. Внутри блока наряду с данными хранится кон-трольная сумма данных . Под "плохими" блоками обычно понимают блоки диска, для которых вычислен - ная контрольная сумма считываемых данных не совпадает с хранимой контрольной суммой . Дефектные блоки обычно появляются в процессе эксплуатации. Иногда они уже имеются при поставке вместе со списком, так как очень затруднительно для поставщиков сделать диск полностью свободным от дефек-тов. Рассмотрим два решения проблемы дефектных блоков - одно на уровне аппаратуры, другое на уров-не ядра ОС.

 

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

 

Решение на уровне ОС может быть следующим. Прежде всего , необходимо тщательно сконструировать файл, содержащий дефектные блоки. Тогда они изымаются из списка свободных блоков. Затем нужно каким-то образом скрыть этот файл от прикладных программ.


 

Производительность файловой системы


Основы операционных систем 124

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

 

Кэширование

 

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

 

Аккуратная реализация кэширования требует решения нескольких проблем.


Дата добавления: 2021-01-21; просмотров: 109; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!