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

 

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

 

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

- признак, показывающий находится ли данная страница в ОП;

- указатель местоположения страницы (в ОП или вспомогательной памяти);

- биты защиты для контроля способа доступа.

Кроме того, существует специальный регистр - регистр таблицы страниц, где находится информация о местоположении таблицы страниц, соответствующей выполняемой в данный момент программе.

 

Регистр таблицы страниц

Страница

       
   
 
 

р d d

+ +

Слово


Признак Биты защиты Указатель местоположения страницы р-тая

строка таблицы страниц

 

Рис.13 Вычисление адреса при страничной организации памяти

f3(слово)= f3(f3(f3(регистр таблицы страниц)+p)+d)

 

Если во время выполнения программы встречается адрес [p,d], то по содержимому регистра страниц программа управления памятью находит таблицу страниц, где в р-ой записи находится информация, указывающая на искомую страницу. Следовательно, для того, чтобы добраться до необходимого слова требуется два обращения к памяти, как и в случае сегментации, одно - к таблице страниц, другое - к самой странице.

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

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

Страничная организация памяти имеет многие преимущества, присущие сегментной организации. Однако фиксированная длина страниц приводит в важным различиям между двумя этими методами.

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