E.1.1. Дескрипторные таблицы.
В системах на базе процессоров x86 допускается создание почти любого числа сегментов - необходимо только наличие соответствующего дескриптора. Все дескрипторы имеют длину 8 байт и хранятся в специальной области ОЗУ, называемой дескрипторной таблицей (descriptor table). Порядок размещения дескрипторов произволен, а максимальное число дескрипторов - 8192. Таким образом максимальный размер дескрипторной таблицы - 64 Кбайт.
Существует три типа дескрипторных таблиц, выбор которых зависит от назначения сегмента. Рассмотрим эти типы по подробнее.
Глобальная дескрипторная таблица (GDT).
Главной общесистемной таблицей дескрипторов является именно эта системная таблица. Таблицу GDT "коллективно используют" все задачи. Для определения начального адреса GDT предназначен специальный регистр микропроцессора - GDTR. Наличие GDT в системе обязательно при работе микропроцессора x86 в защищенном режиме.
Дескрипторная таблица прерываний (IDT).
Общесистемной является также дескрипторная таблица прерываний. Она содержит в себе дескрипторы специальных объектов - шлюзов. Поскольку шлюзы определяют точки входа программ обработки прерываний и особых случаев, они служат заменой таблицы векторов прерываний процессора i8086. Начальный адрес таблицы находится в системном регистре IDTR микропроцессора.
Локальная дескрипторная таблица (LDT).
Для каждой задачи в дополнение к таблице GDT можно построить свою, локальную дескрипторную таблицу. Она определяет сегменты, доступные только этой, конкретной задаче. Эти таблицы не являются обязательными, создаются по мере надобности, и хранятся в сегментах программы, на которых есть ссылка в GDT. Локальные таблицы используют 16-ти битный селектор, что упрощает манипуляцию с сегментами. Локальные дескрипторные таблицы могут участвовать в свопинге памяти, как и обычные сегменты.
E.1.2. Селекторы.
Отправной точкой входа в дескриптор является селектор. Полный формат регистра селектора приведен на рисунке E.1.
Рис. E.1. Формат селектора микропроцессора x86.
Двухбитное поле RPL привлекается для контроля привилегий в механизме защиты.
Бит индикации таблицы TI показывает. из какой дескрипторной таблицы выбирается дескриптор: (TI=0 - GDT, TI=1 - LDT). Старшие 13 бит определяют нужный дескриптор в дескрипторной таблице.
Дата добавления: 2016-02-20; просмотров: 2157;