Средства поддержки сегментной организации памяти в процессорах Пентиум

(собственно ответ на билет)

Процессор Пентиум – 32 разрядный, поэтому максимальный размер физической ОП, на которую он может отображать ВАП – 4 гига.

Процессор Пентиум может поддерживать как сегментную, так и сегментно-страничную организацию памяти.

· Сегментные средства работают всегда (верхний уровень);

· Страничные средства могут быть вкл/выкл (это нижний уровень);

Это делается в управляющем регистре CR0 – путем установки однобитного признака PE (Paging Enabling) в 0/1.

Итак, Пентиум работает в сегментном режиме.

1. У него есть ВАП, поделенный на СЕГМЕНТЫ.

2. У каждого сегмента есть описание – ДЕСКРИПТОР СЕГМЕНТА.

Формат дескриптора сегмента (размер – 8 байт)

Структура у дескриптора немного странная, это все пережитки истории.

Но в целом основные поля:

3. База – занимает 32 бита (4 байта) – содержит базовый адрес сегмента.

На рисунке желтая, видно, что состоит из 3 частей

4. Размер – занимает 24 бита (3 байта)

§ Поле G – единица измерения:

- 0 – байты (максимальный р-р сегмента – 64 кб)

- 1 – страницы по 4 кб

5. 5-й байт дескриптора (в красной рамке – байт доступа). – 8 бит (1 байт)

Он содержит:

§ Бит присутствия Р (1 бит):

o - 0 – сегмент не в памяти,

o - 1 – в памяти

§ DPL (Descriptor Privilege Level) – уровень привилегий для доступа к дескриптору (2 бит)

§ 5 бит – поля типа сегмента:

o - сегмент данных

o - сегмент кода

o - системный сегмент (GDT, TSS)

o И способ использования сегмента (чтение, запись, выполнение)

3. Дескрипторы объединяются в ТАБЛИЦЫ ДЕСКРИПТОРОВ (2 типа):

· Глобальная таблица дескрипторов(GDT) – сегменты межпроцессного взаимодействия, сегменты ОС, общие сегменты для всех процессов

· Локальная таблица дескрипторов (LDT) – у каждого процесса своя.

· (IDT – Interrupt Descriptor Table – таблица дескрипторов прерываний – используется системой прерываний для их обработки )

GDT – одна

LDT – столько, сколько процессов, при этом в каждый момент времени используется только одна.

Таблицы GDT и LDT размещены в памяти в виде отдельных сегментов.

Таблица GDT кроме всего прочего, хранит в себе данные о себе самой и обо всех LDT.

Адреса GDT и LDT хранятся в регистрах системных адресов GDTR и LDTR соответственно.

В GDTR хранится 32 разрядный физический адрес

В LDTR – индекс дескриптора в таблице GDT, а уже адрес нужной LDT берется из этой записи.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: