- •Архитектура системного уровня процессоров ia-32 Задачи архитектуры системного уровня (system-level architecture)
- •Компоненты архитектуры системного уровня
- •Защищенный режим Общие сведениия Назначение защищенного режима микропроцессоров ia-32
- •Режим виртуального процессора 8086
- •Концепция защиты
- •Дескрипторы и таблицы дескрипторов. Системные сегменты
- •Кольца защиты Привилегии задач (Task Privilege)
- •Привилегии дескриптора (Descriptor Privilege)
- •Привилегии селектора (Selector Privilege)
- •Привилегии ввода-вывода
- •Регистры дескрипторов таблиц и системных сегментов
- •Механизм использования глобальной и локальной таблиц дескрипторов
- •Привилегии
- •Дескрипторы системных сегментов
- •Поля байта управления доступом к системным сегментам
- •Межсегментная передача управления
- •Типы и назначение шлюзов
- •Механизм использования шлюза вызова
- •Дескриптор шлюза вызова
- •Поля байта управления доступом дескриптора шлюза
- •Проверка условий, порождающих исключения
- •Инструкции тестирования указателей
- •Виртуальная память
- •Составляющие элементы механизма страничной переадресации
- •Адресация в защищенном режиме
- •Варианты организации страниц виртуальной памяти
- •Управление режимом страничной переадресации
- •Переключение стека
- •Операция переключения задач процессора (Task Switch Operation)
- •Переключение между реальным и защищенным режимами
- •Переключение в защищенный режим из реального:
- •Переключение процессора в реальный режим из защищенного
- •Регистры управления cr1, cr2, cr3
- •Регистр управления cr4
- •Управление прерываниями от fpu
- •Управление блоком fpu
- •Средства отладки по
- •Регистры отладки
- •Средства, предоставляющие дополнительные возможности отладки.
- •Регистр DebugCtlMsr:
- •Режим управления системой (smm)
- •Включение режима
- •Карта контекста процессора в smram
- •Идентификатор smm (Revision Identifier)
- •Базовый адрес smram
- •Некорректность восстановления контекста
- •Инициализация регистров процессора при входе в smm
- •Начальный сброс и тестирование Аппаратный сброс (hardware reset)
- •Установки при сбросе
- •Внутренний тест процессора
- •Начало нормального функционирования процессора
- •Инициализация по сигналу init («мягкий» сброс)
- •Тестирование аппаратных средств процессора
Регистры дескрипторов таблиц и системных сегментов
Механизм использования глобальной и локальной таблиц дескрипторов
Размеры таблиц:
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 бит.
