- •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)
1.1.2. Подкачка по запросу с кластеризацией
Данная стратеги использует достоинства первых двух стратегий и применяется в ОС Windows NT. Ее суть заключается в следующем: когда ОС генерирует прерывание по отсутствию нужной страницы в основной памяти, загружается сама нужная страница и небольшое количество окружающих ее страниц. Такая схема пытается минимизировать количество прерываний по отсутствию страниц в памяти.
Стратегии размещения страниц
При возникновении прерывания по отсутствию нужной страницы в первичной памяти система должна определить, в какое место физической памяти следует загрузить виртуальную страницу (блок).
В системах со страничной организацией виртуальной памяти такое решение принимается достаточно тривиально, поскольку поступающая страница может быть помещена в любой страничный кадр. Поэтому для этой цели чаще всего выбирается первый свободный страничный кадр.
Системы с сегментной организацией требуют стратегий размещения, аналогичных тем, которые используются для управления реальной памятью с переменными разделами.
Стратегия первого подходящего. Поступающее задание помещается в первый встретившийся свободный сегмент основной памяти достаточного размера. Такая стратегия позволяет быстро принять решение о размещении блока.
Стратегия наиболее подходящего. Поступающей сегмент помещается в ту область, где ему наиболее “тесно”, так что остается минимальное неиспользуемое пространство.
В технической литературе описана еще одна стратегия – стратегия наименее подходящего. При помещении программы в память нужно занимать свободный участок наибольшего размера. После помещения программы в такой участок остающийся свободный участок зачастую также оказывается большим, и таким образом, в него можно разместить относительно большую новую программу.
Стратегии выталкивания страниц
В системах со страничной организацией все страничные кадры бывают заняты. В этом случае программы управления памятью, входящие в ОС, должны решать, какую страницу следует удалить из первичной памяти, чтобы освободить место для поступающей страницы.
Принцип оптимальности
Этот принцип говорит о том, что для обеспечения оптимальных скоростных характеристик и эффективного использования ресурсов следует заменять ту страницу, к которой в дальнейшем не будет новых обращений в течение наиболее длительного времени. Реализовать эту стратегию невозможно, т.к. мы не умеем предсказывать будущее. Однако можно использовать другие стратегии, которые в той или иной мере приближаются к принципу оптимальности.
Выталкивание случайной страницы
В этом случае все страницы, находящиеся в реальной памяти, могут быть выбраны для выталкивания с равной вероятностью, в том числе и следующая страница, к которой будет производиться обращение. Поэтому в реальных системах эта стратегия не применяется.
Выталкивание первой пришедшей страницы (fifo – First-In-First-Out)
Каждой странице в момент поступления присваивается временная метка. Когда появляется необходимость удалять из основной памяти какую-нибудь страницу, то выбирается та, которая находилась в памяти дольше других. В пользу подобной стратегии можно привести тот аргумент, что у данной страницы уже были возможности использовать свой шанс, и пора дать такую возможность другим страницам. Но в равной степени такая стратегия будет приносить ущерб: будут замещаться активно используемые страницы, поскольку тот факт, что страница долго находится в памяти может означать, что она постоянно в работе.
К тому же имеет место некоторое явление, называемое аномалией FIFO. Его суть заключается в том, что иногда увеличение количества страничных кадров, выделяемых процессу, приводит к увеличению частоты прерываний по отсутствию нужных страниц для этого процесса. Рассмотрим рисунок:
