Согласование скоростей обмена и кэширование данных

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

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

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