Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материалы по информатике.docx
Скачиваний:
46
Добавлен:
10.05.2015
Размер:
150.08 Кб
Скачать

Сегментная организация памяти в защищенном режиме

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

Структура дескриптора (упрощенная):

Базовый адрес Граница Тип Уровень привилегий

Дескриптор содержит базовый адрес сегмента, его размер, тип сегмента (определяющий его использование - запись, только чтение, исполнение) и дополнительную информацию (права этого сегмента). Размер дескриптора составляет 8 байт.

Уровни привилегий по убыванию старшинства:

  • 0 ядро – операционная система;

  • 1 системный сервис

  • 2 заказные расширения

  • 3 прикладные программы

Дескрипторы размещаются в памяти, которая называется дескрипторной таблицей. Основной таблицей дескрипторов является глобальная дескрипторная таблица (Global Descriptor Table – GDT). которая используется всеми программами. Адрес и размер этой таблицы содержится в регистре GDTR. Для определения требуемого каждой программе дескриптора используется сегментный регистр, например DS.

После определения дескриптора МП определяет базовый адрес сегмента и может осуществлять обращение к памяти. Если для какой-либо задачи количество дескрипторов является недостаточным, то она может организовать собственную таблицу дескрипторов, которая называется локальной таблицей дескрипторов (LDT – Local Descriptor Table). Адрес этой таблицы содержится в регистре LDTR.

Для того, чтобы определить базовый адрес сегмента, микропроцессор должен несколько раз обратиться к памяти. Очевидно, что при этом уменьшается производительность микропроцессора, причем в достаточно большой степени. Чтобы избежать этого, в микропроцессоре имеются ассоциированные регистры, предназначенные для хранения дескрипторов. Длина этих регистров равна 8 байтам и они называются теневыми, поскольку эти регистры являются недоступными для программистов. Эти 8-байтные регистры ассоциируются с сегментными регистрами и регистром LDTR.

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

Кроме базового адреса сегмента и предела дескриптор содержит байт прав доступа (Access Right), в связи с чем этот байт называется байтом AR. Формат этого байта показан на рис.2.

Седьмой разряд P в этом байте называется битом присутствия и он обозначает (если этот разряд равен 1), что данный дескриптор находится в памяти. Разряды 6 и 5 называются разрядами DPL (Descriptor Privilege Level) и они указывают уровень привилегий данного сегмента.

Четвертый разряд показывает, относится ли данный дескриптор к сегменту, или же он характеризует системный объект (например, локальную таблицу дескрипторов): если этот разряд равен 1, то данный дескриптор относится к сегменту.