Организация ЭВМ и систем


Страничное распределение - часть 2


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

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

- дольше всего не использовавшаяся страница;

- первая попавшаяся страница;

- страница, к которой в последнее время было меньше всего обраще­ний.

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

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

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

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


- Начало -  - Назад -  - Вперед -