Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
виртуальная память.rtf
Скачиваний:
2
Добавлен:
14.11.2019
Размер:
166.02 Кб
Скачать

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

Чтобы уменьшить фрагментацию в пределах сегмента, можно разделить его на более мелкие части – страницы. Размер страницы фиксирован (обычно 2 Кбайта или 4 Кбайта). Каждой физической и виртуальной странице присваиваются свои уникальные номера. Каждая физическая страница может хранить одну виртуальную страницу; порядок расположения слов на страницах одинаков.

Физическая страница в каждый момент времени может располагаться как в ОП, так и в ВЗУ. Соответствие между номером виртуальной страницы (он задается в начале страницы) и номером физической страницы (ее местом в памяти) устанавливается страничной таблицей, которую формирует операционная система. Эта таблица перерабатывается каждый раз, когда в памяти ЭВМ происходят изменения.

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

1) по адресу активизируемого фрагмента активной программы выбирается соответствующая страничная таблица (все они хранятся в ОП);

2) по номеру виртуальной страницы в страничной таблице находятся номер соответствующей ей физической страницы и место ее хранения;

3) если требуемая страница находится в ОП, то конкретный адрес, по которому следует обращение, формируется конкатенацией (объединением) номера физической страницы и смещения;

4) если требуемая страница находится в ВЗУ, операционная система организует ее пересылку в ОП.

Обмен между ОП и ВЗУ идет только страницами, т.е. страница – это минимальный объем пересылаемого массива.

Отметим следующую особенность адресации при использовании страничной памяти.

Пусть виртуальный адрес слова представлен двоичным кодом, например 11001010. Этот код может рассматриваться как состоящий из двух адресов: страницы и слова, причем возможны разные варианты:

– адрес слова 1010 на странице с адресом 1100 ( так как нумерация идет с нуля, то это 11-е слово на 13-й странице), если размер страницы 16 слов;

– адрес слова 01010 на странице с адресом 110 (11-е слово на 7-й странице), если размер страницы 32 слова и т.д.

Это означает, что в случае, если размер страницы равен 2k (а так обычно и делается), то в коде адреса слова младшие k разрядов задают код смещения, а старшие разряды – код номера страницы.

Достоинства страничной организации заключаются в следующем.

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

2. При загрузке новой программы не требуется перемещать содержимое памяти.

3. Достигается физическая экономия места в ОП, поскольку страница вызывается туда только когда она действительно нужна.

Страничная организация имеет и недостатки.

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

При часто возникающих страничных прерываниях система может тратить большую часть времени непроизводительно на подкачку страниц. Уменьшению частоты страничных прерываний способствовало бы увеличение размера страниц. Это уменьшит размер таблицы страниц и, следовательно, уменьшит затраты памяти. С другой стороны, при больших размерах страниц увеличиваются потери памяти: блоку размером 8 Кбайт + 1 байт потребуется две физические страницы, из них вторая будет практически пустой.

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