Курс лекций «Организация ЭВМ и систем»: Методическое пособие, страница 20

Теперь процессор должен определить, на какое место в ОЗУ1 можно ввести нежную страницу из внешнего накопителя.  Для этого он считывает поле признаков P из АЗУ по всем 16 ячейкам и, анализируя специально выделенные биты этого поля, определяет, какие ячейки АЗУ дольше всего оказывались невостребованными.  Вместо старой страницы в АЗУ записывается новая.

После этого, используя программный доступ к ОЗУ1, процессор вводит нужную страницу с внешнего носителя в ОЗУ1 размером 16К ячеек.  На этом программа прерывания заканчивает работу по подкачке нужной страницы в ОЗУ1.  Случаи замены страниц тем более редки, чем больше размер страницы и чем больше их хранится в буферном ОЗУ (ОЗУ1).

Определение давности использования страницы в простейшем случае может производиться путем периодического программного опроса и сброса признаков R во всех ячейках АЗУ, например, по сигналам от сетевого таймера частотой 50 Гц.  При обращении к ячейке АЗУ (при совпадении кодов N и x) признак R в данной ячейке автоматически устанавливается в 1.  Поэтому если периодически опрашивать признаки R и сбрасывать их, то можно вести учет актуальности страниц.  Страницы, утратившие свою актуальность, не будут восстанавливать признаки R после сброса. Страницы, к которым производятся обращения, будут восстанавливать признаки R к моменту очередного сброса.  Таким образом процессор имеет возможность выбрать наиболее устаревшую страницу для ее уничтожения.

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

Если пользователю необходимо сохранить старую версию информации на этой странице, то он должен позаботиться об этом сам: пользовательская программа должна заблаговременно снять копию старой страницы и поместить ее в надежном месте.  Что бы узнать, производилась ли операция записи на страницу (это принимается за критерий ее изменения), в поле P вводится бит W, который автоматически устанавливается в 1 при выполнении операции записи на эту страницу.  При решении вопроса о необходимости возврата уничтожаемой страницы на внешний носитель, процессор руководствуется значением бита W.

В поле P имеется также признак V, единичное состояние которого говорит о том, что страница активна.  Уничтожение страницы производится переводом признака в 0.

Еще одна особенность виртуальной памяти – встроенный механизм защиты страниц, содержащихся в буферной памяти, от несанкционированного доступа.  Используются два бита a и b, которые включаются в поле P и определяют четыре уровня защиты страницы.

a

b

Режим операционной системы

Режим пользователя

0

0

Только чтение

Недоступна

0

1

Чтение и запись

>> 

1

0

>> 

Только чтение

1

1

>> 

Чтение и запись

При a = 0 пользовательские программы не имеют права доступа к странице.  При попытке такого доступа (из-за ошибки программиста или по умыслу) в процессор посылается сигнал прерывания и он, отложив выполнение пользовательской программы, предпринимает соответствующие действия, например, выдает сообщение оператору, перезагружает программу и пускает ее вновь.  Полному отсутствию защиты соответствует случай a=1, b=1.

Lection 6

БИС диспетчера памяти