Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие_Unix.doc
Скачиваний:
4
Добавлен:
26.11.2019
Размер:
2.41 Mб
Скачать

5.5 Буферизация

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

Рассмотрим последовательность действий при исполнении заказа на чтение N-ого блока из устройства с номером M.

  1. В буферном пуле ищется заданный блок. Если он обнаружен, фиксируем номер этого буфера. В этом случае, обращение к реальному физическому устройству не происходит, а операция чтение идет из найденного буфера. Переходим на шаг 4.

  2. Если буфер не найден, то в буферном пуле ищется свободный буфер. Если такой есть (реально, эта ситуация возможна только при старте системы), фиксируем его номер и переходим к шагу 3. Если нет, то выбирается буфер, к которому не было обращений самое долгое время. Фиксируем его номер и переходим к пункту 3.

  3. Осуществляется чтение N-ого блока устройства М в найденный буфер.

  4. Происходит обнуление счетчика времени в данном буфере и увеличение на единицу счетчиков в других буферах.

  5. Передаем в качестве результата чтения содержимое данного буфера.

Преимущества:

- минимизируются реальные обращения к физическому устройству.

- согласуются скорости генерации данных и их чтения

Недостатки

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

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

Для устранения таких недостатков,

- в системе предусмотрен параметр, который определяет периоды времени, через которые осуществляется сброс системных данных.

- есть пользовательская команда SYNC. По этой команде осуществляется сброс данных на диск.

- система обладает некоторой избыточностью, позволяющей в случае потери информации, восстановить некоторые блоки

Буферизация может быть

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

  • в качестве буфера используется дисковый файл, называемый также спул-файлом (Типичный пример применения спулинга дает организация вывода данных на принтер)

  • в буферной памяти в контроллерах внешних устройств (когда помещение данных на диск слишком замедляет обмен. Например, в контроллерах графических дисплеев применяется буферная память, соизмеримая по объему с оперативной, и это существенно ускоряет вывод графики на экран).