![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Виртуальный адрес представлен селектором и смещением. Селектор находится в одном из сегментном регистре, смещение определяется в машинной команде.
Рассмотрим случай, когда виртуальный адрес относится к одному из сегментов, дескриптор которого содержится в глобальной таблице, то есть это системный или общий сегмент.
1. Виртуальный адрес показывает, что сегмент описан в глобальной таблице. Адрес глобальной таблицы содержится в системном регистре GDTR. Процессор складывает базовый адрес таблицы, взятый из регистра GDTR и значением поля индекса в селекторе (с номером сегмента). В результате определяется физический адрес дескриптора сегмента, к которому относится виртуальный адрес.
2. По этому адресу считывается дескриптор нужного сегмента;
3. Выполняется проверка возможности выполнения заданной операции:
- Проверяется правильность адреса, сравнивается смещение и размер сегмента, в случае выхода за границы сегмента происходит прерывание;
- Проверяются права доступа к данному сегменту (чтение или запись);
- Проверяется наличие сегмента в физической памяти по биту Р, если сегмента нет – то прерывание (страничный отказ);
4. Если все три условия выполнены, то доступ по данному виртуальному адресу разрешен. Складывается базовый адрес сегмента, определенный по дескриптору, и смещение, определяемое по машинной команде. В результате получается физический адрес, по которому выполняется запрос.
Если селектор сегмента указывает на локальную таблицу, то есть это пользовательский процесс, то необходимо определить базовый адрес локальной таблицы.
Регистр LDTR содержит не адрес локальной таблицы, а ее смещение в глобальной таблице. Для определения базового адреса локальной таблицы складывается базовый адрес глобальной таблицы и смещение локальной таблицы. Далее все происходит аналогично.
Виртуальное адресное пространство | Физическое адресное пространство | |||||
Селектор 13 бит | Смещение 32 бита |
FFFFFFFF | Сегмент N | селектор | GDT | ||||
GDTR | База размер | ||||||
FFFFFFFF | Сегмент M | Дескриптор LDT | Сегмент M | ||||
LDTR | |||||||
База размер | |||||||
FFFFFFFF | Сегмент 1 | отображение | |||||
LDT База размер | Сегмент N |
Дата публикования: 2014-12-08; Прочитано: 503 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!