Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AOS_otvety_1.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.29 Mб
Скачать
    1. Регистры сегментов

6 регистров – ссылаются на дескрипторы сегментов памяти:

  • CS – дескриптор кодового сегмента

  • SS – дескриптор сегмента стека

  • DS, ES, FS, GS – дескрипторы сегментов данных

Все они, кроме первого, доступны программно (туда можно загрузить новое значение с помощью команды);

Каждый сегмент хранит в себе СЕЛЕКТОР – 16-разрядное число.

Структура селектора:

12 разрядов

1 разряд

3 разряда

Индекс в таблице дескрипторов сегментов

Показывает, где находится дескриптор:

- в GDT

- в LDT

Поле RPL – уровень привилегий запроса к этому сегменту

    1. Указатель инструкций EIP – содержит смещение адреса текущей инструкции.

EIP + CS(из регистров сегментов) = виртуальный адрес инструкции.

    1. Регистр флагов (EFLAGS) – содержит признаки, характеризующие результат выполнения операции:

- флаг знака

- флаг нуля

- флаг переполнения

- флаг паритета

- флаг переноса и тд

- флаг разрешения аппаратных прерываний (разрешение аппаратных прерываний IF)

    1. Управляющие регистры:

5 управляющих регистров: CR0, CR1, CR2, CR3, CR4 – хранят данные об общем состоянии процессора.

CR0 – все основные признаки:

- реальный / защищенный режим

- вкл / выкл страничного механизма

- признаки, влияющие на работу кэша и выполнение команд с плавающей точкой

CR1 – зарезервирован

CR2 – линейный адрес страничного отказа

CR3 – физический адрес таблицы разделов

CR4 – работа архитектурных расширений (возможность использования страниц > 4 Мб)

    1. Регистры системных адресов

Адреса важных системных таблиц и структур, связанных с управлением процессами и памятью.

  • GDTRGlobal Descriptor Table Register – физический 32-разрядный адрес глобальной таблицы дескрипторов (GDT) – общая часть ВАП для всех процессов

  • IDTRInterrupt Descriptor Table Register – физический 32-разрядный адрес таблицы дескрипторов прерываний (IDT) – она используется для вызова процедур обработки прерываний.

+ В этих регистрах хранятся лимиты, ограничивающие размер этих таблиц.

  • TRtask registerиндекс дескриптора сегмента состояния задачи TSS (он в DTR лежит)

  • LDTR Local Descriptor Table Register – индекс дескриптора сегмента локальной таблицы дескриптора LDT (индивидуальная часть ВАП процесса);

    1. Регистры отладки и тестирования

Регистры отладки – значения точек останова

Регистры тестирования – проверка корректности работы внутренних блоков процессора.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Он содержит:

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

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

    • - 1 – в памяти

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

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

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

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

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

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

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

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

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

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

GDT – одна

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

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

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]