Обмен по прерываниям
Это совокупность программно-аппаратных средств, посредством которых процессор получает способность реагировать на события, происходящие как вне, так и внутри него. При этом процессор переключе6тся на выполнение специальной программы (процедуры обработки прерывания) для анализа события. Затем процессор возобновляет выполнение прерванной программы. В зависимости от вида события различают внешние и внутренние прерывания.
При обмене с внешним устройством возникает проблемы начала и завершения процедуры обмена массивом (блоком) данных. Наиболее естественный способ это, когда процессор сам начинает обмен и сам завершает его. Однако в большинстве случаев это приводит к неоправданным затратам процессорного времени.
Другое решение заключается в периодическом (например, по таймеру) опросе ВУ на предмет его готовности. Но более продуктивным является решение, когда внешнее устройство само сообщает процессору о своей готовности. Два последних решения предполагают, что процессор умеет откликаться на события, происходящие как внутри его (переполнение таймера), так и вовне. Но так, как процессор ничего не умеет делать, кроме как выполнять программу, то это означает, что он должен в качестве реакции на некоторое воздействие (сигнал) прекратить выполнение одной программы и перейти на выполнение другой. Такой процесс называется прерыванием, а сигналы, вызывающие прерывание - запросами.
Совокупность программно-аппаратных средств, посредством которых процессор получает способность реагировать на события, происходящие как вне, так и внутри него носит название системы прерываний.
При возникновении прерывания процессор переключается на выполнение специальной программы (процедуры обработки прерывания) для анализа события. Затем процессор возобновляет выполнение прерванной программы
Таким образом, прерывание есть средство обращения к процедуре по внешним по отношению к выполняемой программе событиям. При этом тип процедуры определяется этим событием. Воздействие события на компьютер называется запросом.
Для удовлетворения запросов в требуемом порядке между ними устанавливают приоритет.
Различают следующие методы обработки приоритетов:
- статический метод: запросы обрабатывается в порядке их поступления.
- циклический метод: запросы обрабатываются по кольцу. Обработанный запросчик получает самый низкий приоритет.
- рекурсивный метод (с абсолютными приоритетами): запросы, имеющие более низкий приоритет, игнорируются.
Для запрещения отдельных запросов используются маски. Некоторые особенно важные запросы могут быть немаскируемыми.
Многие системы прерывания обладают возможностями рекурсии, когда программа, прерванная одним запросом, также может быть прервана другим запросом, имеющим более высокий приоритет.
Последовательность действий программы обработчика прерываний при возникновении запроса
- распознавание запроса (потенциальный и по фронту).
- запоминание текущего состояния процессора
- маскирование прерываний
- подтверждение приёма прерывания (сообщение запросчику, что потенциальный запрос может быть снят)
- обращение к программе-обработчику прерываний и снятие маски (если возможно).
- выход из прерывания
Т.о. вход в прерывание осуществляется аппаратно, а выход по команде программы.
Если запросчик сообщает номер программы обработки, то такое прерывание называется векторным.