Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Организация и функционирование вычислительных машин1.doc
Скачиваний:
37
Добавлен:
01.05.2014
Размер:
1.13 Mб
Скачать

Организация виртуальной памяти на i386 и более старших моделях.

Эти процессоры могут работать в трех режимах:

  1. Реальный режим (более быстрый особенно с 32 битными данными). Память до 4Гб.

  2. Защищенный режим использует виртуальную организацию памяти, многозадачный режим, развитая система защиты памяти (программ и данных).

  3. Реализация виртуальной машины i8086 при котором процессор реализовывает программы написанные для процессораi8086.

В защищенном режиме размер виртуальной памяти CВАП=246 б. = 64Тб.

(Это возможно благодаря разбиению ВАП на 16К сегментов, максимальный размер которого = 4Гб. )

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

  1. ЛА ВАП

  2. ФА ФАП

  3. Линейный адрес – представляет собой объединение базового адреса смещения и смещения в пределах сегмента.

Любой регистр смещения состоит из двух частей: программно-доступной и скрытой

доступная скрытая

15 0 63 0

CS БАС граница атрибуты -это дескриптор сегмента

DS

GS

селектор RS индекс TI RPL

15 3 2 1 0

БАС – базовый адрес сегмента.

Индекс задает смещение таблицы, строки с описанием данного сегмента.

Содержание селекторов сегментов формируется операционной системой при загрузке задачи

Структура дескриптора сегмента.

31 24 19 16 15 14 13 12 11 9 8 7 0

База G D 0 AVL Граница P DPL S тип А База

База Сег [0-15] Граница Сег [0-15]

20 бит граница сегмента определяет его длину.

Длина сегмента зависит от бита дробности (G) либо в байтах, либо в страницах.

 0, байт

G 

  • 1, страница (С = 4Кб.) 220* 215= 232(4Гб.)

Остальные поля атрибуты.

D- задает тип данных в сегментах (Data)

= 0 – 16 битные данные

= 1 – 32 битные данные

AVL– бит предоставляемый в распоряжение пользователя (available)

P– бит присутствия

0 – на диске

1 – в оперативной памяти

DPL– уровень привилегий в дескрипторе (DescriptorPrivilegeLevel)

RPLилиCPLдолжен быть >DPL- логическое соответствие (если о числах, то знак меньше)

CPL– текущий уровень привилегий соответствует дескриптору сегмента выполняемый в данный момент программой

S–User/Supervisor

Тип – говорит, является ли сегмент программой или данным

Биты

11

10

9

Данные

1

E

W

Код

0

C

R

С – признак согласования сегментов (уровень привилегий с которыми обращается к данному сегменту, равно данному сегменту (можно не обращать внимания), более высоких типах процессоров от Intelон существует только для поддержки)

R– только чтение

W– только запись

E– бит расширения при загрузке сегмента (прямое - при увеличение адреса, обратное при уменьшение адреса)

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

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

база

+ смещение

+ * индекс

коэффициент

масштабирования (1,2,4,8)

ЛА селектор ЛА смещ.

сегм. трансляция

лин. А.

0

PG&PE

1

DIR PAGE offset

стран. трансл.

ФА

Структура выполнения сегментной трансляции.

Iэтап

Сегментная трансляция– это преобразование логического адреса (селектор сегмента и смещения). На основании селектора происходит выборка из локальной или глобальной таблицы и переписывать его в скрытую часть сегментного регистра.

Линейный адрес = базовый сегмент + смещение.

IIэтап

Страничная трансляция.

CR– регистр управления

(CR0.PG)&(CR0.PE) = 1 - признак страничной трансляции.

TLB– буфер страничной трансляции (по сути это кэш, нужен он для ускорения)

1к каталог

1kстраниц

4kсмещение

1kx1kx4k= 4Gb

Таблица страниц

31 12

11

10 7

6

5

4 3

2

1

0

Адр. стр. кадра

AVL

0

D

A

0

U/S

R/W

P

Защита памяти в i80386

Только приCR0.PE=1(защищенный режим). Защита может осуществляться на уровне страниц и на уровне сегментов.

Защита на уровне сегментов и на уровне страниц обеспечивается либо атрибутом дескриптора сегмента, либо строкой страницы таблицы, так же и влияет соотношение уровней привилегий.

RPL– запрашиваемый уровень (при помещение селектора в сегментный регистр)

DPL– уровень привилегий дескриптора, фиксируется при первом обращение к данным дескриптора. Минимальный уровень, при котором данный деструктор доступен.

CPL– текущий уровень привилегий, которые соответствуют кодовому сегменту программы.

На уровне сегментов:

  1. Контроль типа не зависит от уровня привилегий, определяется деструктором

  2. Контроль границ 

  3. Ограничение адресной области памяти. 

  4. Ограничение точек входа в процедуру. Зависит отRPL, DPL, CPL

  5. Ограничение набора команд. 

Уровень страниц:

  1. Контроль типа.

  2. Ограничение адресной области памяти.

Контроль типов:

  1. На этапе загрузки селектора в регистр сегмента (проверка типа сегмента для которого осуществляется загрузка селектора)

  2. На этапе обращения к сегменту.

Пример: В CSможет быть загружен только программный дескриптор; вDSне может быть загружен селектор дескриптора, который не доступен для чтения.

При обращении:

  1. Нельзя называть в кодовый сегмент.

  2. Нельзя писать в сегменте данных, если бит записи равен нулю.

  3. Нельзя читать кодовый сегмент, если бит равен нулю.

Контроль на уровне страниц:Зависит отU/SиR/W.

Контроль границ:Предотвращает выход за пределы сегмента.

Ограничение адресной области памяти.

{RPL,CPL}DPL

CPL=DPL

CPLDPL(численно), через специальный дескриптор (вентиль вызова)

Ограничение набора команд.

  1. Свободные команды (непривилегированны).

  2. Привилегированные команды на уровне ядра.

  3. Чувствительные команды, зависят от уровня привилегии, но могут выполняться в любом режиме супервизора (от 0 до 2). В основном это команды ввода-вывода.