Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УТС 4 семестр / задание_os5.doc
Скачиваний:
2
Добавлен:
08.08.2022
Размер:
186.37 Кб
Скачать

5.3. Управление виртуальной памятью

5.3.1. Общая характеристика виртуальной памяти

Определения виртуальной памяти и иерархия видов памяти

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

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

----------------------

| ^ | Внешняя память |

| | ----------------------

| | ^ v

| | ----------------------

| | | Оперативная память |

| | ----------------------

| | ^ v

v | ----------------------

скорость объем | Кэш-память |

----------------------

Память любого уровня можно рассматривать как кэш памяти более высокого уровня.

Кэш-память основана на предвосхищении наиболее вероятного использования данных процессором.

Эффективность кэша зависит от:

  1. Физических свойств;

  1. Алгоритмов кэша;

  1. Программы (условных переходов).

Типичный размер кэша - 1 % ОЗУ. При этом вероятность успеха при доступе составляет 90-95 %.

Особенности виртуальной памяти

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

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

Таким образом, в системе существует два адреса: V - виртуальный и R - реальный. Виртуальный адрес отображается в реальный адрес с помощью “механизма отображения”.

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

Способы распределения физической памяти, которые были рассмотрены ранее, относились к связанному распределению. Т.е. объект должен занимать в памяти непрерывную последовательность ячеек.

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

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

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

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

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

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

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

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

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

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

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

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

V = (b, d),

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

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

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

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

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

Соседние файлы в папке УТС 4 семестр