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

11. Дескрипторные таблицы idt, ldt, gdt.

Для удобства работы МП с информацией о сегментах все дескрипторы собраны в одном месте – в дескрипторной таблице. Порядок размещения дескрипторов в таблице не играет роли. А максимальное число дескрипторов равно 8192, так как максимальный размер таблицы дескрипторов 64К, а размер дескриптора 8 байт.

Микропроцессором используются таблицы трёх типов: GDT – глобальная дескрипторная таблица – это главная общесистемная таблица, которую используют все задачи, так как GDT хранит дескрипторы всех, имеющихся в ОП сегментов. Для локализации таблицы GDT используется 48 разрядный регистр GDTR (см. выше), в котором находится 32 битное поле базового адреса таблицы и 16 битное поле предела таблицы.

IDT – таблица дескрипторов прерываний. Общесистемная таблица, но содержит дескрипторы специальных системных объектов – прерываний, называемых шлюзами, которые определяют точки входа процедур обработки прерываний. Таблица IDT служит заменой таблицы векторов прерываний МП 8086. Для локализации таблицы IDT используется регистр IDTR, формат которого аналогичен регистру GDTR.

LDT – локальная таблица дескрипторов. Для каждой задачи в дополнение к GDT можно построить LDT, которая будет определять сегменты, только доступные этой конкретной задаче. Для локализации LDT используется 16 битный LDTR, который содержит только селектор, выбирающий из таблицы GDT специальный дескриптор, описывающий вновь созданную LDT.

Если регистры GDTR и IDTR загружаются в самом начале работы системы и далее не меняются, то таблицы LDT создаются по мере необходимости. Причём в любом свободном сегменте физической ОП. Для доступа к этим регистрам введены специальные команды, которые доступны программам с наивысшем уровнем привилегии (процедурам ОС):

10. Формат дескриптора сегмента.

Базовй

Адрес

31-24

G

D

X

U

Предел

19-16

Р

DPL

S

Тип

А

Базовый

Адрес

23-16

Базовый адрес 15-0

Предел 15-0

Это 8 байтовая структура данных.

Базовый адрес 32 разрядное поле занимает байты 2,3,4,7. Он определяет начальный адрес сегмента в линейном адресном пространстве 4 гб. Предел 20 битное поле, которое называется границей сегмента. Занимает байты 0,1 и 4 младших бита 6 байта. Размер элементов сегмента задает специальный бит гранулчрности G в дескрипторе. Элементами сегмента могут быть байты или страницы, если разрешено страничное преобразование. А) Сегмент с байтовой гранулярностью(G=0) измеряется в байтах и его максимальный размер 1 мб, т.к поле предела FFFFF 20 бит. Б) Сегмент со страничной гранулярностью(G=1). Измеряется в страницах и имеет максимальный размер 1 мб страниц, т.е. 1 мб х 4 кб(размер страницы)=4 гб.

Права доступа AR-Access Rights – 5 байт дескриптора.

P(Present) – байт присутствия. При Р=1 сегмент находится в физической ОП и МП может с ним работать При Р=0 сегмент находится на жестком диске и для МП как временно неприсутствующий. ОС копирует запрашиваемый сегмент в физическую ОП с диска изменяя в дескрипторе базовый адрес сегмента и устанавливая Р в 1. Подкачка сегментов с диска называется свопингом(SWAPPING).

DPL(Descriptor Priviligi Level) 2 бита – уровень привилегий дескриптора 22=4 уровня. 00 -наивысший, 11-наименьший.

S(Segment System) – если S=1, то данный дескриптор описывает сегмент памяти, если S=0, то системный объект, т.е. либо локальную дескрипторную таблицу, либо TSS.

Тип – 3 бита указывает на целевое использование сегмента. 000-сегмент данных только чт., 001-сегмент данных чт. и зап., 010-сегмент стека чт., 011-сегмент стекачт. и зап., 100-сегмент кода выполнение, 101-сегмент кода выполнение и считывание, 110-подчиненный сегмент кода выполнение, 111-подчиненный сегмент кода выполнение и чтение.

A(Accessed)-бит доступа. А=1 когда идет фактическое боращение к сегменту, описываемому этим сегментом.

Доп. поля: G-гранулярность, D(Default Size)-бит размера по умолчанию. D=0-операнды в сегменте 16 битные, D=1- 32 битные. Х-резерв Х=0 всегда. U-бит пользователя. МП не использу

ется.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]