
- •1. Понятие виртуального ресурса
- •Общие методы реализации виртуальной памяти
- •Динамическое преобразование адресов
- •Поблочное отображение
- •Преобразование виртуального адреса в поблочном отображении
- •6. Таблица отображения страниц
- •Страничные кадры
- •Разделение реальной памяти на страничные кадры
- •Стратегии вталкивания (подкачки) страниц
- •Размещение страниц по запросу
- •1.1.1. Подкачка страниц с упреждением
- •1.1.2. Подкачка по запросу с кластеризацией
- •Стратегии размещения страниц
- •Стратегии выталкивания страниц
- •Принцип оптимальности
- •Выталкивание случайной страницы
- •Выталкивание первой пришедшей страницы (fifo – First-In-First-Out)
- •Выталкивание дольше всего не использовавшейся страницы (lru – Least-Recently-Used)
- •Выталкивание реже всего используемой страницы (lfu – Least-Frequently-Used)
- •Выталкивание не использовавшейся в последнее время страницы (nur – Not-Used-Recently)
Страничные кадры
Виртуальный адрес в страничной системе – это упорядоченная пара (p, d), где p – номер страницы в виртуальной памяти, а d – смещение в рамках страницы p, где размещается адресуемый элемент.
-
Номер страницы p
Смещение d
Виртуальный адрес v = (b, d)
Процесс может выполняться, если его текущая страница находится в первичной памяти. Страницы переписываются из внешней памяти в первичную и размещаются в ней в блоках, называемых страничными кадрами и имеющих точно такой же размер, как и поступающие страницы. Страничные кадры начинаются с адресов первичной памяти, кратных фиксированному размеру страницы. Поступающая страница может быть помещена в любой свободный страничный кадр.
Разделение реальной памяти на страничные кадры
Динамическое преобразование адресов
в системе со страничной организацией
осуществляется следующим образом.
Выполняющийся процесс обращается по
виртуальному адресу v = (p, d).
Механизм отображения адресов ищет номер
страницы p
в таблице отображения страниц и определяет
, что эта страница находится в страничном
кадре c порядковым номером
p’.
Адрес первичной памяти a,
с которого начинается страничный кадр
p’
(если размер страницы равняется p)
определяется произведением a = (p)(p’).
Адрес реальной памяти r
формируется затем путем конкатенации
a
и d.
Обычно системы виртуальной памяти определяют три типа стратегий.
Стратегии вталкивания (подкачки) страниц
Их цель – определить, в какой момент следует переписать страницу или сегмент из вторичной памяти в первичную.
Размещение страниц по запросу
Традиционно считается, что наиболее рационально загружать в основную память страницы, необходимые для работы процесса, по его запросу. Не следует переписывать ни одной страницы из внешней памяти в основную до тех пор, пока к ней явно не обратится выполняющийся процесс.
В пользу этой стратегии можно привести такие аргументы:
гарантируется, что в память будут переписаны только те страницы, которые фактически необходимы для работы процесса;
минимальны накладные расходы на то, чтобы определить, какие страницы следует разместить в памяти.
К существенным недостаткам можно отнести лишь неэффективное использование первичной памяти. Т.к. процесс должен накапливать в памяти требуемые страницы по одной, то при появлении ссылки на каждую новую страницу процессу приходится ждать, пока эта страница будет передана в основную память. При подкачке страниц принято оценивать величину “пространство-время”, которая применяется для оценки использования памяти процессом. Эта величина соответствует заштрихованной площади на рисунке, приведенном ниже.
Уменьшение произведения “пространство-время” за счет уменьшения периодов ожидания процессом нужных ему страниц является важнейшей целью всех стратегий управления памятью.
1.1.1. Подкачка страниц с упреждением
При этой стратегии ОС пытается заблаговременно предсказать, какие страницы потребуются процессу, а затем когда в основной памяти появляется свободное место, загружает в нее эти страницы. Пока процесс работает со своими текущими страницами, система запрашивает новые страницы, которые уже будут готовы к использованию, когда процесс к ним обратится. Если решения о выборе страниц принимать с большой вероятностью правильно, то это позволит резко сократить общее время выполнения данного процесса.