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

Функции ввода-вывода



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

Процессор может не только читать данные из памяти и записывать их туда, обращаясь по адресу к определенной ячейке, но также читать и записывать дан­ные в устройство ввода-вывода. Таким образом устройство ввода-вывода (например, контроллер диска) обменивается данными с процессором. При этом процессор должен идентифицировать устройство, которое будет управляться оп­ределенным устройством ввода-вывода. Из команд ввода-вывода можно сформи­ровать такие же последовательности, как показанные на рис. 1.4 последователь­ности команд обращения к памяти*

Иногда желательно, чтобы обмен данными с памятью выполнялся непо­средственно устройством ввода-вывода, а процессор в это время выполнял другие задания. В этом случае процессор передает устройству ввода-вывода полномочия для чтения из памяти и записи в память, что позволяет освобо­дить процессор. Во время такой передачи данных устройство ввода-вывода читает или записывает команды в память, принимая на себя ответственность за этот обмен. Такой режим, известный под названием прямого доступа к памяти (direct memory access — DMA), рассматривается в следующих разде­лах этой главы.

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

Таблица 1.1. Классы прерываний

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

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

Такое положение дел проиллюстрировано на рис, 1.5,а. Программа пользовате­ля содержит ряд вызовов процедуры записи WRITE, в промежутках между которыми расположены другие команды. В отрезках 1, 2 и 3 находятся последовательности команд кода, в которых не используется ввод-вывод. При вызове процедуры WRITE управление передается системной утилите ввода-вывода, которая выполняет соответ­ствующие операции. Программа ввода-вывода состоит из трех частей.

• Последовательность команд, обозначенных на рисунке цифрой 4, которые служат для подготовки к собственно операциям ввода-вывода. В эту после­довательность могут входить копирование выводимых данных в специаль­ный буфер и подготовка набора параметров, необходимых для управления устройством.

• Собственно команды ввода-вывода. Если программа не использует прерыва­ний, ей следует ждать, пока устройство ввода-вывода не выполнит требуе­мые операции (или периодически проверять его состояние путем опроса). При этом программе не остается ничего другого, как просто ждать, посто­янно проверяя, завершилась ли операция ввода-вывода.

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

Из-за того что для выполнения операции ввода-вывода может потребоваться сравнительно длительный промежуток времени, программа замедляет работу, ожидая завершения операции. Таким образом, там, где встречается вызов WRITE, производительность программы существенно уменьшается.





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



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