Логический элемент


Защита памяти. Уровни привилегий. Особенности защиты сегментов данных, стеки, кода и устройств ввода / вывода


Download 384.49 Kb.
bet61/110
Sana18.06.2023
Hajmi384.49 Kb.
#1597764
1   ...   57   58   59   60   61   62   63   64   ...   110
Bog'liq
Answers

2. 34 Защита памяти. Уровни привилегий. Особенности защиты сегментов данных, стеки, кода и устройств ввода / вывода


2. 34 ЗАХИСТ ПАМ’ЯТІ. РІВНІ ПРИВІЛЕЇВ. ОСОБЛИВОСТІ ЗАХИСТУ СЕГМЕНТІВ ДАНИХ, СТЕКУ, КОДУ ТА ПРИСТРОЇВ ВВЕДЕННЯ/ВИВЕДЕННЯ.
Под защитой памяти понимается система правил, которые на аппаратном уровне регламентируют доступ к данным и командам в памяти в зависимости от их уровня защищенности и уровня привилегированности.

В микропроцессоре реализовано 4 уровня привилегий:


-0 - высший;
-1;
-2;
-3 - низший.
Защита памяти имеет дело с такими понятиями:
DPL (Descriptor Privilege Level) – уровень привилегированности сегмента. Находится в байте доступа дескриптора сегмента (биты 5-6).
RPL (Request Privilege Level) – запрашиваемый уровень привилегий. Находится в сегментном регистре (биты 0-1).
CPL (Current Privilege Level) – текущий уровень привилегий. Хранится в поле RPL регистра сегмента кода (CS).

Правила зашиты памяти:


1. Доступ к сегментам данных:
max (CPL, DPL) <= DPL.
Если принять CPL=RPL, то CPL <= DPL.
Т.е. уровень привилегий текущей задачи должен быть не ниже уровня привилегий необходимого сегмента данных.
2. Доступ к сегментам стека:
CPL=RPL=DPL.
Т.е. можно обращаться только к стеку с таким же уровнем привилегий, как и у текущей задачи.
3. Доступ к сегментам кода:
Для доступа к сегментам кода используются межсегментные команды JMP, CALL, RET.
а). Всегда одна программа может вызвать другую, если они находятся в одном кольце защиты.
б). Никогда программа с более высоким уровнем привилегий не может вызвать программу с более низким уровнем привилегий. Только в многозадачном режиме программа любого уровня может вызвать программу любого другого уровня.
в). Кроме двух описанных ниже случаев, программа с более низким уровнем привилегий не может вызвать программу с более высоким уровнем привилегий:
- вызов подчиненных программ (т.е. программ, которые имеют бит С=1 в байте доступа). Поле CPL не меняется.
- вызов программ через шлюз вызова. Допускается доступ не ко всей программе, а только к определенной разрешенной точке программы. Эта точка называется шлюзом. При этом программа будет работать на более высоком уровне привилегий.

Download 384.49 Kb.

Do'stlaringiz bilan baham:
1   ...   57   58   59   60   61   62   63   64   ...   110




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling