пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Функционирование системы прерываний в защищённом режиме работы микропроцессора.

В защищенном режиме работы система прерываний ра­ботает совершенно иначе. Прежде всего, вместо таблицы векторов, она имеет дело с таблицей дескрипторов прерываний (Interrupt Descriptor Table, IDT). Дело здесь не столько в названии таблицы, сколько в том, что таблица ЮТ представляет собой не таблицу с адресами обработчиков преры­ ваний, а таблицу со специальными системными структурами данных (дескриптора­ ми), доступ к которой со стороны пользовательских (прикладных) программ невоз­ можен.  

Только сам микропроцессор (его система прерываний) и код операционной системы могут получить доступ к этой таблице, представляющей собой специаль­ ный сегмент, адрес и длина которого содержатся в регистре IDTR 

Начальное значение этого регистра равно нулю, но в него можно занести и другое значение. В этом случае таблица векторов прерываний будет находиться в другом месте оперативной памяти. Естественно, что перед тем, как занести в регистр IDTR новое значение, необходимо подготовить саму таблицу векторов. В защищенном режиме работы загрузку регистра IDTR может произвести только код с максималь­ ным уровнем привилегий. 

 

Каждый элемент в таблице дескрипторов прерываний, о которой мы говорим уже в защищенном режиме, представляет собой 8-байтовую структуру, более похожую на дескриптор шлюза, нежели на дескриптор сегмента.

Как мы уже знаем, в зависимости от причины прерывания процессор автомати­ чески индексирует таблицу прерываний и выбирает соответствующий элемент, с помощью которого и осуществляется перенаправление в исполнении кода, то есть передача управления на обработчик прерывания. Однако таблица IDT содержит только дескрипторы шлюзов, а не дескрипторы сегментов кода, поэтому факти­ чески получается что-то типа косвенной адресации, но с рассмотренным ранее механизмом защиты с помощью уровней привилегий. Благодаря этому пользова­ тели уже не могут сами изменить обработку прерываний, которая предопределя­ ется системным программным обеспечением.

Дескриптор прерываний может относиться к одному из трех типов:
коммутатор прерывания (interrupt gate);
коммутатор перехвата (trap gate); 
коммутатор задачи (task gate). 

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


15.06.2014; 13:21
хиты: 138
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь