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

Виртуальное адресное пространство каждого процесса делится на части одинаково-го, фиксированного для данной системы размера, называемые виртуальными страницами. В общем случае размер виртуального адресного пространства процесса не кратен размеру страницы, поэтому последняя страница каждого процесса дополняется фиктивной областью. Вся оперативная память машины делится на части такого же размера, называемые физическими страницами (или блоками). Размер страницы обычно выбирается равным степени двойки: 512, 1024 и т.д.

При создании процесса операционная система загружает в оперативную память несколько его виртуальных страниц. Копия всего виртуального адресного пространства находится на диске. Смежные виртуальные страницы не обязательно располагаются в смежных физических страницах. Для каждого процесса операционная система создает таблицу страниц – информационную строку, содержащую записи обо всех виртуальных страницах процесса. Запись таблицы, называемая дескриптором страницы, включает следующую информацию:

– номер физической страницы, в которую загружена данная виртуальная страница;

– признак присутствия, устанавливаемый в единицу, если виртуальная страница находится в оперативной памяти;

– признак модификации страницы, который устанавливается в единицу всякий раз, когда производится запись по адресу, относящемуся к данной странице;

– признак обращения к странице, называемый также битом доступа, который устанавливается при каждом обращении к адресу, относящемуся к данной странице.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: