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


 

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

В подсистеме ввода-вывода для согласования скоростей обмена широко используется следующие приемы.

· буферизация данных в оперативной памяти. В тех специализиро­ванных операционных системах, в которых обеспечение высокой скорости вво­да-вывода является первоочередной задачей (управление в реальном времени, услуги сетевой файловой службы и т. п.), большая часть оперативной памяти от­водится не под коды прикладных программ, а под буферизацию данных.

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

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

· Кэширование данных. Буферизация данных позволяет не только согласовать скорости работы процес­сора и внешнего устройства, но и решить другую задачу – сократить количество реальных операций ввода-вывода за счет кэширования данных. Дисковый кэш является непременным атрибутом подсистем ввода-вывода практически всех опе­рационных систем, значительно сокращая время доступа к хранимым данным.

 



Дата добавления: 2016-06-05; просмотров: 2232;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

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

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.