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


Страничная организация памяти (paging) — это такой способ управления памятью, при котором пространство адресов памяти разбивается на блоки фиксированной длины, называемыми физическими страницами(page frame). В этом случае адреса образуются подобно тому, как это делалось при сегментации пространства программных адресов. Каждый адрес представляет собой пару [p,d], где р — имя страницы, а d — смещение относительно начала страницы.

Каждой программе ставится в соответствие таблица страниц, которая содержит список страниц, отводимых данной программе. Отдельная запись таблицы содержит:
— признак, показывающий находится ли данная страница в ОП;
— указатель местоположения страницы (в ОП или вспомогательной памяти);
— биты защиты для контроля способа доступа.
Кроме того, существует специальный регистр — регистр таблицы страниц, где находится информация о местоположении таблицы страниц, соответствующей выполняемой в данный момент программе.

Вычисление адреса при страничной организации памяти
f3(слово)= f3(f3(f3(регистр таблицы страниц)+p)+d)

Если во время выполнения программы встречается адрес [p,d], то по содержимому регистра страниц программа управления памятью находит таблицу страниц, где в р-ой записи находится информация, указывающая на искомую страницу. Следовательно, для того, чтобы добраться до необходимого слова требуется два обращения к памяти, как и в случае сегментации, одно — к таблице страниц, другое — к самой странице.
При каждом указателе местоположения страницы имеется признак, показывающий, присутствует ли данная страница в ОП. Если при проверке этого признака его значение “истина”, то страница находится в ОП и адрес вычисляется автоматически. Если значение признака “ложь”, то вырабатывается аппаратное прерывание, которое служит для супервизора сигналом для ввода в ОП соответствующей страницы — это событие называется прерыванием из-за отсутствия страницы.. Биты защиты гарантируют, что данная страница будет использоваться в соответствии с разрешенным для нее доступом, например, для чтения или для записи.
Всякая страничная система должна придерживаться определенных стратегий подкачек и вытеснения страниц. Первая стратегия — это правило, по которому выбирается страница для ввода в ОП. Вторая стратегия — это какую страницу в ОП следует перекрыть, при условии, что другая страница уже подготовлена к вводу в ОП. Цель стратегий выборки и вытеснения — организация движения страниц, т.е. их перемещения из вспомогательной памяти в ОП и обратно.
Страничная организация памяти имеет многие преимущества, присущие сегментной организации. Однако фиксированная длина страниц приводит в важным различиям между двумя этими методами.
Поскольку размер страниц фиксирован, страница может оказаться недостаточно большой, чтобы в ней поместился целиком какой-то содержательный раздел программы. Поэтому задача установления внешних связей при страничной организации памяти не так проста, как в случае сегментации. Но при фиксированной длине страниц значительно упрощается распределение памяти, т.е. ввести в ОП новую страницу фиксированной длины легче, чем новый сегмент — ее можно либо поместить в незанятую физическую страницу, либо вытеснить другую страницу, чтобы освободилось место для новой, причем в обоих случаях не требуется по-новому располагать остальные страницы в ОП.

Загрузка...