Страничная организация памяти. Таблицы страниц

Страничная организация памяти.

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

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

 

Виртуальный адрес в страничной системе упорядоченная пара (p,d), где=

p - номер страницы в виртуальной памяти,

d - смещение в рамках страницы p где размещается адресуемый элемент.

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

Для ссылки на таблицу страниц используется специальный регистр процессора.

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

Таблицы страниц.

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

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

виртуальный адрес состоит из =

виртуального номера страницы (high-order bits)

и смещения (low-order bits) - внутри страницы с заданным номером.

Номер виртуальной страницы используется как индекс в таблице страниц для нахождения записи (entry) о виртуальной странице.

Из этой записи в таблице страниц находится номер кадра (page frame number), затем прибавляется смещение и формируется физический адрес. Помимо этого запись в таблице страниц содержит информацию об атрибутах страницы, в частности биты защиты.

Назначение таблицы страниц заключается в отображении виртуальных стра-

ниц на страничные блоки. Говоря математически, таблица страниц — это функция,

имеющая в качестве аргумента номер виртуальной страницы и получающая в ре-

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

поле виртуальной страницы в виртуальном адресе может быть заменено полем

страничного блока, таким образом, формируется физический адрес.

Несмотря на столь простое описание, нам придется столкнуться с двумя важ-

ными проблемами:

1. Таблица страниц может быть слишком большой.

2. Отображение должно быть быстрым.

 

Первый пункт следует из того факта, что современные компьютеры исполь-

зуют по крайней мере 32-разрядные виртуальные адреса. При размере страницы,

скажем, 4 Кбайт, 32-разрядное адресное пространство будет состоять из одного

миллиона страниц, а 64-разрядное адресное пространство будет включать в себя

намного больше страниц, чем то количество, с которым вы захотите иметь дело.

При одном миллионе страниц в виртуальном адресном пространстве таблица

страниц должна состоять из одного миллиона записей. И помните, что каждый

процесс нуждается в своей собственной таблице страниц (потому что у него есть

свое собственное виртуальное адресное пространство).

 

Второй пункт — это вывод из того факта, что преобразование виртуальных адре-

сов в физические должно быть выполнено для каждого обращения к ячейке памя-

ти. Типичная команда процессора включает в себя слово-команду и часто также

операнд памяти. В результате необходимо сделать 1,2 или иногда больше обраще-

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

4 не, то поиск в таблице страниц должен быть сделан меньше, чем за 1 не, чтобы

преобразование виртуальных адресов не стало главным узким местом системы.

 

Простейшее конструкторское решение (по крайней мере, концептуально) за-

ключается в поддержании таблицы страниц, состоящей из массива быстрых аппа-

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

ванного по номерам виртуальных страниц, как показано на рис. 4.11. Когда процесс

запускается, операционная система загружает в регистры таблицу страниц процес-

са, данные берутся из копии, хранящейся в оперативной памяти. Во время выпол-

нения процесса таблице страниц больше не нужно обращаться к памяти. Преиму-

щество этого метода заключается в его простоте и отсутствии необходимости

обращений к памяти во время преобразования адресов. Недостатком является его

потенциально высокая стоимость (если таблица страниц велика). Необходимость

загрузки полной таблицы в регистры при каждом контекстном переключении

наносит ущерб производительности.

 

Подкачка (swapping).



php"; ?>