Дескрипторные таблицы.
Начиная с процессоров i386, допускается любое число сегментов памяти. Описывающие сегменты дескрипторы позволяют процессору следить за информацией о сегментах. Поэтому все дескрипторы располагаются в одном месте. Первые варианты дескрипторов реализовывались аппаратно, а потом стали размещать в ОП. Эта область памяти получила название дескрипторных таблиц. Дескрипторные таблицы делятся на 3 типа, отличающиеся способом использования:
1) GDT (global descriptor table) – глобальные дескрипторные таблицы. Это общесистемная таблица. Ее могут использовать все задачи. Для локализации GDT используется специальный регистр GDTR, в котором находится 32-х битное поле линейного базового адреса таблицы и 16-ти битное поле предела с битной гранулярностью. Значение предела L связано с числом дескрипторов N соотношением L=8*N-1.
2) IDT (interrupt descriptor table) – дескрипторная таблица прерываний. Она содержит дескрипторы специальных системных объектов. Эти объекты называются шлюзами и определяют точки входа процедур обработки прерываний и особых случаев. Данная таблица служит заменой таблицы векторов прерываний. Для локализации таблицы IDT служит системный регистр IDTR. Его формат аналогичен формату регистра GDTR.
Для перевода микропроцессоров в реальный режим необходимо создать обе дескрипторные таблицы и инициировать соответствующие системные регистры.
3) LDT (local descriptor table) – локальные дескрипторные таблицы. Используются в мультизадачной системе для каждой задачи в дополнение к глобальной дескрипторной таблице, она определяет сегменты доступные только этой системной задаче. Для локализации LDT предназначен 16-ти разрядный регистр LDTR, который содержит только селектор.
GDTR и IDTR определяются при загрузке базового адреса и пределов и выполняется только один раз при подготовке микропроцессора к заданному режиму работы (например R режим) и в дальнейшем содержимое регистров не меняется. Участки ОП в которых содержатся первые две дескрипторные таблицы не могут участвовать в свопинге (удаляться на жесткий диск). LDT не является необходимой и создается по мере необходимости. Для хранения LDT используются сегменты памяти, а их дескрипторы хранятся в GDT.
Формирование линейного адреса через дескрипторные таблицы.
В микропроцессорах начиная с i386 формирование линейного адреса выполняется двумя способами: 1) 16-ти битная адресация; 2) 32-х адресная адресация.
Дата добавления: 2017-04-20; просмотров: 939;