
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) |
|
|
ПРИВИЛЕГИЙ |
|
|
|
|
|
|
|
|
|
|
|

Дескриптор шлюза вызова