Память. Верхний уровень

Правила выборки, размещения, замены страниц

Правила выборки страниц (fetch policy)

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

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

2. Подкачка по требованию с кластеризацией. При страничной ошибке загружается не только страница, вызвавшая ошибку, но и несколько последующих страниц. Эта стратегия обеспечивает минимизацию числа операций ввода-вывода, связанных с подкачкой. Размер кластера зависит от объема цизической памяти и составляет 2-8 страниц.

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

Правила размещения (placement policy)

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

Правила замены (replacement policy)

Политика замещения определяет какую страницу можно убрать из памяти при вызове новой страницы. Выбирать такую страницу наугад нельзя. Если, например, убрать из памяти страницу с командой, которая вызвала ошибку, то при повторном выполнении команды или при выполнении следующей команды произойдет еще одна ошибка из-за отсутствия страницы. Необходимо удалять из памяти те страницы, которые не будут нужны долгое время. Однако будущее использование страниц предсказать невозможно, поэтому используют алгоритмы основываясь на истории обращиний к страницам. Эти алгоритмы очень похожи на метода замещения кэш-строк.

LRU ( Least Recently Used). Замещается та страница, к которой дольше всего не было обращения.

FIFO (First In First Out). Здесь заменяется страница, дольше всего находившаяся в памяти.

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

За счет виртуального механизма решаются следующие вопросы:

  1. Выполнение программы, объем которой превышает объем физической памяти.
  2. Независимость работоспособности программы от места ее расположения в физической памяти и от конфигурации этой памяти.
  3. Динамическое распределение памяти.
  4. Независимость (легкая сопрягаемость) разрядности компонентов логических адресов в программе (указателей), разрядности линейного адреса, разрядности физического адреса и реального объема памяти, установленной в системе.
Яндекс.Метрика