Страничное распределение.

Виртуальное адресное пространство (ВАП) каждого процесса делится на части одинакового, фиксированного для данной ОС размера, называемые виртуальными страницами. Размер страницы кратен степени двойки, это позволяет упростить механизм преобразования адресов.

ОП делится на физические страницы такого же размера.

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

При загрузке процесса часть виртуальных страниц процесса помещается в оперативную память, а остальные – на диск.

При активизации очередного процесса в специальный регистр процессора загружается адрес таблицы страниц данного процесса.

 

Свопинг при страничном распределении:

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

Если данная виртуальная страница находится в ОП, то выполняется преобразование ВА в ФА.

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

 

Страничное распределение: преобразование ВА в ФА

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

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

 

  1. На основании начального адреса таблицы страниц, номера виртуальной страницы и длины записи в таблице страниц определяется адрес нужной записи в таблице,
  2. Из этой записи извлекается номер физической страницы,
  3. К номеру физической страницы присоединяется смещение.

 

Выбор размера страницы:

При малых страницах:

- меньшая внутренняя фрагментация страниц и повышается эффективность использования оперативной памяти;

- снижаются расходы времени на свопинг страниц (так как больше страниц помещаются в памяти);

При больших страницах:

- меньшие затраты на поиск и управление страницами (таблицы имеют меньший размер);

- выше эффективность обмена с внешней памятью.

 

Достоинства и недостатки страничного распределения:

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

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

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