Главная » Информационные системы » Операционные системы » Страничная виртуальная память

Страничная виртуальная память

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

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

(Для того чтобы программа могла адресовать страницу, в TLB должна присутствовать соответствующая ей запись. Ассоциативный поиск в этой таблице выполняется при каждом обращении к памяти по виртуальному адресу.)

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

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

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


Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.

Поделиться
Дисциплины