Lectures / 21-22
.pdf
Преобразование линейного адреса в
физический
Линейный адрес
10 10 12
Таблица
страниц
Директория
страниц
Адр.таблицы страниц
Адр.страничного кадра
DIR
cr3
Страничный
кадр
Физ.адрес
OFF-
SET
TABLE
Формирование физического адреса
Логический адрес
Линейный
адрес
Физический адрес
Сегментированная модель памяти
Операнд
Селектор сегмента
Смещение в сегменте
Сегменты в защищенном режиме
СЕГМЕНТНЫЕ |
|
Дескрипторы |
|
ФИЗИЧЕСКАЯ |
РЕГИСТРЫ |
|
сегментов |
|
ПАМЯТЬ |
Плоская модель памяти
СЕГМЕНТНЫЕ |
Дескрипторы |
ФИЗИЧЕСКАЯ |
РЕГИСТРЫ |
сегментов кода |
ПАМЯТЬ |
CS |
и данных |
|
SS |
Атриб. Лимит=MAX |
4G |
|
||
|
Атриб. Лимит=MAX |
|
|
База = 0 |
|
DS |
Атриб. Лимит=MAX |
|
База = 0 |
|
|
|
База = 0 |
|
ES |
|
|
FS |
|
|
GS |
|
0 |
Уровни сегментной защиты
Ядро ОС
Службы ОС (драйверы,…)
Уровень 0
Приложения
Уровень 1
Уровень 2
Уровень 3
Типы уровней привилегий
CPL (Current Privilege Level) текущий уровень привилегий. Хранится в битах 0-1 регистра CS, уровень привилегий исполняющегося кода.
DPL (Descriptor’s Privilege Level) уровень привилегий сегмента. Хранится в дескрипторе каждого сегмента.
RPL (Requestor Privilege Level) уровень привилегий запроса. Хранится в битах 0-1 каждого сегментного регистра.
Доступ к данным
Текущий сегментный регистр кода
Селектор сегмента операнда
DPL <= min (CPL, RPL)
Для сегмента стека: CPL = DPL = RPL
ПРОВЕРКА
ПРИВИЛЕГИЙ
Передача управления без шлюза
Дескриптор целевого сегмента кода
Текущий сегментный регистр кода
DPL = CPL |
|
|
|
|
|
ПРОВЕРКА |
|
||
или |
|
|
|
|
|
|
|
|
|
(бит С=1) и (DPL < CPL) |
|
|
ПРИВИЛЕГИЙ |
|
|
|
|
|
|
|
|
|
|
|
Дескриптор шлюза вызова
