Прерывания

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

□ 0 – системный таймер;

□ 1 – клавиатура;

□ 2 – контроллер прерываний;

□ 3 и 4 – последовательные порты COM2 и СОМ1;

□ 6 – контроллер дисковода;

□ 7 – параллельный порт;

□ 8 – часы реального времени (RTC);

□ 12 – PS/2-мышь;

□ 13 – математический сопроцессор;

□ 14 и 15 – первичный и вторичный каналы IDE-кон-троллера.

Прерывания с номерами 5, 9, 10, 11 изначально сво-


 


бодны и могут назначаться любому устройству. Преры-вания 3, 4, 6, 7, 12, 14 и 15 в некоторых случаях могутбыть переназначены другим устройствам, а прерыва-ния 0, 1, 2, 8 и 13 – системные, и изменить их невоз-можно.

В современных компьютерах используется такназываемый расширенный контроллер прерываний(Advanced Programmable Interrupt Controller, APIC), ко-торый разрабатывался для многопроцессорных си-стем. APIC ускоряет обработку прерываний и увеличи-вает их количество до 24.