Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
os4.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
192.51 Кб
Скачать

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

4.3.4.1. Главные задачи управления виртуальной памятью

Вопрос (

Управление виртуальной памятью решает три главные задачи:

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

  2. Сброс содержимого физической памяти на диск и подкачка страниц с диска в физическую память при необходимости. Данный вопрос будет рассмотрен сейчас.

  3. Кроме того, система управления должна содержать набор сервисов для приложений, в частности средства разделения памяти. Это будет рассмотрено в следующем параграфе.

)Вопрос

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

4.3.4.2. Стратегии решения второй главной задачи

1) Стратегии вталкивания (выборки) (fetch policy) определяют, в какой момент следует загрузить страницу или сегмент с диска в оперативную память. Два конкурирующих алгоритма вталкивания существуют.

Вопрос (

Вталкивание по запросу (когда произошла ошибка доступа к странице)

Достоинство: в памяти находятся только те страницы или сегменты, которые действительно нужны процессу.

Недостаток: потери времени из-за ожидания загрузки страницы или сегмента.

Однако, загружая несколько соседних страниц вместе с запрашиваемой, страницей, можно уменьшить число операций ввода/вывода.

)Вопрос

Вопрос (

Вталкивание с упреждением

Достоинство: повышение скорости выполнения программы.

Из-за принципов локальности высока вероятность загрузки именно тех блоков, которые потребуются программе.

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

)Вопрос

2) Стратегии размещения (placement policy) определяют, в какие участки оперативной памяти наиболее целесообразно поместить загружаемую страницу или сегмент.

Вопрос (

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

)Вопрос

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

Три возможных алгоритма размещения используются:

  1. первая подходящая зона;

  2. лучшее соответствие - выбирается такая зона, чтобы после размещения сегмента остаток был минимальным; данный способ ведет к появлению большого числа маленьких неиспользуемых зон.

  3. больший излишек - выбирают такую зону, чтобы остаток был максимальным; используют, чтобы устранить недостаток предыдущего метода.

3) Стратегии выталкивания (замещения) (replacement policy) определяют, какие сегменты или страницы можно вытолкнуть из памяти, чтобы освободить место для загрузки нового сегмента или страницы.

Вопрос (

Стратегии выталкивания существуют для двух способов распределения памяти процессам:

  1. постоянное распределение, когда процессу предоставляется фиксированный размер памяти;

  2. переменное распределение, когда размер памяти, предоставляемой процессу, меняется во времени.

)Вопрос

Вопрос(

Кроме того, стратегии выталкивания могут быть использованы как «глобально», так и «локально». При глобальных стратегиях страницы для выталкивания могут принадлежать любым процессам, независимо от процесса, активизировавшего выталкивание.

При локальных стратегиях для выталкивания ищутся страницы, принадлежащие только процессу, активизировавшему выталкивание.

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

)Вопрос

4.3.4.3. Стратегии выталкивания с постоянным распределением

Рассмотрим указанные стратегии в порядке улучшения их характеристик.

Вопрос (

1. Выталкивание случайной страницы

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

2. Выталкивание первой пришедшей страницы

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

По своей эффективности данный алгоритм близок к первому алгоритму.

3. Выталкивание реже всего используемой страницы

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

Бит обращения сбрасывается, если при проверке он оказался установленным.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]