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

После того, как избранная страница, которая должна покинуть оперативную память, анализируется ее признак модификации (из таблицы страниц). Если что выталкивается страница с момента загрузки было модифицировано, то ее новая версия должна быть переписана на диск. Если нет, то она может быть просто уничтоженная, то есть соответствующая физическая страница объявляется свободной.

Рассмотрим механизм преобразования виртуального адреса в физический при страничной организации памяти (рисунок 2.13).

Виртуальный адрес при страничном распределении может быть представлен в виде пары (p, s), где p - номер виртуальной страницы процесса (нумерация страниц начинается с 0), а s - сдвиг в пределах виртуальной страницы. Учитывая, что размер страницы равняется 2 в степени к, сдвиг s может быть получено простым отделением k младших разрядов в двоичной записи виртуального адреса.  Старшие разряды , которые остались , представляют собой двоичную запись номера страницы p.

Рис. 2.13.  Механизм преобразования виртуального адреса в физический
при страничной организации памяти

При каждому обращении к оперативной памяти аппаратными средствами выполняются такие действия:

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

из этой записи вытягивается номер физической страницы,

к номеру физической страницы присоединяется сдвиг (младшие разряды виртуального адреса).

Использование в пункте (3) того факта, что размер страницы равняется степени 2, позволяет применить операцию конкатенации (присоединение) вместо более продолжительной операции добавления, которое уменьшает время получения физического адреса, а значит повышает производительность компьютера.

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

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

 

Возможно стоит прочитать: