Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Регистры системных адресов



В защищенном режиме задание и работа с сегментами и шлюзами производится с использованием соответствующих дескрипторов, которые сохраняются в специальных таблицах:

· GDT– глобальная таблица дескрипторов используется для хранения системных дескрипторов и дескрипторов шлюзов.

· LDT – локальная таблица дескрипторов, формируется индивидуально для дескрипторов каждой прикладной задачи.

· IDT – таблица дескрипторов прерываний; может содержать до 256 дескрипторов шлюзов прерываний, ловушек или шлюзов состояния задач (TSS).

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

Таблицы GDT и IDT являются уникальными, и их использование не настраивается, а задается "по умолчанию". По этой причине дескрипторы таблиц GDT и IDT не содержат поля атрибутов и хранятся в системных регистрах адресов (рис. 2.15).

          База     Предел  
GDTRR     Базовый адрес Предел
IDTR     Базовый адрес Предел
Рис. 2.15. Системные регистры (адресов GDTR и IDTR)

Таблица GDT используется:

· программами операционной системы для поиска программных объектов дескрипторов сегментов и шлюзов в глобальной таблице дескрипторов (GDT) при выполнении команд загрузки (активизации) сегментов данных и программ.

· прикладными программами при межсегментных передачах управления.

Таблицы LDT формируются для всех задач пользователей.

Любая задача пользователя имеет доступ к таблице GDT и только к своей таблице LDT для обращения к локальным (своим) сегментам данных и программ.

Использование индивидуальных таблиц LDT является одним из элементов разделения адресных пространств задач аппаратного механизма защиты программ от взаимных помех при многозадачных режимах работы.

При межсегментных передачах управления или переключениях задач производится следующая последовательность действий:

· по селектору команды передачи управления делается обращение к регистру GDTR для чтения базового адреса таблицы GDT,

· производится трансляция сегмента (вычисление линейного адреса строки таблицы сложением базового адреса таблицы GDTс индексом селектора, заданного командой передачи управления)

· производится обращение к таблице GDTдля чтениядескриптора.

Здесь возможны четыре случая:

· чтение дескриптора целевого программного сегмента,

· чтение дескриптора шлюза программного сегмента,

· чтение дескриптора TSS,

· чтение дескриптора шлюза TSS.

В первом случае процессор производит прямую передачу управления на команду нового программного сегмента по смещению (offset ), заданному в команде.

Во втором случае, по селектору, заданному шлюзом, производится новое обращение к таблице GDTдля чтения самого программного сегмента и только после этого производится процедура прямой передачи управления.

В третьем случае производится прямое переключение задач.

В четвертом случае по индексу селектора шлюза задач производится новое обращение к таблице GDTдля чтения самого дескриптора TSSи только после этого производится процедура переключения задач.

               
LDTR Селектор   Базовый адрес Предел
TR Селектор   Базовый адрес Предел
Рис. 3.16. Системные регистры (адресов LDTR и TR)  
                       

Таблица IDTсодержит до 256 строк для хранения шлюзов прерывания,

ловушки или TSS. Каждому из перечисленных типов шлюза соответствует своя особенность процедуры прерывания.

В состав системных регистров входят (рис.3.17):

· регистры управления, отладки и тестирования – 17 регистров,

· регистры системных адресов – 4 регистра.





Дата публикования: 2014-11-03; Прочитано: 535 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...