Каждый сегмент в защищенном режиме должен иметь соответствующую ему структуру данных наз. дескриптором. Дескриптор (describe - описать) содержит основные характеристики соответствующего ему сегмента памяти. Каждый дескриптор состоит из 8байт (т.е. 64 разряда).
Формат дескриптора:
63 | 47 | 32 | |||||
БА | G | D | X | U | Предел | AR | БА |
31 | 15 | 0 | |||||
БА | предел |
Предел – 20бит отводится для хранения max размера сегмента.
БА (базовый адрес) – 32 бита (2,3,4,7 байты) хранят базовый адрес соответствующего сегмента – линейный БА.
G - бит градуальности, определяет единицу счета этого предела (при 0 – байты; при 1- страницы (4Кб))
D – введен для совместимости режима работы 80286 процессора. (при 0 - = 32 бита; при 1 - = 16 бит)
X – резервный бит
U – user пользовательский бит
AR – байт прав доступа, определяет права сегмента и его назначение.
Опишите состав поля байта прав доступа (AR) дескриптора сигмента
AR – байт прав доступа, определяет права сегмента и его назначение.
|
|
Формат AR:
P | DPL | S | Тип | А |
А – бит доступа. Используется для операционной с-мы для подсчета кол-ва обращений к сегменту, при этом надо учитывать что при обнулении этого бита должна заполнится ОС.
Устанавливается в 1 – при обращении к данному сегменту (процессор этот бит устанавливает автоматически).
Тип – определяет назначении и характер данных хранящихся в данном сегменте.
состоит из 3-х бит:
1-й бит определяет при 0 – сегмент данных, при 1- сегмент кода
I – этот бит наз бит расширения вниз (при 0 – сегмент данных, при 1 - стека)
II – этот бит определяет режим доступа к данным (о – доступ чтения и запись данных в этот сегмент; 1 – только чтение)
III - это бит подчиненности (0 – обычный кодовый сегмент; 1 – подчиненный кодовый сегмент)
IV - этот бит определяет при 0 – чтение исполнения, при 1 – только исполнение.
S – бит системы. Если
=0 – то дескриптор описывает системный объект который может явл сегментом памяти, а может и не явл-ся;
=1 – то сегмент пользовательский.
DPL – уровень привилегий соответствующего сегмента. Определяет 1-н из 4-х уровней привилегий, используется в механизме защиты.
Р – бит присутствия (present). Определяет находится ли этот сегмент в физической ОП, либо отсутствует. Если его нет, то он находится на жестком диске. Если осущ-ся обращение к не присутствующему в памяти сегменту(Р=0) то процессор генерирует особый случай не присутствия, и обработчик находит отсутствующий в памяти сегмент и загружает его в ОП, устанавливая бит Р в 1. при этом может потребоваться выгрузка из ОП ненужного на данный момент субъекта для освобождения места.