Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SP_MET_2.DOC
Скачиваний:
13
Добавлен:
02.05.2019
Размер:
689.66 Кб
Скачать
      1. Прерывания от внешних устройств

Аппаратные прерывания являются средством взаимодействия центральной части ЭВМ и программного обеспечения с внешними устройствами. Внешние устройства (клавиатура, дисковод, таймер, звуковая карта и т. д.) подают сигнал запроса на прерывание (IRQ — Interrupt Request), по которому процессор прерывает выполнение программы и передает управление на обработчик прерывания. Всего на IBM-совместимых персональных компь­ютерах используется 15 аппаратных прерываний (в соответствии с количеством входов контроллеров прерываний), хотя теоретически возможности архитектуры позволяют довести их число до 64.

Так как аппаратные прерывания возникают асинхронно, при их обработке необходимо предусматривать возможность возникновения наложенных прерываний. Прерывания обрабатываются в соответствии с системой приоритетов: обработчик не будет прерываться сигналами прерываний с более низкими приоритетами (они будут ждать своей очереди).

Рассмотрим кратко аппаратные прерывания в порядке убывания приоритетов.

IRQ0 (INT 8) — прерывание системного таймера. Это прерывание вызы­вается 18,2 раза в секунду. Стандартный обработчик этого прерыва­ния вызывает INT 1Ch при каждом вызове, так что, если программе необходимо только регулярно получать управление, а не перепрограммировать таймер, рекомендуется использовать прерывание 1Ch.

IRQ1 (INT 9) — прерывание клавиатуры. Это прерывание вызывается при каждом нажатии и отпускании клавиши на клавиатуре. Стандартный обработчик этого прерывания выполняет довольно много функций, начиная с перезагрузки по Ctrl-Alt-Del и заканчи­вая помещением кода клавиши в буфер клавиатуры BIOS.

IRQ2 — к этому входу на первом контроллере прерываний подключены аппаратные прерывания IRQ8 – IRQ15, но многие BIOS перенап­равляют IRQ9 на INT 0Ah.

IRQ8 (INT 70h) — прерывание часов реального времени. Это прерыва­ние вызывается часами реального времени при срабатывании бу­дильника и если они установлены на генерацию периодического прерывания (в последнем случае IRQ8 вызывается 1024 раза в се­кунду).

IRQ9 (INT 0Ah или INT 71h) — прерывание обратного хода луча монитора. Вызы­вается некоторыми видеоадаптерами при обратном ходе луча. Часто используется дополнительными устройствами (например, звуковы­ми картами, SCSI-адаптерами и т. д.).

IRQ10 (INT 72h) — используется дополнительными устройствами.

IRQ11 (INT 73h) — используется дополнительными устройствами.

IRQ12 (INT 74h) — мышь на системах PS, используется дополнительны­ми устройствами.

IRQ13 (INT 02h или INT 75h) — ошибка математического сопроцессора. По умолчанию это прерывание отключено как на FPU, так и на кон­троллере прерываний.

IRQ14 (INT 76h) — прерывание первого IDE-контроллера «операция за­вершена».

IRQ15 (INT 77h) — прерывание второго IDE-контроллера «операция за­вершена».

IRQ3 (INT 0Bh) — прерывание последовательного порта COM2 вызы­вается, если порт COM2 получил данные.

IRQ4 (INT 0Сh) — прерывание последовательного порта СОМ1 вызы­вается, если порт СОМ1 получил данные.

IRQ5 (INT 0Dh) — прерывание LPT2 используется дополнительными устройствами.

IRQ6 (INT 0Eh) — прерывание дисковода «операция завершена».

IRQ7 (INT 0Fh) — прерывание LPT1 используется дополнительными ус­тройствами.

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