Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
30
Добавлен:
31.05.2015
Размер:
1.2 Mб
Скачать

Lection №9 Дескрипторы и таблицы. Переключение задач: Начало.

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov

Alexander Yurievich

Основные положения защищенного режима

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov

Основные положения защищенного режима

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov

Основные положения защищенного режима

Процессор может обраться только к тем сегментам памяти, для которых имеются дескрипторы в таблицах.

Дескрипторы выбираются с помощью 16-битных селекторов, программно загружаемых в сегментные регистры.

Индекс совместно с индикатором таблицы TI позволяет выбрать дескриптор из локальной(TI =1) или глобальной(TI=0) таблицы дескрипторов.

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

• Попытка обращения к памяти по такому сегментному регистру вызовет исключение. Исключение возникает и при попытке загрузки нулевого селектора в регистре CS и SS. Поле RPL указывает требуемый уровень привилегий.

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov

Основные положения защищенного режима

Как отмечалось выше, защищенный режим сохранил сегментную модель памяти (адрес ячейки памяти определяется суммой компонент: адрес начала сегмента и внутрисегментного смещения).

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

Сегмент, в защищенном режиме, это не просто область памяти, ограниченная лишь максимально допустимым значением внутрисегментного смещения, как это было в реальном режиме, - это «объект», который имеет строго определенный размер, не пересекается с другими сегментами (хотя один и тот же сегмент можно описать дважды)

и имеет ряд других атрибутов, по которым, в частности, происходит аппаратная защита памяти со стороны процессора.

Каждый сегмент имеет свой дескриптор (описатель сегмента).

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

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov

Основные положения защищенного режима

Существует три типа дескрипторных таблиц глобальная таблица дескрипторов (одна в системе); локальная таблица дескрипторов (своя для каждой задачи); таблица дескрипторов прерываний

Каждый дескриптор (элемент) таблицы описывает свой сегмент памяти.

Сегменты памяти не пересекаются!

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

Указатели на таблицу глобальных дескрипторов (GDTR) и таблицу прерываний (IDTR) имеют размер 48 байт, 32 из которых указывают линейный адрес начала таблицы, а остальные 16 – ее размер (предел).

У регистра-указателя локальной дескрипторной таблицы (LDTR) программно доступно только 16-битное поле селектора (индекса для GDT), по которому из GDT автоматически загружаются программно недоступные и невидимые поля базового адреса и размера таблицы.

Регистр LDTR указывает на дескриптор в GDT, описывающий локальную дескрипторную таблицу для текущей задачи.

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov

Основные положения защищенного режима

Команды загрузки регистров-указателей таблиц (GDTR, LDTR, IDTR) являются привилегированными (выполняются только на нулевом кольце привилегий

Глобальная таблица (GDT) содержит дескрипторы, доступные все задачам. Может содержать дескрипторы любых типов, кроме дескрипторов прерываний и ловушек

Нулевой элемент этой таблицы процессором не используется.

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

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov

Основные дескрипторы подразделяются на следующие категории:

* - ограниченно совместим.

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov

Дескрипторы и таблицы дескрипторов

Адрес сегмента – физический адрес начала сегмента (если нет страничного преобразования);

Размер - размер сегмента (Размер сегмента – 1);

Байт доступа – содержит информацию о защите сегмента;

D - бит разрядности выполняемых команд (для кодового сегмента):

016-разрядные;

132-разрядные

G - признак единицы измерения сегмента:

0– в байтах;

1– в страницах (по 4 Кб), при использовании страничной адресации памяти;

AVL - сегмент доступен для использования системным программным обеспечением (используются только ОС);

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov

Дескрипторы и таблицы дескрипторов

Системные сегменты предназначены для Дескрипторы системных сегментов имеют следующий формат: хранения локальных таблиц дескрипторов

LDT и состояния задач TSS (Task State

Segment)

Их дескрипторы определяют базовый адрес, лимит сегмента (1-64 Кбайт), права доступа (чтение, чтение/запись, только исполнение кода или исполнение/чтение) и присутствие сегмента в физической памяти.

В байте управления доступом у этих дескрипторов бит Р определяет действительность (Р=1) или недействительность (Р=0) содержимого сегмента.

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

. Поле ТYPE (1-3, 9-В) определяет тип сегмента.

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov