Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР СПО(231000)(ПР инж) 12.docx
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
156 Кб
Скачать
☆

Страничная организация памяти

1. Цель работы

Получить представление о принципах страничной организации памяти в защищенном режиме.

2. Краткие теоретические сведения

Процессор iPentium в защищённом режиме использует трёхступенчатую схему преобразования адреса.

Уровень логического адреса - это первая ступень в схеме преобразования адресов. Логический адрес состоит из селектора и смещения. Компонента смещения является 32-разрядной.

Вторая ступень - получение из логического адреса 32-разрядного линейного адреса. Линейный адрес берётся из глобальной или локальной таблицы дескрипторов (GDT или LDT) в зависимости от соответствующего бита селектора. Механизм получения линейного адреса напоминает механизм получения 24-разрядного физического адреса в процессоре i80286. Однако линейный адрес не отображается непосредственно на адресную шину памяти, то есть он не является физическим адресом.

Для получения из линейного адреса физического адреса используется третья ступень - механизм страничной адресации. С помощью этого механизма 20 старших бит линейного адреса используются для выбора блока памяти размером 4 килобайта. Такой блок называется страницей физической памяти. Оставшиеся 12 бит линейного адреса представляют собой смещение внутри страницы.

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

Страничный кадр это блок размером 4 К физической памяти. Страницы разме­щаются по границам четырехкилобайтных областей памяти и имеют фиксированный размер. Адрес страничного кадра указывает физический начальный адрес страницы, и его 12 младших битов всегда равны 0. В каталоге страниц адрес страничного кад­ра — это адрес таблицы страниц, которая, в свою очередь, содержит адрес кадра той страницы, в которой находится нужный операнд в физической оперативной памяти.

Трансляция линейного адреса в физический с учетом страничного разбиения осуществляется, когда установлен бит PG регистра CR0. Это бит обычно устанавли­вается операционной системой во время программной инициализации, если ОС дол­жна поддерживать многозадачный режим виртуальных 8086, странично-ориентиро­ванную виртуальную память или странично-ориентированную защиту.

Линейный адрес при страничной организации памяти состоит из трех компонентов:

каталога DIR;

страницы PAGE;

относительного адреса OFFSET.

Значение из поля индекса селектора используется в качестве индекса в таблице LDT или GDT для выборки 32-разрядного базового адреса. Этот базовый адрес складывается со второй компонентой логического адреса - смещением. В результате получается 32-разрядный линейный адрес.

Старшие 10 бит линейного адреса используются как индекс в таблице, называемой каталогом таблиц страниц (поле DIR). Расположение каталога таблиц страниц в физической памяти определяется содержимым системного регистра процессора CR3.

Таблица страниц (каталог таблиц страниц) является страницей размером 4К, содержащей 1024 32-битовых спецификаторов страниц. Самих же каталогов может быть сколько угодно, но в каждый момент времени используется только один - тот, на который указывает регистр CR3.

Младшие 22 бита линейного адреса (поле OFFSET) используются для определения адреса относительно страницы, получаемой из таблицы страниц.

Старшие 10 бит поля OFFSET предназначены для индексации таблицы страниц, выбранной с помощью поля DIR.

Младшие 12 бит поля OFFSET указывают смещение к адресуемому байту внутри страницы.

Для представления старших 20 битов физического адреса таблицы страниц в дескрипторе используются биты 12-31. Младшие 12 битов адреса таблицы всегда равны нулю, таким образом, таблица страниц должна быть выровнена в памяти на границу 4096 байт (на границу страницы).

Биты 12-31 в дескрипторе страниц указывают старшие 20 бит физического адреса страницы. Младшие 12 бит адреса страницы всегда равны нулю.

Назначение бит 0-11 одинаково и для дескриптора таблицы страниц, и для дескриптора страницы. Бит занятости D и бит доступа А содержат информацию об исполь­зовании страницы и устанавливаются аппаратно. В ОС, поддерживающей страничную виртуальную память, эти биты используются для определения тех страниц, которые можно вытеснить из физической памяти на диск.

Для использования механизма трансляции страниц операционная система должна установить в 1 старший бит системного регистра CR0. Если этот бит не установлен в 1, физический адрес будет равен линейному, содержимое регистра адреса каталога таблиц страниц CR3 при этом для преобразования адреса использоваться не будет.