Страничная организация памяти

Суть страничной организации в том, что адресное пространство разбивается на отрезки одинаковой длины (объема), что называются страницами, так как страниц много, то для хранения информации для них нужно создавать таблицы. Таблица страниц устанавливает соответствие между виртуальным адресом и реальным адресом страницы. Номер строки таблицы определяет виртуальный адрес, а содержимое строки — соответствующий физический адрес. Именно страницы являются единицей выделения и освобождения памяти. Страничный механизм также используется разными процессами для доступа к общим данным и программам. Динамическая библиотека хранится в одном экземпляре, но в разных процессах им соответствуют различные логические адреса (разные таблицы страниц). Вся память разделяется на одинаковые размеры. Оперативная память выделяется и освобождается по одной странице и поэтому исключается фрагментация памяти. Используется одно-двух-трех уровня адресации страниц.

Одноуровневая адресация при страничной организации памяти. Вся память делится на страницы. Составляется таблица страниц, в которой записываются физические адреса последовательных логических страниц. В этом случае элемент таблицы должен иметь длину, достаточную для записи одного адреса. Для 32 битных процессоров это 32 бита. Количество строк таблицы определяется, исходя из возможного размера виртуальной памяти и размера страницы. Например, при размере виртуальной памяти 4 Гбайт и размере страницы 4 Кбайт количество строк таблицы должно быть равно 2в32й/2в12й или 2в20й. С учетом длины одного элемента (4 байта) размер таблицы равен 4 Мбайт. Если учесть, что сама эта таблица должна быть в памяти и для каждой задачи должна быть своя таблица, то такой метод приводит к большим затратам памяти для вспомогательных таблиц. Поэтому такой способ применяется для современных процессоров только для больших страниц размером в 4мб и используется только ОС. Приложения пользователя не работают в таком режиме.

Двухуровневая адресация. Для каждого приложения используется каталог страниц(Page Directory) и таблица страниц. В каталоге задаются адреса таблиц страниц. Весь адрес разделяется на 3 составляющие А2 А1 А0 соответственно 10 10 12

А0 определяет смещения внутри страницы. А1 определяет номер строки в таблице строки (не более 1024 строк). Каждая такая строка должна содержать адрес начала страницы.

В результате такая таблица может задавать пространство 1024 страницы или 4мб.

А2 определяет номер строки в каталоге страниц, (не более 1024 ) размер тоже 4кб. В памяти обязательно должен присутствовать каталог, причем адрес его начала хранится в управляющем регистре CR2. При объединении А0 и А1 можно получить значения смещения внутри страницы, но большего размера. (одноуровневая организация).

Трехуровневая страничная адресация. Адрес разделяется на 4 компонента

А3 А2 А1 А0 соответственно 2 9 9 12. Размер самой таблицы остается 4кб, но размер строки увеличивается в 2 раза. А3 определяет таблицу каталогов и задает адреса 1-4 каталогов. При 3уровневой страничной организации можно использовать большие страницы 2 мб объединив А1 и А0 .

Наличие или отсутствие конкретной памяти отслеживает сам процесс с помощью механизма прерывания. Память для кодов и данных выделятся постранично. Адрес начала страницы кратен ее длине, если какой-то участок данных находится в конце страницы, то создается новая страница. При разработке приложений, критичных по памяти, нужно знать размер страницы и выравнивать, данные соответствующим образом. Дополнительная информация о странице позволяет определить: признак типа страницы для записи или чтения, признак присутствия страницы в памяти, уровень привилегий страницы, были ли изменения в данной странице. (Устанавливается процессором при доступе к странице в режиме записи, а сбрасывается программным анализом.) былли доступ к данной странице, режимы использования кэша. При использовании больших таблиц, в строке каталога указывается, что данная строка соответствует не таблице страниц, а большой странице. На аппаратном уровне процессор позволяет корректно использовать страницы трёх размеров, задавать режимы доступа и уровень привилегий. Если страница отсутствует в памяти, процессор генерирует исключения, которые обрабатывает ОС.

Действия обработчика исключений:

1) Найти свободную страницу или освободить занятую, если свободных нет.

2) Загрузить страницу в память

3) Записать адрес в Page Table при необходимости выполнить необходимости …

4) Обновить страницы кэш-страниц

5) Возвратиться к команде обращения памяти, которая вызвала данное исключение.

Стратегия загрузки и выгрузки страниц

При использовании регулярно надо решать такие вопросы:

1) Определять, какие страницы нужно удалить из памяти.

2) определить какие страницы должны быть загружены.

3) определить методы загрузки-выгрузки страниц.

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

1) Оптимальный алгоритм – для выгрузки страницы выбирается страница, в которой не было ни одного обращения. Недостаток — необходимо знать всю историю работы со страницами.

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

3) Случайный – выгружаемая таблица определяется случайно с равномерным распределением. Не требует информации о ранее и позже используемых страницах.

4) Хронологический – выгружаются из памяти именно в том порядке, в котором они были загружены. Достоинство: просто организовать очередь. Недостатки: может быть выгружена таблица, которая может понадобиться на следующем шаге.

5) Хронологический порядок с учетом использования – выгружается страница, которая не использовалась наиболее долго. Для определения таких страниц формируется не очередь, а список использованных таблиц. Используемая страница записывается в конец списка, для выгрузки выбираются страницы первые в этом списке. Недостаток: может быть выгружена страница необходимая на следующем шаге выполнения. Он наиболее часто используется в современных ОС.

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

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

Глобальный метод – владеет всем множеством страниц, выделяемых при необходимости, независимо от приложения, для которого эти страницы выделены (для всех приложений используется централизованный механизм управления). В таком случае для страницы необходимо хранить информацию о принадлежности этой страницы приложению.

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

1)Увеличения объема физической памяти

2)Ограничения количества активных процессов

3)Сокращения необходимого объёма памяти выделяемого для процесса

4)Специальные алгоритмы выделения страниц.

Сегментно‐Страничная Адресация Памяти


Похожие статьи.

Понравилась статья? Поделиться с друзьями: