Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Формирование абсолютного адреса в защищенном режиме

Основная идея защищенного режима – защитить исполняемые процессором программы от взаимного влияния. В защищенном режиме процессор поддерживает два типа защиты – по привилегиям и по доступу к памяти.

Любой сегмент памяти в защищенном режиме имеет следующие атрибуты:

· расположение сегмента в памяти;

· размер сегмента;

· уровень привилегий (определяет права данного сегмента относительно других сегментов);

· тип доступа (определяет назначение сегмента) и некоторые другие.

В отличие от реального режима, в защищенном режиме программа уже не может просто обратиться по любому абсолютному адресу памяти.

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

В структуру дескриптора сегмента входят следующие поля дескриптора сегмента:

limit_l и limit_2 – 20-разрядное поле, определяющее размер сегмента;

base_l и base_2 – 32-разрядное поле, определяющее значение линейного адреса начала сегмента в памяти;

AR – байт, поля которого определяют права доступа к сегменту;

D – бит разрядности операндов и адресов;

G – бит гранулярности.

Защищенный режим впервые появился в процессоре i80286. Этот процессор имел 24-разрядную адресную шину, соответственно, мог адресовать в защищенном режиме до 16 Мбайт оперативной памяти. Для этого ему достаточно было иметь в дескрипторе поле базового адреса 24 бита и поле размера сегмента 16 битов.

Рис. 5. Структура дескрипторов сегмента защищенного
режима процессора

После появления процессора 80386 с 32-разрядной шиной команд и данных в целях совместимости программ разработчики не стали менять формат дескриптора, а просто использовали свободные поля. Внутри процессора эти поля объединены.

В защищенном режиме размер сегмента не фиксирован, его расположение можно задать в пределах 4 Гбайт. Как это возможно, если суммарный размер поля размера сегмента составляет всего 20 битов, что соответствует величине 1 Мбайт?

Секрет крыт в поле гранулярности – бит G (см. рис.6). Если G = 0, то значение в поле размера сегмента означает размер сегмента в байтах, если G = 1, – то в страницах, размер страницы составляет 4 Кбайт. Когда максимальное значение поля размера сегмента составляет OFFFFFh, то это соответствует величине 1 М х 4 Кбайт = 4 Гбайт.

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

Наиболее важные поля байта AR – это dpi и биты R/W, C/ED и I, которые вместе определяют тип сегмента. Поле dpi – часть механизма защиты по привилегиям. Суть этого механизма заключается в том, что конкретный сегмент может находиться на одном из четырех уровней привилегированности с номерами 0, 1, 2 и 3. Самым привилегированным является уровень 0. Существует ряд ограничений (на аппаратном уровне) на взаимодействие сегментов кода, данных и стека с различными уровнями привилегий.

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

1. глобальная дескрипторная таблица (Global Descriptor Table, GDT), ее адрес хранится в регистре GDTR;

2. локальная дескрипторная таблица (Local Descriptor Table, LDT), ее адрес хранится в регистре LDTR;

3. дескрипторная таблица векторов прерываний (Interrupt Descriptor Table, IDT), ее адрес хранится в регистре IDTR.

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

Схема 1

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

<== предыдущая лекция | следующая лекция ==>
Формирование абсолютного адреса в реальном режиме | Система прерываний программ ЭВМ
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 472; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.