Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASKS_lektsii_chast_3_1.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
2 Мб
Скачать
☆

Регистры дескрипторов таблиц и системных сегментов

Механизм использования глобальной и локальной таблиц дескрипторов

Размеры таблиц:

  • GDT, LDT – (8-64К) байт / (1-8К) элементов;

  • IDT – (256-2К) байт.

С каждой из таблиц ассоциирован соответствующий регистр процессора. Для занесения в регистры GDTR и IDTR базового адреса и лимита своей таблицы используются привилегированные команды LGDT и LIDT, соответственно.

Системные сегменты предназначены для хранения:

  • _____________ _________ __________________;

  • _____________ _______ (TSS – Task State Segment).

Привилегии

Определяют возможность:

  • __________ _ __________________;

  • выполнения _________________________ _______________.

С истема привилегий – иерархическая четырехуровневая.

Уровни привилегий:

  • нумеруются от 0 (неограниченные возможности доступа) до 3;

  • применимы к:

  • дескрипторам;

  • селекторам;

  • задачам;

  • операциям ввода-вывода.

Кольца защиты Привилегии задач (Task Privilege)

Оказывают влияние на _______________ _______________ _ ___________________ __________________.

Текущий уровень привилегий задачи CPL (Current Privilege Level) определяется двумя младшими битами регистра CS.

Задача, выполняемая на нулевом уровне привилегий, имеет доступ ко всем сегментам, описанным в GDT, и является самой _________________________.

Задача, выполняемая на уровне 3, имеет самые __________________ права доступа.

CPL может изменяться только при передаче управления к новому сегменту через дескриптор шлюза.

При инициации задачи с помощью механизма переключения задач ее выполнение начинается на уровне CPL, указанном _______________ ____________ ____________ _ ____.

Привилегии дескриптора (Descriptor Privilege)

Задаются полем DPL байта управления доступом.

DPL определяет _______________ _______ уровня привилегий, с которым возможен доступ к данному дескриптору (за исключением дескриптора LDT):

  • наиболее защищенный дескриптор – DPL=_, доступен только задачам с ____=_;

  • наименее защищенный дескриптор – DPL=_, доступен задачам с _______ ____.

Привилегии селектора (Selector Privilege)

Задаются полем RPL (Requested Privilege Level) _____________.

С помощью RPL можно «урезать» эффективный уровень привилегий EPL (Effective Privilege Level): ____ = ____ {____; ____}.

Селектор с RPL=_ не вводит дополнительных ограничений.

Привилегии ввода-вывода

Задаются полем IOPL (Input/Output Privelege Level) ____________ _________.

Определяют возможность:

  • выполнения операций ввода-вывода;

  • управления флагом прерываний IF.

Правила:

  • CPL_IOPL – ограничений нет;

  • CPL_IOPL:

  • для 386+ используется карта разрешения ввода-вывода в TSS. Обращение к портам, которым соответствуют _____________ биты карты или которые ___ _________ в карту, à #GP;

  • инструкции CLI, STI à #GP. Попытка неявного управления* флагом IF блокируется без генерации исключений.

Модификация IOPL возможна только ____ ____=_.

Защита памяти

Назначение защиты памяти

Предотвращение следующих действий:

  • использование сегментов ___ ___ _______________;

  • нарушение ______ __________;

  • адресация к элементам, выходящим за _________ ____________;

  • изменение содержимого _________ __________________ при отсутствии достаточных привилегий.

Принципы реализации

1. Основана на сегментации.

2. Максимальный размер сегмента – 4 Гбайт.

3. Процессор может обращаться только к тем сегментам памяти, для которых имеются дескрипторы в таблицах.

4. Дескрипторы выбираются с помощью 16-битных селекторов, программно-загружаемых в сегментные регистры.

Механизм управления доступом к памяти

Дескрипторы сегмента данных и сегмента кода

С (Conforming) – подчиненность:

  • 1 – код может исполняться, если CPL_DPL;

  • 0 – управление к данному (неподчиненному) сегменту может передаваться только при CPL_DPL;

R (Readable) – разрешение чтения сегмента*:

  • 1 – разрешено;

  • 0 – запрещено.

*Запись в сегмент кода возможна через псевдоним (Alias) – сегмент данных с разрешенной записью, имеющий те же значения ______ _ _________.

Е (Expandable Down) – направление расширения:

  • 0 – вверх (смещение не должно превышать значения лимита);

  • 1 – вниз (стек, у которого смещение должно превышать значение лимита);

W (Writeable) – разрешение записи:

  • 1 – запись данных в сегмент разрешена;

  • 0 – запрещена;

A (Accessed) – обращение:

  • 0 – к сегменту не было обращения;

  • 1 – селектор данного сегмента _______________ _ __________ сегмента или для него выполнялась __________ __________________;

Type – специфические возможности сегмента.

Р (Present) – присутствие сегмента в памяти:

  • 1 – сегмент отображен в физической памяти;

  • 0 – отображения нет, поля базового адреса и лимита не используются;

Бит B/D – определяет для сегментов:

  • _________ (включая стек), расширяемых вниз (Е=1) – верхнюю границу сегмента:

  • В=0 – 0FFFFh (64 Кбайт);

  • В=1 – 0FFFFFFFFh (4 Гбайт).

  • _______ – разрядность указателя стека:

  • В=0 – 16-битный SP, 16-битные данные при операциях PUSH, POP;

  • В=1 – 32-битный ESP, 32-битные данные при операциях PUSH, POP.

  • ______ (бит D – Default Operation Size) – разрядность адресов и операндов по умолчанию:

  • D=0 – 16 бит;

  • D=1 – 32 бит.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]