Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Буферизация операций ввода-вывода



Необходимость буферизации диктуется следующими проблемами:

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

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

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

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

 
 


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

 
 






Дата публикования: 2014-11-29; Прочитано: 1330 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...