Информатика / математика и код

Основы работы прерываний

Как вы уже знаете, в режиме реальных адресов может существовать 256 различных прерываний. В начале памяти, по адресу 0000:0000 расположена таблица прерываний, состоящая из 256 четырёхбайтовых дальних (far) адресов в виде dw сегмент : dw смещение. Каждый такой адрес указывает на процедуру, обрабатывающую прерывание. Такие процедуры называются обработчики прерываний, а адреса - векторами.

Режим реальных адресов позоляет использовать два типа прерываний:

  1. Аппаратные прерывания - 16 прерываний от внешних устройств, отображённых на 16 векторов.
  2. Программные прерывания - прерывания, генерируемые командой INT n.

В защищённом режиме работа прерываний происходит сложнее.

Все эти особенности появились в процессоре 80386 и в полном объёме, с небольшими дополнениями, используются в всех 32-разрядных процессорах.

Прерывания с векторами от 00 до 1Fh, т.е. исключения - это основа защищённого режима. Благодаря исключениям процессор автоматически реагирует на любые попытки нарушить защиту системы и позволяет их корректно обработать. Благодаря разделению кода и данных по уровням привилегий, обработчики прерываний можно надёжно изолировать от других программ.

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

Яндекс.Метрика