Память. Верхний уровень

Реализация виртуальной памяти на уровне страниц

•Обращение к странице (Р=0): особый случай - страничная ошибка (№=14).

•Вызывается обработчик страничной ошибки.

•Из CR2 линейный адрес страничной ошибки. Из стека - код страничной ошибки.

•Операционная система по таблице ищет нужную страницу на винчестере.

•Из ОЗУ выбрасывается страница (используется бит А и алгоритм LRU). Она записывается при D=1.

•В ОЗУ записывается нужная страница. Повторно выполняется команда. В процессорах Pentium Pro и старше реализован механизм расширения физического адресного пространства. Возможно несколько вариантов размеров страниц (см. таблица ниже).

Размеры страниц и физических адресов

При этом используется несколько измененный механизм трансляции страниц (см. рисунок ниже).

Схема трансляции адре сов при 4МВайтной странице

Размер страницы 4 МБайт выбирается установкой бита PSE в управляющем регистре CR4 и одновременной установкой флага PS (page Size) в дескрипторе страницы (он теперь находится в каталоге таблиц страниц). Линейный адрес в этом режиме содержит два поля:

•индекс одного из 1024 элементов (дескриптора 4М-страницы) в каталоге таблиц страниц,

•22-битовое смещение внутри страницы.

Дескриптор страницы теперь содержит 10 старших битов физического адреса страницы (базу). Таким образом, "большие" страницы выровнены по границе 4 МБайт.

Общий размер адресного пространства снова не превышает 4 Гбайт. В одном каталоге таблиц страниц можно смешивать дескрипторы каталогов таблиц страниц (размером 4К) и дескрипторы 4М-страниц.

 

Яндекс.Метрика