Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Виртуальное адресное пространство и способы представления памяти. Разрывные способы распределения памяти.



В современных компах комбинация сегментной и страничной адресации. Непрерывное пространство лин. адресов памяти разбивается на страницы фиксированного размера (обычно 4 Кб (4096 или 1000h байт). При обращении к памяти процессор физически обращается не по линейному адресу, а по тому физическому адресу, с которого начинается данная страница. Описание каждой страницы из лин. адресного пространства, включающее в себя ее физический адрес и доп. атрибуты, хранится в одной из спец системных таблиц, как и в случае сегментации, но в отличие от сегментации страничная адресация абсолютно невидима для программы. Внутри каждой страницы работает сегментный механизм. Отдельный сегмент памяти — это независимое защищенное адресное пространство, для которого определены размер, разрешенные способы доступа (чт/зап/исполнение кода) и уровень привилегий. Для этих сегментов все адресное пространство находится внутри одной конкретной страницы

При страничной адресации непрерывное пространство лин. адресов памяти разбивается на страницы фиксированного размера (обычно 4 Кб (4096 или 1000h байт). При обращении к памяти процессор физически обращается не по линейному адресу, а по тому физическому адресу, с которого начинается данная страница. Описание каждой страницы из лин. адресного пространства, включающее в себя ее физический адрес и доп. атрибуты, хранится в одной из спец системных таблиц, как и в случае сегментации, но в отличие от сегментации страничная адресация абсолютно невидима для программы.

Основная цель стр. адресации — организация виртуальной памяти в ОС. Система может использовать внешние устройства — обычно диск — для расширения виртуального размера памяти. При этом, если к какой-то странице долгое время нет обращений, система копирует ее на диск и помечает отсутствующей в таблице страниц. Затем, когда программа обращается по адресу в отсутствующей странице, вызывается исключение. Обработчик исключения читает адрес, вызвавший ошибку из CR2, определяет, какой странице он соответствует, загружает ее с диска, устанавливает бит присутствия, удаляет копию старой стр. из TLB командой INVLPG и возвращает управление. Команда, вызывавшая исключение типа ошибки, выполняется повторно.

При сегментной адресации. Для обращения к памяти в процах Intel используется лог. адрес, состоящий из 16-битного селектора, определяющего сегмент, и 32 ли 16-битного смещения — адреса внутри сегмента. Отдельный сегмент памяти — это независимое защищенное адресное пространство, для которого определены размер, разрешенные способы доступа (чт/зап/исполнение кода) и уровень привилегий. Если доступ к памяти удовлетворяет условиям защиты, процессор преобразует лог. адрес в 32 битный линейный. Лин. адрес — это адрес в несегментированном непрерывном адресном пространстве, совпадающий с физическим адресом в памяти, если отключен режим страничной адресации. Чтобы получить лин. адр. из лог., проц. добавляет к смещению лин. адр. начала сегмента, который хранится в поле базы в сегментном дескр. Сегментный дескриптор — это 8-байтная структура данных, расположенная в таблице GDT или LDT; адрес таблицы находится в регистре GDTR или LDTR, а номер дескриптора в таблице определяется из значения селектора.

Дескр. для селектора, находящегося в сегментном регистре, не считывается из памяти при каждом обращении, а хранится в скрытой части сегментного регистра и загружается только при выполнении команд MOV в сегментный регистр, POP в сегментный регистр, LDS, LES, LSS, LGS, LFS и дальних команд перехода.

Селектор — это 16-битное число следующего формата:

биты 15 – 3: номер дескриптора в таблице;бит 2: 1 — использовать LDT, 0 — использовать GDT;биты 1 – 0: запрашиваемый уровень привилегий при обращении к сегменту и текущий уровень привилегий для селектора, загруженного в CS

Дескриптор — это 64-битная структура данных, которая может встречаться в таблицах GDT и LDT. Дескриптор способен описывать сегмент кода, сегмент данных, сегмент состояния задачи, быть шлюзом вызова, ловушки, прерывания или задачи. В GDT также может находиться дескриптор LDT.

 


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 168; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.012 с.)
Главная | Случайная страница | Обратная связь