Компьютерные системы и сети
Download 1.98 Mb. Pdf ko'rish
|
2235-Текст статьи-5685-1-10-20200702
Архитектура ввода-вывода
На рис. 2.2 изображена временная диаграмма прерываний процессора, выполнящего ввод-вывод. Рис. 2.2. Временная диаграмма прерываний процессора при вводе- выводе. На диаграмме видны моменты смены состояний процессора и устройства ввода-вывода: прерывание по запросу на ввод-вывод, обработка этого прерывания и пересылка информации из памяти в буфер устройства, вызов 26 драйвера и контроллера, окончание обмена и прерывание контроллера, продолжение вычислений. Имеются две разновидности режима ввода-вывода – синхронный и асинхронный. Синхронный ввод-вывод – это ввод-вывод, выполнение которого приводит к переходу программы в состояние ожидания, до тех пор, пока операция ввода-вывода не будет полностью завершена. На аппаратном уровне – команда ввода-вывода переводит процессор в состояшие ожидания (idle) до следующего прерывания. При данном режиме в каждый момент выполняется не более одного запроса на ввод-вывод; одновременный ввод-вывод отсутствует. Синхронный вывод выполняют всем программистам привычные операторы вида println(x). При их использовании в программах мы не задумывается над тем, что используем достаточно неэффективный вариант синхронного ввода-вывода. Однако до сих пор мышление большинства программистов – последовательное, в том смысле, что о своей программе они мыслят как о чисто последовательно выполняемой, и вообще не думают о возможности какого-либо распараллеливания. При отладке программы, либо если размер выводимой информации невелик, это обычно вполне допустимо. Асинхронный ввод-вывод – ввод-вывод, выполняемый параллельно с выполнением основной программы. После того. как начинается асинхронный ввод-вывод, управление возвращается пользовательской программе, без ожидания завершения ввода-вывода (последнее может быть выполнено специальной явной операцией). Таким образом, операция асинхронного обмена как бы разбивается на две: начать ввод-вывод и закончить ввод-вывод. Последняя выполняется для того, чтобы в этом месте программа все же ожидала завершения обмена, когда его результат необходим для дальнейших вычислений. Такой подход к реализации обмена более труден для понимания программистами и может привести к ошибкам (например, использована только операция начала ввода-вывода, а вызов операции его окончания забыт). Download 1.98 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling