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


Сегмент характеризуется такими параметрами


Download 384.49 Kb.
bet59/110
Sana18.06.2023
Hajmi384.49 Kb.
#1597764
1   ...   55   56   57   58   59   60   61   62   ...   110
Bog'liq
Answers

Сегмент характеризуется такими параметрами:


-размер;
-базовый адрес;
-права доступа к сегменту.
Эти параметры формируются в виде 8-байтовой структуры, называемой дескриптором сегмента.

Структура дескриптора сегмента:


7

6

5

4

3

2

1

0

Баз. адрес (31-24)

G

D/B

0

X

Граница (19-16)

Байт доступа

Базовый адрес (23-0)

Граница (15-0)

Граница сегмента = Размер сегмента-1.
Базовый адрес – это адрес, по которому сегмент находится в банке памяти.
X: бит программно доступен для пользователя.
D/B (Default/Big): D=0 – 16-разрядные данные, D=1 – 32-разрядные данные;
B=0 – размер стека = 64 Кбайт, B=1 – размер стека = 4 Гбайт.
G (Granularity): G= 0 – размер сегмента выражен в байтах, G = 1 – в 4-Кбайтовых страницах.
Байты доступа:

Сегмента кода



Сегмента данных

Системного сегмента

7

6

5

4

3

2

1

0

P

DPL

S=1

E=1

C

R

A




7

6

5

4

3

2

1

0

P

DPL

S=1

E=0

ED

W

A




7

6

5

4

3

2

1

0

P

DPL

S=0

TYPE




P(Present) P=1 – сегмент в памяти, P=0 – сегмент на диске

P

P

DPL–уровень защищенности сегмента 0 – высший, 3 - низший

DPL

DPL

S(System) S=1–несистемный сегмент, S=0 – системный сегмент

S=1

S=0

E(Execute) E=1–сегмент кода,E=0- сегмент стека

E=0

TYPE=1100 – шлюз;
TYPE=1110 – обработчик прерывания;
TYPE=1111 – обработчик ловушки

С(Conform) – бит подчинения (используется для шлюзов)

ED(Expand Down) ED=0 – сегмент данных, ED=1 – сегмент стека

R(Read) R=1 – сегмент можно читать, R=0 – нельзя читать

W(Write) W=1 – писать можно, W=0 – писать нельзя

A(Access) устанавливается аппаратно при доступе к сегменту

A

При программном описании дескриптор сегмента представляется в виде такой структуры:
t_descr = record
lim_l, {граница 15-0}
base_l: word; {база 15-0}
base_h, {база 23-16}
access, {байт доступа}
lim_h, {граница 23-16}
base_hh: byte; {база 31-24}
end;
gdt: array [0..n] of t_descr; {таблица GDT}

Схема формирования линейного адреса:



2.32. Обработка прерываний в защищенном режиме. Виды исключений. Формирование дескриптивный таблице прерываний


2.32. ОБРОБКА ПЕРЕРИВАНЬ В ЗАХИЩЕНОМУ РЕЖИМІ. ВИДИ ВИКЛЮЧЕНЬ. ФОРМУВАННЯ ДЕСКРИПТИВНОЇ ТАБЛИЦІ ПЕРЕРИВАНЬ.
Прерывания бывают программные (синхронные) и аппаратные (асинхронные).
Аппаратные прерывания делятся на внешние и внутренние (исключения).
Внешние прерывания бывают маскируемые и немаскируемые.
Исключения делятся на три группы:
1). Отказы (faults) – возникают при исполнении команд (например, деление на 0).
2). Ловушки (traps) – возникают после выполнения команд.
3). Выходы из режимов, процессов (abort) – не имеют точного места возникновения.
Механизм обработки прерываний микропроцессором:
1. Запоминает в стеке регистр флагов (EFLAGS), регистры CS и EIP.
2. Определяет номер прерывания по причине. Если прерывание внешнее – номер определяется по сигналу INTR путем обмена данными с контроллером прерываний. Если прерывание программное – номер определяется по команде.
3. Используя таблицу IDT, определяет адрес обработчика прерывания и загружает его в CS:EIP.
4. Выход из прерывания – по команде IRET.
При возникновении исключений № 8, 10-14, 17 микропроцессор заносит в стек 32-разрядный код ошибки.
Обработчики всех исключений, аппаратных и программных прерываний имеют свои дескрипторы, которые хранятся в IDT (Interrupt Descriptor Table).

Download 384.49 Kb.

Do'stlaringiz bilan baham:
1   ...   55   56   57   58   59   60   61   62   ...   110




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