Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
A_K_3.doc
Скачиваний:
4
Добавлен:
18.11.2019
Размер:
286.72 Кб
Скачать

3.1 Вычисление физического (исполнительного) адреса в виртуальном режиме

Память компьютера может быть поделена на один или несколько сегментов различной длины, которые могут подкачиваться с диска или использоваться совместно несколькими программами. Память может также делится на одну или несколько 4-х Килобайтовых страниц. Сегментация и страничная организация могут использоваться совместно, обеспечивая преимущества обоих методов. Эти методы являются взаимодополняющими. Сегментирование удобно для прикладных программистов, работающих с логическими адресами, тогда как страничная адресация – для системных программистов, управляющих физической памятью.

МП 286+ имеют три типа адресов:

  • ЛОГИЧЕСКИЙ (виртуальный);

  • ИСПОЛНИТЕЛЬНЫЙ (линеаризованный);

  • ФИЗИЧЕСКИЙ.

ЛОГИЧЕСКИЙ (ВИРТУАЛЬНЫЙ) АДРЕС включает селектор и смещение. СЕЛЕКТОР – содержимое сегментного регистра. СМЕЩЕНИЕ – это эффективный адрес – ЕА, т.е. сумма базы, индекса и смещения. Каждая задача может оперировать с 16 К (214 – 1) селекторами сегментов, каждый из которых может быть размером 4 ГБайт (232 Байт), создавая тем самым общее пространство 246 Байт (64 ТБайт) для задачи. Для МП I80286 размер сегмента может быть до 64 КБайта (216 Байт), а общее виртуальное пространство одной задачи может достигать 1 ГБайт (230 Байт).

С появлением 64-битовых расширений размер виртуальной памяти увеличился до 264 Байт.

Блок сегментации транслирует ЛОГИЧЕСКИЕ АДРЕСА в ИСПОЛНИТЕЛЬНЫЕ. Блок страничной адресации преобразует исполнительные адреса в физические. Если блок страничной адресации не используется (бит 31 в регистре управления CR0 сброшен: PG = 0), то исполнительный адрес является физическим. ФИЗИЧЕСКИМ называется АДРЕС НА КОНТАКТАХ ШИНЫ АДРЕСА ПРОЦЕССОРА. У МП I80286 отсутствует блок страничной адресации, поэтому исполнительный адрес является физическим.

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

При работе в РЕЖИМЕ ВИРТУАЛЬНОГО ПРОЦЕССОРА I8086 (VM 86) в качестве базового адреса также используется селектор, сдвинутый влево на 4 разряда. Формируемый в этом режиме эффективный адрес (внутрисегментное смещение) имеет 16 разрядов.

В ВИРТУАЛЬНОМ РЕЖИМЕ 32-х или 48-ми битовый указатель называется ВИРТУАЛЬНЫМ АДРЕСОМ. Он, как и ЛОГИЧЕСКИЙ АДРЕС в реальном режиме, состоит из 16-ти битового СЕЛЕКТОРА и СМЕЩЕНИЯ, длиной 16 или 32 бита. По-прежнему СЕЛЕКТОР определяет НАЧАЛЬНЫЙ (БАЗОВЫЙ) АДРЕС СЕГМЕНТА, к которому для получения физического адреса прибавляется СМЕЩЕНИЕ.

16-ти битовый СЕЛЕКТОР виртуального адреса (загружаемый в соответствующий сегментный регистр) состоит из трех полей (рис. 3.3):

  • RPL – ЗАПРАШИВАЕМЫЙ УРОВЕНЬ ПРИВИЛЕГИЙ – используется операционной системой для решения проблем защиты информации;

  • TI – ИНДИКАТОР ТАБЛИЦЫ – выбирает глобальную дескрипторную таблицу (GDT), если ТI = 0; эта единственная таблица GDT разделяется всеми задачами; если ТI = 1, то используется локальная дескрипторная таблица (LDT), причем каждая задача имеет свою LDT;

  • 13-ти битовое поле ИНДЕКСА содержит индекс (смещение или адрес) внутри выбранной таблицы.

ПОЛЕ ИНДЕКСА в селекторе служит индексом (смещением) выбранной таблицы. Каждый элемент таблицы называется ДЕСКРИПТОРОМ. Дескрипторы имеют длину 8 байт (64 бита). Поэтому адреса каждого дескриптора кратны 8 (содержат три нуля в младших битах). Таблица (GDT или LDT) может занимать в памяти полный сегмент размером до 64 КБайта.

Полученный из выбранного дескриптора 24-х битовый (для процессора I80286) или 32-х битовый (для МП 386+) БАЗОВЫЙ АДРЕС без сдвига суммируется с 16-ти или 32‑х битовым смещением, в результате чего получается 24-х битовый физический адрес ячейки памяти (для МП I80286) или 32-х битовый линейный адрес (для процессоров 386+) (см. рис, 3.3).

Так как имеющаяся в конкретном компьютере память обычно меньше, чем необходимая память для программ, в тех ситуациях, когда памяти компьютера не хватает, приходится привлекать методы организации ВИРТУАЛЬНОЙ ПАМЯТИ и внешние запоминающие устройства (дисковые накопители).

В любой момент времени в основной памяти компьютера находятся только несколько сегментов задачи. ОПЕРАЦИОННАЯ CИСТЕМА должна пересылать сегменты с диска в память, когда они потребуются, и возвращать их на диск, освобождая память, когда сегменты долго не используются.

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