Cтраница 2
Флаг прерывания сбрасывается автоматически при вызове процедуры обработки прерывания. Это прерывание разрешается битом TMIE в регистре управления. [16]
Аппаратура всегда, прежде чем начать процедуру обработки прерывания, сохраняет определенную информацию. Сохраняемая информация и место ее хранения широко варьируются в зависимости от центрального процессора. Как минимум сохраняется счетчик команд, что позволяет продолжить выполнение прерванного процесса. Другая крайность представляет собой сохранение всех программно доступных регистров и большого количества внутренних регистров центрального процессора. [17]
Ввод-вывод можно разбить на четыре уровня иерархии: процедуры обработки прерываний, драйверы устройств, независимое от устройств программное обеспечение ввода-вывода и библиотеки ввода-вывода и спулеры, работающие в пространстве пользователя. [18]
Например, когда пользователь нажимает на клавишу, процедура обработки прерываний от клавиатуры считывает из регистра код нажатой клавиши и разрешает прерывания от клавиатуры. Пока обработка клавиши занимает не более 100 мс, пользователь ничего не заметит. Отложенные вызовы процедуры также применяются для слежения за таймерами и другой активностью, для которой не требуется немедленная обработка. Очередь DPC представляет собой механизм напоминания о том, что есть работа, которую следует выполнить позднее. [19]
Ввод-вывод можно разбить на четыре уровня иерархии: процедуры обработки прерываний, драйверы устройств, независимое от устройств программное обеспечение ввода-вывода и библиотеки ввода-вывода и спулеры, работающие в пространстве пользователя. [20]
Например, когда пользователь нажимает на клавишу, процедура обработки прерываний от клавиатуры считывает из регистра код нажатой клавиши и разрешает прерывания от клавиатуры. Пока обработка клавиши занимает не более 100 мс, пользователь ничего не заметит. Отложенные вызовы процедуры также применяются для слежения за таймерами и другой активностью, для которой не требуется немедленная обработка. Очередь DPC представляет собой механизм напоминания о том, что есть работа, которую следует выполнить позднее. [21]
Адрес, который передается программой в качестве входной точки процедуры обработки прерываний, является виртуальным, так что он имеет отношение к блоку управления памятью. [22]
В реальном режиме эта таблица организована так же, как у 8086 / 8088, то есть содержит двойные слова, определяющие адрес начала процедур обработки прерываний. В защищенном режиме таблица содержит 8-байтные дескрипторы прерываний. Ее размер может быть от 32 до 256 дескрипторов, и располагаться она может в любом месте памяти. [23]
Если обработка запроса на прерывание может быть прервана другим запросом на прерывание, то может оказаться, что в некоторый момент времени будет выполняться одновременно несколько процедур обработки прерываний. Поскольку обработка этих запросов на прерывание совмещена во времени, они называются совмещенными прерываниями. [24]
Здесь пользовательский процесс предоставляет буфер размером в п символов в пространстве пользователя, после чего выполняет чтение п символов. Процедура обработки прерываний помещает приходящие символы в буфер до тех пор, пока он не заполнится. Затем она активизирует процесс пользователя. [25]
Если значение кода хотя бы одной из тетрад по любому из входов А или В превышает 1001, вырабатываются сигналы ОШ ДАН М2 или ОШ ДАН МЗ. Сигналы используются для прекращения выполнения команды и возбуждения процедуры обработки прерывания по особому случаю в данных. [26]
![]() |
Выбор формата данных. [27] |
При пробуждении приемника бит RWU сбрасывается и принимается первый байт данных. Если прерывания разрешены, процессор прерывает свою работу и процедура обработки прерываний читает заголовок сообщения, чтобы определить, относится ли сообщение к данному DSP. Если сообщение предназначено для данного DSP, то оно принимается и RWU устанавливается в 1 для ожидания следующего сообщения. [28]
Процедуры обработки прерываний могут содержать обычные внутренние процедуры. После вызова эти процедуры передают управление в точку вызова той процедуры обработки прерываний, в которой они объявлены. [29]
Управляющие объекты - это объекты, управляющие системой, включая примитивные объекты процессов, объекты прерываний и два несколько странных объекта, называемых DPC и АРС. Объект DPC ( Deferred Procedure Call - отложенный вызов процедуры) используется, чтобы отделить часть процедуры обработки прерываний, для которой время является критичным, от той ее части, для которой время некритично. Как правило, процедура обработки прерываний сохраняет несколько аппаратных регистров, связанных с прерывающим устройством ввода-вывода, чтобы их можно было потом восстановить, и разрешает аппаратуре продолжать работу, но оставляет большую часть обработки на потом. [30]