В работе компьютера часто возникают ситуации, когда процессору необходимо отложить на время выполнение основной программы и обработать нажатие клави­ши на клавиатуре, щелчок кнопкой мыши или другое событие, возникшее в одном из устройств. Для реализации этой задачи во всех компьютерах используют меха­низм прерываний. Прерывание (INT) - это приостановка процессором выполнения основной программы для обработки события, поступившего от внешнего устрой­ства. В общем случае обработка прерывания происходит следующим образом:

когда возникает ситуация, требующая вмешательства процессора (например, была нажата клавиша), устройство посылает специальный сигнал - запрос на прерывание (IRQ);

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

процессор, получив запрос на прерывание, приостанавливает выполнение ос­новной программы, сохраняет в оперативной памяти текущее состояние своих регистров и запускает подпрограмму обработки данного прерывания;

завершив обработку прерывания, процессор восстанавливает из памяти свое исходное состояние и продолжает выполнять основную программу.

Прерывания могут накладываться друг на друга, и если во время обработки одно­го прерывания возникнет другое с более высоким приоритетом, то выполнение текущего будет приостановлено, и процессор перейдет к более важному. Процессор


может обрабатывать тысячи прерываний в секунду, но пользователи не замечают ЭТОГО, ПОСКОЛЬКУ скорость его работы достаточно высока.

Вес прерывания можно условно разделить на несколько групп.

Немаскируемые прерывания (Non-Maskable Interrupt, NMI). Они имеют
НаЯВЫСШИп приоритет. Эти прерывания обрабатываются при аварийных си­
туациях, связанных с ошибками в работе оперативной памяти или других
устройств.

Все современные процессоры также поддерживают другой тин немаскируемого прерывания SMI (System Management Interrupt), которое используется в схемах управления электропитанием.

Q Маскируемые прерывания. В отличие от немаскируемых, их выполнение может быть временно приостановлено программным способом. К ним относят все прерывания от устройств, обрабатываемые контроллером прерываний. Обычно он позволяет обращаться к 16 прерываниям от различных устройств; их назна­чение приведено и табл. 1.2.

В большинстве современных компьютеров используется так называемый рас­ширенный контроллер прерывании (ЛР1С), который изначально разрабатывал­ся для многопроцессорных систем. APIC ускоряет обработку прерываний и уве­личивает их количество до 24.

Программные прерывания. Они полностью реализуются программным спосо­
бом без участия контроллера прерываний. Эти прерывания, по сути, - подпро­
граммы. |н>1наюпп!с определенные задачи. Например, все версии BIOS содержат
набор программных прерывании, которые выполняют основные операции вво­
да/вывода, и любая программа может их использовать, или, другими словами,
вызывать прерывания BIOS. Свои программные прерывания есть у операцион­
ной системы, а также у некоторых прикладных программ.

Таблица 1.2. Назначение аппаратных прерываний

Устройство Примечание
0 Системный таймер Имеет наивысший приоритет и не может быть изменено
1 Клавиатура Имеет самый высокий приоритет после системного ПЙМвра и не может быть изменено
2 Контроллер

прерываний

Применяется для расширения количества прерываний с 8 до 16. Не может быть изменено
3 Последовательный порт СОМ 2 При необходимости может быть назначено другому устройству
* Последовательный порт СОМ ! При необходимости может быть назначено другому устройству
:> Мп Может назначаться любому устройству

Номер преры­вания Устройство Примечание
6 Контроллер дисковода для дискет ИзначаЛЬНО не может быть изменено. В некоторых версиях BIOS есть ВОЗМОЖНОСТЬ освободить IRQ 6 для операционной системы, если дисковод отсутствует
7 Параллельный порт При необходимости может быть назначено другому устройству
8 Часы реального времени (RTC) Системное прерывание, которое не может быть изменено
9 Нет Может назначаться любому устройству
10 Нет
11 Нет
12 PS/2-мышь При необходимости может быть назначено другому устройству
13 Математический сопроцессор Системное прерывание, которое не может быть изменено. Все современные процессоры имеют встроенный математический сопроцессор, поэтому данное прерывание используется для совместимости СО старыми программами
И Первичный канал ШЕ-контроллера При отключении канала может быть назначено другому

устройству

15 Вторичный канал 1D Е-контроллсра