КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

Архитектурные компоненты IBM PC-совместимого компьютера

Аппаратные прерывания были описаны выше; кроме того, к ним относится и специфичное (и неиспользуемое прикладными программами) прерывание SMI для входа в режим системного управления (SMM). Программные прерывания по сути прерываниями и не являются — это лишь короткая форма дальнего вызова ограниченного количества процедур, выполняемая инструкцией Int N (N=0-255). Программные прерывания, в частности, используются для вы¬зовов сервисов BIOS и DOS. Исключения генерируются процессором и сопроцес¬сором, когда при исполнении инструкций возникают особые условия (например, деление на ноль или срабатывание защиты). Исключения занимают векторы пре¬рываний 0-31, которые частично пересекаются с векторами аппаратных преры¬ваний ведущего контроллера и NMI, а также с векторами сервисов BIOS. В про¬цессорах 8086/88 исключения назывались внутренними прерываниями, их было совсем мало. По мере «взросления» процессоров добавлялись новые исключения; исключениями особо богаты современные процессоры при работе в защищенном режиме. На исключениях строится защита и виртуальная память в многозадач¬ных ОС защищенного режима.
В реальном режиме прерывания работают довольно просто, и их обработчики могут находиться в любом месте физически адресуемой памяти (ОЗУ или ПЗУ). В таблице прерываний, начинающейся с нулевого адреса, каждый вектор преры¬ваний представляется дальним указателем на процедуру обработки (16-байтные смещение и сегмент). Внедрение собственных обработчиков прерываний пред¬ставляет собой несложную задачу, если прерывание используется монопольно одним устройством и соответствующим ему единственным модулем ПО. В реаль¬ном режиме любая программа может управлять флагом разрешения аппаратных прерываний; некорректное управление флагом может приводить к различным неприятностям — от сбоя системного времени до «зависания» компьютера.
В защищенном режиме прерывания работают гораздо сложнее. Таблица преры¬ваний здесь содержит 8-байтные дескрипторы прерываний. Их обработчики долж¬ны быть подключены к ядру ОС, постоянно присутствующему в физической па¬мяти.

Hosted by uCoz