Cтраница 1
Обработчик прерываний заканчивает работу. [2]
Обработчики прерываний кодируются на Модуле-2 в виде обсуждавшихся в гл. [3]
Обработчики прерываний в Модуле-2 записываются в виде сопрограмм. Когда происходит прерывание, соответствующая сопрограмма автоматически возбуждается, происходит безусловная передача управления из какого-то места основной программы в сопрограмму. [4]
Обработчик прерывания выполняет необходимую инициализацию ( самого себя и обслуживаемого устройства), после чего обращается к IOTRANSFER, переводя таким образом себя в пассивное состояние. [5]
![]() |
Программа TIME использует для работы с аппаратурой локальный модуль clock. Она импортирует средства модулей SYSTEM и InOut. [6] |
Обработчик прерывания tick создается и в первый раз вызывается из тела модуля clock. [7]
Обработчик прерываний в первую очередь выполняет действия, требуемые для сохранения информации о состоянии системы на момент прерывания. Во многих машинах информация о состоянии включает содержимое всех регистров и значение признака результата. [8]
Приведенный обработчик прерываний - от часов реального времени представляет собой локальный модуль, погруженный в использующую его программу. [9]
Далее обработчик прерываний отправляет полученный код символа в небольшую область памяти, известную как буфер клавиатуры, и прекращает свою работу, известив об этом процессор. [10]
Сначала обработчик прерывания опрашивает параллельное устройство ввода, чтобы определить вызвавший прерывание импульс. Потом обработчик опрашивает таймер, чтобы узнать текущее время. Информация об импульсе и времени заносится в буфер событий. [11]
![]() |
Программные уровни ввода-вывода. [12] |
В других случаях обработчик прерываний вызывает процедуру монитора signal с переменной состояния. В третьем случае он посылает заблокированному драйверу сообщение. В любом случае драйвер разблокируется обработчиком прерываний. Эта схема лучше всего работает в драйверах, являющихся процессами ядра со своим собственным состоянием, стеком и счетчиком команд. [13]
![]() |
Программные уровни ввода-вывода. [14] |
В других случаях обработчик прерываний вызывает процедуру монитора signal с переменной состояния. В третьем случае он посылает заблокированному драйверу сообщение. В любом случае драйвер разблокируется обработчиком прерываний. Эта схема лучше всего работает в драйверах, являющихся процессами ядра со своим собственным состоянием, стеком и счетчиком команд. [15]