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


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

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

Стратегии делятся на: 1) стратегии выборки: а) по необходимости; б) упреждающая загрузка. 2) стратегии размещения: а) для страничной – любая; б) для сегментной – из набора свободных выбираем туда, куда можно поместить. 3) стратегии замещения: в идеале замещение той страницы, которая не будет использоваться в будущем наибольшее время.

Стратегии замещения (Прогноз, предсказание ).

1) случайным образом: Достоинство: простота, быстрота. Недостатки: не эффективна (возможна выгрузка необходимой страницы). Но это не страшно, сработает правило загрузки à небольшие временные затраты. 2) очередь, FIFO (First In First Out — первый пришедший первым и выбывает): В алгоритме FIFO с каждым сегментом (страницей) связывается очередность его размещения в памяти. Для замещения выбирается сегмент, первым попавший в память. Каждый вновь размещаемый в памяти сегмент добавляется в хвост этой очереди. Алгоритм учитывает только время нахождения сегмента в памяти, но не учитывает фактическое использование сегментов. Достоинство: относительная простота. Недостатки: возможна выгрузка постоянно используемой информации. 3) LRU. Смысл: смотрят, к какой странице дольше всего не было обращений (по длительности). Для реализации необходимо использовать счетчик времени. 4) Разновидность: выгрузка наименее часто используемой страницы (по частоте). LFU: необходимо постоянно пересчитывать. Сложность: нужно рассчитывать частоту обращений (время + количество). 5) NUR – выталкивается не использовавшаяся в последнее время страница, для реализации используются 2 бита: бит обращения и бит записи. Бит обращений: устанавливается в 1, когда есть обращение к странице, периодически сбрасывается (аппаратно). Бит записи: если была запись, то 1, иначе 0. Никогда не сбрасывается. ? Вопрос: зачем бит записи, если есть бит обращений. ! Ответ: если была запись, то содержимое в ОП не соответствует своп-файлу, нужно принять меры для сохранения в своп-файл. Порядок выгрузки: 00 (первый бит – бит записи, второй – обращения) выгружается в самом начале, затем 01, 10, 11 (обращение было  давно, была запись). Благодаря простоте часто используется в современных компьютерах. Пример – Intel. 6) стратегия поддержки рабочего множества страниц (РМ). В каждый момент времени для каждого процесса в памяти находятся необходимые страницы для текущего процесса.   Существуют определенные временные интервалы, в течение которых необходимо определить страницы, рабочие множества для текущего интервала.