Компьютерные системы и сети


Download 1.98 Mb.
Pdf ko'rish
bet10/62
Sana13.12.2022
Hajmi1.98 Mb.
#999614
1   ...   6   7   8   9   10   11   12   13   ...   62
Bog'liq
2235-Текст статьи-5685-1-10-20200702

Архитектура ввода-вывода 
 
На рис. 2.2 изображена временная диаграмма прерываний процессора
выполнящего ввод-вывод. 
Рис. 2.2. Временная диаграмма прерываний процессора при вводе-
выводе.
На диаграмме видны моменты смены состояний процессора и устройства 
ввода-вывода: прерывание по запросу на ввод-вывод, обработка этого 
прерывания и пересылка информации из памяти в буфер устройства, вызов 


26 
 
драйвера и контроллера, окончание обмена и прерывание контроллера, 
продолжение вычислений. 
Имеются две разновидности режима ввода-вывода – синхронный и 
асинхронный.
Синхронный ввод-вывод – это ввод-вывод, выполнение которого 
приводит к переходу программы в состояние ожидания, до тех пор, пока 
операция ввода-вывода не будет полностью завершена. На аппаратном уровне – 
команда ввода-вывода переводит процессор в состояшие ожидания (idle) до 
следующего прерывания. При данном режиме в каждый момент выполняется 
не более одного запроса на ввод-вывод; одновременный ввод-вывод 
отсутствует. Синхронный вывод выполняют всем программистам привычные 
операторы вида println(x). При их использовании в программах мы не 
задумывается над тем, что используем достаточно неэффективный вариант 
синхронного ввода-вывода. Однако до сих пор мышление большинства 
программистов – последовательное, в том смысле, что о своей программе они 
мыслят как о чисто последовательно выполняемой, и вообще не думают о 
возможности какого-либо распараллеливания. При отладке программы, либо 
если размер выводимой информации невелик, это обычно вполне допустимо. 
Асинхронный ввод-вывод – ввод-вывод, выполняемый параллельно с 
выполнением основной программы. После того. как начинается асинхронный 
ввод-вывод, управление возвращается пользовательской программе, без 
ожидания завершения ввода-вывода (последнее может быть выполнено 
специальной явной операцией). Таким образом, операция асинхронного обмена 
как бы разбивается на две: начать ввод-вывод и закончить ввод-вывод. 
Последняя выполняется для того, чтобы в этом месте программа все же 
ожидала завершения обмена, когда его результат необходим для дальнейших 
вычислений. Такой подход к реализации обмена более труден для понимания 
программистами и может привести к ошибкам (например, использована только 
операция начала ввода-вывода, а вызов операции его окончания забыт).

Download 1.98 Mb.

Do'stlaringiz bilan baham:
1   ...   6   7   8   9   10   11   12   13   ...   62




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling