пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Режимы управления вводом-выводом.

В современных операционных системах применяются два режима ввода-вывода: режим обмена с опросом готовности устройства ввода-вывода (рис. 2.1) и режим обмена с прерываниями.

Режим обмена с опросом готовности устройства ввода-вывода

Итак, пусть центральный процессор посылает устройству управления команду, требующую, чтобы определенное внешнее устройство выполнило некоторое действие. Например, если речь идет об управлении дисководом, то это может быть команда на включение двигателя или команда, связанная с позиционированием магнитных головок. Устройство управления внешним устройством (УУВУ) исполняет команду, преобразуя сигналы, понятные ему и центральному процессору, в сигналы, понятные внешнему устройству. После выполнения команды внешнее устройство выдает сигнал готовности, который сообщает процессору о том, что можно передавать очередную команду для продолжения обмена данными. Из-за того что быстродействие внешнего устройства на несколько порядков ниже быстродействия центрального процессора, последнему приходится  долго ожидать сигнала готовности, постоянно опрашивая соответствующую линию интерфейса на наличие или отсутствие этого сигнала. Длительное ожидание связано с тем, что нет смысла отправлять внешнему устройству очередную команду, не дождавшись ответа об исполнении предыдущей команды. В режиме опроса готовности процессор, обрабатывая код драйвера, управляющего процессом обмена данными с ВУ, как раз и выполняет в цикле команду «проверить наличие сигнала готовности», нерационально расходуя процессорное время, которое можно было бы потратить на решение других задач

 

 

Режим обмена с прерываниями

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

Режим обмена с прерываниями реализует режим асинхронного управления вводом-вывлдом. Центральный процессор посылает устройству управления команду, требующую, чтобы определенное внешнее устройство выполнило некоторое действие, и на время забывает об этом устройстве, перейдя на обработку другой программы. Выполнив операцию ввода-вывода, внешнее устройство через систему прерываний выдает запрос на прерывание работы процессора. Именно такой запрос и является сигналом готовности устройства ввода-вывода.

Для того чтобы процессор, выдав внешнему устройству очередную команду на прием или передачу данных, не потерял это устройство после переключения на выполнение других программ, может быть запущен отсчет времени, в течение которого устройство обязательно должно выполнить команду и прислать сигнал запроса на прерывание. Максимальный интервал времени, в течение которого внешнее устройство или его контроллер должны выдать сигнал запроса на прерывание, принято называть тайм-аутом. Если после выдачи устройству очередной команды прошло больше времени, чем было указано в тайм-ауте, а устройство так и не ответило, то делается вывод о том, что связь с устройством утеряна, и им больше невозможно управлять. Задача, запросившая утерянную операцию ввода-вывода, получают соответствующее диагностическое сообщение. 

 

Драйвер, представляющий собой сложный комплекс программных модулей, рассматривается как набор несколько секций: секцию запуска, одну или несколько секций продолжения и секцию завершения.

"Секция запуска инициирует операцию ввода-вывода. Эта секция запускается для включения устройства ввода-вывода или просто для инициализации очередной операции ввода-вывода.

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

Секция завершения обычно выключает устройство ввода-вывода или просто завершает операцию

 

06.01.2015; 18:44
хиты: 160
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь