Преобразование виртуального адреса в физический адрес

 

Процесс обращается к физической памяти по виртуальному адресу, который представляет собой пару чисел: селектор и смещение. Селектор однозначно определяет виртуальный сегмент, к которому принадлежит искомый адрес, то есть это номер сегмента. Номер сегмента находится в соответствующем сегментном регистре. Смещение определяет положение искомого адреса относительно начала сегмента. Смещение определяется по полю машинной команды.

Формат селектора

13 1 2

Индекс (номер сегмента)   0 /1  

15 2 0 уровень привилегий DPL

от 0 до 3

 

указатель типа таблицы

0 : GDT 1 : LDT

Виртуальное адресное пространство процесса складывается из всех сегментов, описанных в общей для всех процессов глобальной таблице, и сегментов, описанных в его собственной локальной таблице. Максимальное число сегментов каждого типа может быть 8192 (2 13 ), то есть всего 16 384. С учетом максимального размера сегмента 4 Гбайта – каждый процесс при чисто сегментной организации виртуальной памяти может работать в виртуальном адресном пространстве в 64 Тбайта. Таким образом, виртуальное пространство в 64 Тбайта может быть отображено на физическое пространство размером в 4 Гбайта.