Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Орг. Эвм ответы.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.19 Mб
Скачать

Вопрос 1 Понятие прерываний

Прерывание –ситуация вызванная прекращением работы текущей команды или последовательности команд с целью обработки некоторых событий и последующим возвратом к прерванной программе или команде

Обработчик прерываний - то низкоуровневый эквивалент обработчика событий. Эти обработчики вызываются либо по аппаратному прерыванию, либо соответствующей инструкцией в программе, и соответственно обычно предназначены для взаимодействия с устройствами или для осуществления вызова функций операционной системы.

Классификация прерываний.

 Прерывания делятся на внутренние и внешние. Внутренние: а)исключения(ненормальные ситуации при выполнении команд процессора)   б)программные прерывания (выполнение машинной команды int x, где х –номер прерывания). Внешние (аппаратные)-возникают при поступлении сигнала прерывания от внешнего устройства.

Каждому прерыванию присваивается код (номер) прерывания: 0-225 

Системной причиной прерывания второго рода является необходимость синхронизации параллельных процессов. Процессы, подчиненные ОС, в случае их окончания или в других ситуациях вырабатывают сигнал прерывания, что приводит к прекращению обслуживания ЦП других активных процессов «без их ведома».

При обработке прерывания нужно выполнить следующую последовательность действий:

1) восприятие запроса на прерывание;

2) запоминание состояния прерванного процесса (значение счетчика команд, содержимое регистров общего назначения, режим работы ЦП и т.д.);

3) передача управления программе обработки прерываний, для чего в счетчик команд заносится адрес, уникальный для каждого типа прерывания;

4) обработка прерывания;

5) восстановление нормальной работы.

Система прерываний - это совокупность программных и аппаратных средств, реализующих механизм прерываний.

К аппаратным средствам системы прерываний относятся:

  1. выводы микропроцессора - на них формируются сигналы, извещающие микропроцессор либо о том, что некоторое внешнее устройство «просит уделить ему внимание» (INTR), либо о том, что требуется безотлагательная обработка некоторого события или катастрофическая ошибка (NMI)

  2. INTR - вывод для входного сигнала запроса на прерывание,

  3. NMI - вывод для входного сигнала немаскируемого прерывания

  4. INTA - вывод для выходного сигнала подтверждения получения сигнала прерывания микропроцессором (этот сигнал поступает на одноименный вход микросхемы контроллера 8259А;

  5. программируемый контроллер прерываний 8259А (предназначен для фиксирования сигналов прерываний от восьми различных внешних устройств; он выполнен в виде микросхемы; обычно используют две последовательно соединенные микросхемы, поэтому кол-во возможных источников внешних прерываний до 15 плюс одно немаскируемое прерывание; именно он формирует номер вектора прерывания и выдает его шину данных);

  6. внешние устройства (таймер, клавиатура, магнитные диски и т.п.)

Укажем основные действия, которые выполняются микропроцессором при возникновении прерывания.

1. Регистр флагов запоминается в стеке. Запоминание состояния прерванной программы.

2. Отчистка флагов TF и IF.

Т.о. после программы обработки прерывания процессор работает обычным образом (Т = 0), а не в пошаговом режиме. Автоматически запрещаются внешние прерывания по входу INTR (I = 0), что нужно, например, для защиты начального участка программы обработки прерывания, в течение которого осуществляется включение в стек внутренних регистров микропроцессора. Затем программа обработки прерывания может разрешить внешние прерывания. Необходимо следить, чтобы в программе обработке прерывания не возникло того типа прерывания, которое она обслуживает, чтобы не произошел бесконечный вызов этой процедуры.

3. Адрес возврата (CS и IP) заполняются в стеке. Отметим, что в стек включается скорректированное содержимое указателя команд IP, соответствующее адресу команды, перед которой микропроцессор начал обслуживать прерывание(то есть адрес следующей команды)..

4. Вектор прерывания помещается в регистры CS и IP. При этом осуществляется переход к программе обработки прерывания.

Такая многоуровневая обработка прерываний в определённой степени усложняет использование прерываний, особенно в случаях, когда обработка одного прерывания прерывается другим прерыванием. В этих случаях при возврате из прерывания может оказаться испорченным содержимое некоторых регистров, вследствие чего состояние прерванной программы будет восстановлено не полностью, что чревато появлением трудно обнаруживаемых ошибок.

Взаимодействие программ, использующих прерывания представлено ниже.

Рисунок 14.16 – Взаимодействие программ, использующих прерывания

Здесь IRET – команда возврата из прерывания, по которой из стека считываются содержимое регистра флагов и регистров CS и IP, после чего продолжается выполнение прерванной программы.

Пример: Установить курсор на 4-ю строку в 10-й столбец.

MOV AH, 02; 02 - функция установки курсора

MOV BH, 00; экран 0

MOV DH, 03; строка 4

MOV DL, 09; столбец 10

INT 10H; передача управления в BIOS

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]