Файл: Отчет По практическому занятию 1 Дисциплина мдк 01. 01 Системное программирование Выполнил студент 3.docx
Добавлен: 29.10.2023
Просмотров: 78
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Выведение информации о базовом адресе сегмента и его размере на уровень процессора позволяет аппаратно контролировать, как программы работают с памятью, и предотвращать обращения к адресам, находящимся вне сегмента.Другой аспект защиты заключается в том, что сегменты неравноправны в правах доступа к ним. Информация об этом содержится в специальном байте AR, входящем в состав дескриптора. Тип сегмента определяют следующие элементы байта AR: поле DPL, биты R/W, C/ED и I. Поле DPL — часть механизма защиты по привилегиям. Суть его выражается тем, что конкретный сегмент может находиться на одном из четырех уровней привилегированности с номерами 0, 1, 2 и 3. Максимум поблажек предоставляется уровню 0. Существует ряд ограничений (опять-таки на аппаратном уровне) на взаимодействие сегментов кода, данных и стека с различными уровнями привилегий.Таким образом, в защищенном режиме перед использованием любой области памяти должна быть проведена определенная работа по инициализации соответствующего дескриптора. Эту работу выполняет операционная система или программа, сегменты которой также описываются подобными дескрипторами. Все дескрипторы собираются вместе в одну из трех таблиц:
-
глобальная таблица дескрипторов (Global Descriptor Table, GDT), адрес которой хранится в регистре GDTR; -
локальная таблица дескрипторов (Local Descriptor Table, LDT), ее адрес находится в регистре LDTR; -
таблица дескрипторов векторов прерываний (Interrupt Descriptor Table, IDT), ее адрес хранится в регистре IDTR.
-
Как в защищенном режиме программа может обратиться по любому линейному адресу памяти?
-
сегменты бесконтрольно размещаются с любого адреса, кратного 16 (так как содержимое сегментного регистра аппаратно смещается на 4 разряда), и, как следствие, программа может обращаться по любым адресам, в том числе и реально не существующим; -
сегменты имеют максимальный размер 64 Кбайт; -
сегменты могут перекрываться с другими сегментами.
-
В каких пределах расположение сегмента можно задать в защищенном режиме?
-
Каким образом удается сделать так, что сегменты неравноправны в правах доступа к ним?
-
Что хранится в регистрах: GDTR, LDTR, IDTR?
-
глобальная таблица дескрипторов (Global Descriptor Table, GDT), адрес которой хранится в регистре GDTR; -
локальная таблица дескрипторов (Local Descriptor Table, LDT), ее адрес находится в регистре LDTR; -
таблица дескрипторов векторов прерываний (Interrupt Descriptor Table, IDT), ее адрес хранится в регистре IDTR.