Согласование скоростей обмена и кэширование данных. Виды буферизации. Количественная оценка различных методов буферизации

Задача согласования скорости возникает всегда. Достигается за счет буферизации данных в ОП и синхронизации доступа процессов к буферу.

В специализированных ОС, в которых очень важно обеспечение высокой скорости ввода-вывода, под буферизацию отводится большая часть ОП. Но часто её объема не хватаетÞв качестве буфера используется дисковый файл (спул-файл). Пример – организация вывода файла на принтер.

Другое решение – большая буферная память в контроллерах внешн устройств. Особенно круто, когда помещение данных на диск слишком замедляет обмен (или когда данные выводятся на сам диск).

Ещё +: сокращает кол-во реальных операций ввода-вывода за счет кэширования данных, а это существенно сокращает t доступа к хранимым данным.

Бывает одинарная, двойная (сменный буфер), циклическая б-я.

Время обработки блока данных (С – t для вычислений между запросами на ввод данных, М – t на перемещение данных из буфера в пользов. память, T – t для ввода одного блока)

Без буферизации: T + C

Одинарная буферизация: max {T, C} + M

в большинстве случаев T + C > max {T, C}

Двойная буферизация: max {T, C}

если C <= T, то блочно-ориентированное устройство может работать с максимальной скоростью;

если C > T, то процесс избавляется от необходимости ожидания завершения ввода-вывода.

Циклическая буферизация используется при высокой частоте ввода-вывода.

Задача

Система буферизации состоит из процесса ввода I, пользовательского процесса Р и процесса вывода О, соединенных с двумя буферами. Процессы обмениваются блоками данных одинакового размера, которые буферизуются на диске; граница между входными и выходными буферами динамическая, зависящая от скорости работы процессов. Используемые процессами примитивы гарантируют выполнение условия i + o <= max, где max – максимальное количество блоков на диске;

i – количество входных блоков на диске;

o – количество выходных блоков на диске.

I P O

О работе процессов известно следующее:

1. Пока система производит данные, процесс I записывает их на диск (если на нем есть свободное место).

2. Пока на диске имеются входные данные, процесс Р их считывает и для каждого считанного блока выводит некоторое количество данных (если на диске есть свободное место).

3. Пока на диске имеются выходные данные, процесс О считывает их.

Требуется показать, что в системе может возникнуть взаимоблокировка


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: