Понятие прерывания 2 Цель и механизм
Скачать 58.82 Kb.
|
Программные (внутренние) прерыванияПрограммы могут сами вызывать прерывания с заданным номером. Для этого они используют команду INT. Это так называемые программные прерывания. Программные прерывания не являются асинхронными, так как вызываются из программы. Программные прерывания удобно использовать для организации доступа к отдельным, общим для всех программ функциям. Например, функции операционной системы доступны прикладным программам именно через прерывания. При вызове этих модулей нет необходимости знать их текущий адрес в памяти. Прикладные программы и драйверы могут сами устанавливать свои обработчики прерываний для их последующего использования другими программами. Для этого встраиваемые обработчики прерываний должны быть резидентными в памяти. Исключения (внутренние прерывания)Эти прерывания создаются цепями самого процессора при возникновении одной из специально оговоренных ситуаций. Если процессор сталкивается с одной из таких сбойных ситуаций, то он выполняет процедуру прерывания, используя закрепленной за ней вектор прерывания , который известен процессору. Например : Прерывание 0 вырабатывается в случае переполнения при операции деления на 0 Аппаратные и программные средства системы прерыванийСистема прерываний - это совокупность программных и аппаратных средств, реализующих механизм прерываний. К аппаратнымсредствамсистемы прерываний относятся: выводы микропроцессора - на них формируются сигналы, извещающие микропроцессор либо о том, что некоторое внешнее устройство «просит уделить ему внимание» (INTR, заявка на прерывание), либо о том, что требуется безотлагательная обработка некоторого события или катастрофическая ошибка (NMI) INTR - вывод для входного сигнала запроса на прерывание, NMI - вывод для входного сигнала немаскируемого прерывания INTA - вывод для выходного сигнала подтверждения получения сигнала прерывания микропроцессором; программируемый контроллер прерываний 8259А (предназначен для фиксирования сигналов прерываний от восьми различных внешних устройств; он выполнен в виде микросхемы; именно он формирует номер вектора прерывания и выдает его шину данных); внешние устройства (таймер, клавиатура, магнитные диски и т.п.) К программнымсредствамсистемы прерываний реальногорежимаотносятся: таблица векторов прерываний. Занимает первый килобайт ОП (адреса 00000h-003FFh). Она содержит адреса (векторы - «векторы», т.к. два значения для указания адреса) обработчиков прерываний и состоит из 256 (0..255) элементов по 4 байта каждый: 2 байта - новое значение для регистра IP 2 байта - новое значение для регистра CS. Расположение таблицы векторов прерываний в процессорах i80286 и старше определяется значением регистра IDTR. Таблица векторов прерываний инициализируется при запуске системы, но в принципе может быть изменена и перемещена. Каждый вектор имеет свой номер и называется номером прерывания. два флага в регистре флагов flags/eflags: IF (Interrupt Flag) - флаг прерывания. Предназначен для маскирования (запрещения) аппаратных прерываний. Если IF=1, микропроцессор обрабатывает внешние прерывания, если = 0, то игнорирует; TF(Trace Flag) - флаг трассировки. Если он=1, то микропроцессор переходит в режим покомандной работы. В этом режиме в микропроцессоре генерируется внутреннее прерывание с номером 1; машинные команды микропроцессора: int, into (прерывание по переполнению), iret, cli, sti Таблица векторов прерываний |