Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
26
Добавлен:
02.05.2014
Размер:
285.18 Кб
Скачать

5.3.1.3. Механизм отображения виртуальных адресов в физические

Механизм основан на ведении таблицы отображения виртуального адреса V в физический адрес R.

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

Поэтому рассматриваются блоки виртуальной памяти, которым соответствуют блоки физической памяти.

Чем больше размер блоков, тем меньше затрат на механизм отображения. Но увеличиваются затраты на обмен с внешней памятью.

Если блоки памяти могут иметь переменный размер, то говорят о сегментной организации виртуальной памяти.

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

Механизм же отображения один как для сегментной, так и для страничной организации.

Виртуальный адрес - это вектор:

V = (b, d),

Где: b - это номер блока;

d - это смещение внутри блока.

b - это смещение внутри таблицы отображения блоков.

Строка таблицы содержит адрес блока в памяти и другую информацию о блоке.

Схема отображения имеет следующий вид:

5.3.2. Страничная организация виртуальной памяти

5.3.2.1. Одноуровневая страничная организация

Страничная виртуальная память состоит из блоков фиксированного размера, называемых страницами. Размер страниц обычно составляет от 512 байтов до 4 К. В процессоре Intel 386 размер страницы равен 4 К.

Виртуальный адрес равен

V = (p, d),

Где р - номер страницы;

d - смещение внутри страницы.

При фиксированном размере блока проще реализуются стратегии размещения страниц в памяти.

Строка таблицы страниц обычно содержит следующие данные:

p

m

a

n

s

p - бит присутствия страницы;

m - бит модификации страницы;

a - права доступа к странице;

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

s - адрес во внешней памяти, если страница не загружена.

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

Для ускорения доступа часть строк таблицы, к которым обращения происходят наиболее часто, хранятся в кэш-памяти. Обращение к таблице в оперативной памяти происходит только при неудачном поиске строки в кэш-памяти. В этом случае кэш-память обновляется новой страницей.

5.3.2.2. Двухуровневая страничная организация

С ростом размера виртуальной памяти пропорционально увеличиваются и размеры таблиц страниц. Избежать роста таблиц позволяет двухуровневая страничная организация.

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

V = (k, p, d),

Где k - строка каталога, содержащая адрес таблицы страниц;

р - смещение в выбранной таблице страниц;

d - смещение в физической памяти.

В процессоре Intel 386 с 32-х разрядными регистрами каталог может содержать информацию о 1024 таблицах (1 К).

Каждая таблица содержит информацию о 1024 страницах (1 К). Поскольку каждая страница имеет размер 4 К, то одна таблица страниц может адресовать память 4 К х 1 К = 4 М.

Один каталог адресует память 4 М х 1 К = 4 Г.

Соседние файлы в папке Шпоры по СПО