Обработка прерываний и исключенийРаботая в защищенном режиме, прикладная программа не взаимодействует ни с реальными физическими адресами памяти, ни с реальными внешними устройствами. Таким образом, программа выполняется на некоторой Виртуальной машине, а управляет ее выполнением специальный компонент операционной системы VMM — Менеджер виртуальных машин. Виртуализация машинных ресурсов в защищенном режиме опирается на механизм обработки Прерываний и Исключений. Термин «прерывание» аналогичен по смыслу своему аналогу, применявшемуся в реальном режиме работы процессора. Прерывания могут поступать как со стороны внешних устройств, так и генерироваться программно посредством машинной команды «INT XX». Понятие «исключения» в какой-то мере соответствует ситуации, возникающей при генерации прерываний 0 и 6 реального режима. Эти прерывания генерируются самим процессором при возникновении в нем исключительных ситуаций, требующих обработки со стороны операционной системы или прикладной программы. Инициатором исключений защищенного режима также служит сам процессор. Например, исключение 0Dh генерируется при попытке программы обратиться к сегменту памяти с более высоким уровнем привилегий.

MS Windows размещает в отдельных сегментах системной памяти некоторое количество обработчиков прерываний и исключений, формирует из дескрипторов этих сегментов таблицу IDT и загружает ее адрес в 48-битовый регистр IDTR. В IDT имеется место для Часть прерываний и исключений первоначально не имеют своих «личных» обработчиков, а обслуживаются некоторым универсальным кодом. Но по мере установки в ПЭВМ новых устройств и инсталляции соответствующих драйверов многие прерывания обретают своих «новых хозяев».

Еще интересные статьи :