Descriptor Priority Level(DPL) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Descriptor Priority Level(DPL)



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

1) системные – используются ОС и недоступны пользователю (рис)

2) кодовые – содержат коды выполняемых программ (рис)

С – подчиненный или неподчиненный кодовый сегмент

R – доступен ли подчиненный сегмент для чтения

А – используется ОС для оценки частоты использования данного сегмента. При загрузке сегмента в память бит А обнуляется, а при каждом обращении к сегменту в этот бит записывается 1.

Периодически ОС просматривает бит А у всех сегментов, расположенных в памяти и обнуляет их, если возникает ситуация, когда свободного места в памяти нет, а в память необходимо загрузить сегмент.

3) сегменты данных – используются под стек (рис)

W определяет возможность записи данных в сегмент. Если =0, то сегмент можно только читать.

К – то же значение, что и А

Все дескрипторы сегментов объединены в таблицу дескрипторов сегментов. Существует 2 тип таблиц дескрипторов сегментов: GDT – глобальная таблица дескрипторов – содержит дескрипторы сегментов ОС и сегментов, общих для всех выполняемых процессов; LDT – локальная таблица дескрипторов - каждый выполняемый процесс имеет свою таблицу дескрипторов. В такой системе может присутствовать 1 GDT и несколько LDT. И GDT, и LDT занимают по 64 Кб и могут содержать до 8192 дескрипторов сегментов.

В системе существуют специальные регистры для ссылок на эти таблицы: GDTR (рис). Кроме этого существует регистр LDTR, который содержит ссылку на дескриптор, описывающий сегмент под текущий LDT – таблицу локальных дескрипторов, выполняемого в данный момент процесса. Т о в каждый конкретныйелано для совместимости с предыдущей версией (рис)

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

LDT создается ОС в момент запускания процесса. (рис)

В защищенном режиме регистр сегментов, содержащих специальную структуру данных – селектор. (рис)

RPL используется для защиты памяти

Бит Т определяет какую таблицу нужно использовать для адресации сегментов.

Индекс определяет номер дескриптора в этой таблице.

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

1) из регистра сегментов извлекается селектор и по биту Т селектора определяется какую таблицу необходимо использовать

2) из регистра GDTR извлекается адрес начала таблицы GDT и к нему добавляется индекс селектора * 8

3)по вычисленному адресу извлекается дескриптор. Над ним выполняется ряд проверок:

а) проверяется бит Т: если Т=0, то сегмента в памяти нети вырабатывается прерывание по отсутствию сегмента памяти

б) анализируется приоритет сегмента и определяется можно ли к сегменту разрешить доступ. Если нет – вырабатывается прерывание по защите памяти

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

г) из дескриптора считывается размер сегмента и сравнивается со смещением виртуального адреса. Если смещение > размера сегмента, вырабатывается прерывание по защите памяти, в противном случае доступ к сегментам разрешен.

д) из дескриптора извлекается базовый адрес начала сегмента и к нему прибавляется в смещение виртуальный адрес. В результате получается 32разрядный физический адрес??? байта. Из регистра GDT будет извлекаться адрес GDT и к нему будет добавляться индекс из регистра GDTR. В результате получим адрес-начало. По полученному адресу извлекается дескриптор, базовый адрес которого задает адрес начала GDT???. К базовому адресу GDT добавляется индекс из селекторного регистра сегментов +8. В результате получаем адрес дескриптора GDT и извлекаем его.

ВА(селектор, смещение)->РА(32р адрес)

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

 



Поделиться:


Последнее изменение этой страницы: 2017-02-06; просмотров: 195; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.2.15 (0.007 с.)