Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DiVM / OSISP / Лекции_ОССП_Р2.pdf
Скачиваний:
95
Добавлен:
11.05.2015
Размер:
1.33 Mб
Скачать

сегменты, где хранятся локальные таблицы, заносятся в GDT, то для локализации или определения используемой в текущий момент времени LDT, необходим только селектор. И для его хранения в процессоре используется 16-битный регистр LDTR. Поле предела занимает 20 бит, поэтому можно создать таблицу более 64 килобайт. Но на практике этого не требуется. В дескрипторе также задействован бит присутствия, и процессор не разрешает загрузить в регистр LDTR селектор, не присутствующий в LDT, генерируется особый случай неприсутствия.

Для начала работы с LDT в регистр LDTR помещается селектор выбираемой таблицы. При попытке загрузить в селектор недопустимое значение процессор формирует общее нарушение защиты. Допускается загрузка в LDTR пустого селектора. Нулевой селектор означает, что таблица LDT не используется.

К LDI обращение на прямую не допускается.

Дескриптор таблицы LDTR подобен общей структуре дескриптора.

63

55

 

 

 

 

47

 

S

39

 

 

 

 

32

 

Базовый адрес

0 0 0 0

Предел

 

 

P

DPL

0

Тип

 

 

 

Базовый

 

31-24

 

 

 

 

 

19-16

 

 

 

 

 

 

0

0

 

1

 

0

 

адрес 23-16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

31

23

 

 

 

15

 

 

 

 

 

 

 

 

 

 

7

 

0

Базовый адрес

 

 

 

 

Предел

 

 

 

 

 

 

15-0

 

 

 

 

 

 

 

15-0

 

 

 

 

 

 

 

 

 

 

 

Рис. 9.8. Формат дескриптора таблицы LDT

9.1.1.7 Особенности сегментации

Разрешается создание сегментов, в которых допускаются операции только считывания, только исполнения, сегменты считывания - записи, сегменты исполнения - считывания. Не предусмотрено создания сегментов для всех трех функций. Однако путем перекрытия сегментов или введения дескрипторов с альтернативными наименованиями позволяют определять участки памяти, по отношению к которым можно выполнять все эти 3 действия одновременно. CPU обеспечивает мощные средства для сегментации памяти (защита, фиксация недопустимых операций и т.д.)

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

118

Внутреннее устройство управления памяти в процессоре, наряду с обязательной сегментацией, реализует еще один уровень косвенности в формировании физического адреса памяти. Это страничная организация памяти.

Основной причиной применения страничного преобразования является возможность реализации виртуальной памяти, которая позволяет программисту использовать объем памяти больше чем размер физической ОП.

Страничное преобразование было реализовано и до процессоров INTEL, но здесь оно реализовано как внутреннее устройство. В связи с этим появился ряд преимуществ:

-сокращается загрузка внешней шины;

-гарантируется правильность взаимодействия процессора и страничного устройства управления памятью;

-стандартизируются средства поддержки ОС виртуальной памяти;

-допускается программное разрешение и запрещение страничного преобразования адреса;

-снижается общая стоимость системы.

Если при сегментации базовым объектом памяти является сегмент практически любого размера, то при страничной организации базовым объектом памяти является блок с фиксированным размером 4 kb, который называется страницей. При линейном адресном пространстве 4 Gb получается 1 MB страниц. Реальная физическая память меньше 4 Gb, следовательно, при выполнении программы в любой момент времени только часть страниц будет присутствовать в ОП. Такой подход в организации памяти называется виртуальной памятью. Страницы, которые не поместились в ОП, располагаются на внешней памяти.

Фиксированный размер всех страниц позволяет загрузить любую виртуальную страницу в любую физическую страницу. Это и объясняет применение страничного преобразования в случае виртуальной памяти.

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

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

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

Впроцессе страничного преобразования старшие 20 бит 32-битного линейного адреса замещаются другим 20-битным значением, задающим адрес физической страницы.

Для такого преобразования используются таблицы страниц. В процессорах реализуется двухэтапное преобразование линейного адреса в физический. Можно реализовать и одноэтапное преобразование, но тогда для одной таблицы

119

страниц нужно 4 Мб. Поэтому целесообразнее использование двухэтапного преобразования.

Таблицы

страниц

 

 

 

 

 

 

Физическая

 

 

 

 

 

 

память

Каталог

 

 

 

 

 

страниц

 

 

 

 

 

31

0

 

 

31

0

Страничный

 

 

1023

 

 

 

кадр

 

. . .

 

 

. . .

 

Байт

 

PDE

 

 

PTE

 

 

 

. . .

 

 

. . .

 

 

 

 

0

 

 

0

0

19

0

 

 

 

 

 

PDBR

 

Каталог

Таблица

Смещение

CR3

 

31

22 21

12 11

0

Рис. 9.9. Двухэтапное преобразование линейного адреса в физический

PDE – Page Directory Entry.

PTE – Page Table Entry.

PDBR – Page Directory Base Register.

Основой страничного преобразования является регистр CR3, который содержит 20-битный физический адрес каталога страниц в текущей задаче, и называется регистром базового адреса каталога страниц (PDBR). Это единственный внутренний регистр процессора, который содержит физический адрес памяти. Младшие 12 бит считаются нулевыми, т.е. каталог выровнен на границу страницы.

Предполагается, что каталог страниц всегда находится в памяти и не участвует в свопинге.

Каталог страниц содержит 1024 32-битных дескриптора, называемых элементами каталога страниц. Каждый из этих элементов адресует подчинённую таблицу страниц второго уровня. В свою очередь, каждая из этих страниц содержит 1024 32-битных дескриптора элементов таблицы страниц, а каждый из этих элементов адресует страничный кадр в физической памяти.

120

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

1.Старшие 10 бит линейного адреса дополняются двумя младшими нулями и служат индексом каталога страниц, выбирая один из элементов в каталоге. Выбранный элемент каталога страниц определяет 20-ти битный адрес таблицы страниц.

2.Средние 10 бит линейного адреса дополняются двумя младшими нулями

ииндексируют таблицу страниц, выбирая из нее PTE. Этот элемент содержит 20-ти битный базовый адрес страничного кадра в физической памяти.

3.Базовый адрес страничного кадра объединяется с младшими 12-ю битами линейного адреса. В результате получается 32-х битный физический адрес памяти, по которому и производится обращение.

При обращении к элементам каталога и таблицы страниц, производится проверка защиты и присутствия страниц в памяти.

Структура элемента каталога страницы и таблицы страниц одинакова и имеет вид.

 

31

12

11

9

0

 

 

 

 

 

 

 

 

 

 

 

P

P

U

R

P

 

 

Адрес страничного кадра

 

 

Дост.

0 0

DA

 

 

 

 

C

W

/

/

 

 

 

 

 

 

 

 

 

 

 

D T

S

W

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 9.10. Формат элемента таблицы страниц

A – Accessed

D – Dirty

PWT – Page Write Through

PCD – Page Cache Disable

В каждом элементе страниц хранится адрес страничного кадра. В этом поле находится физический базовый адрес страницы, младшие 12 бит адреса считаются нулевыми (выравниваются на границу страницы), биты 9, 10, 11 процессор не использует, и они могут использоваться при разработке операционных систем.

Бит присутствия Р показывает, отображается ли адрес страничного кадра на страницу в физической памяти. Если Р = 1, то страница находится в памяти.

Бит пользовательский или системный U/S определяет права доступа, т. е. уровни привилегий.

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

121

Соседние файлы в папке OSISP