Организация такой памяти преследует цель освободиться от недостатков как сегментной, так и страничной виртуальной памяти (“внешней фрагментации” и отсутствия уникальной защиты объектов программы соответственно).
В сегментно-страничной организации памяти уникально защищаемый виртуальный сегмент разбивается на виртуальные страницы, располагающиеся на любых физических страницах оперативной памяти. Виртуальный сегментно-страничный адрес состоит из трех полей: поля виртуального номера сегмента, поля виртуального номера страницы в этом сегменте, поля смещения в странице. Замена виртуального сегментно-страничного адреса на физический адрес производится так же, как и для сегментного и страничного виртуальных адресов в основном с использованием “быстрой” таблицы адресной трансляции на регистрах. Ассоциативный поиск по этой таблице производится в этом случае по совокупности значений виртуальных номеров сегмента и страницы в нем, находящихся в строках этой таблицы. При совпадении (получающемся в большинстве случаев, благодаря свойству локальности программы) из найденной строки таблицы берется находящийся там физический номер страницы, к которому прибавляется (“присоединяется”) смещение в странице. Полученный физический адрес используется для непосредственного обращения в оперативную память машины.
|
|
При “промахе” в поиске по таблице адресной трансляции происходит двухуровневый поиск по таблицам, подготовленным операционной системой в оперативной памяти. Вначале исследуется таблица виртуальных сегментов задачи. Найденная по виртуальному номеру сегмента строка этой таблицы содержит сведения об уникальной защите сегмента, содержащего объект программы, и ссылку на таблицу виртуальных страниц этого сегмента. Найденная по виртуальному номеру страницы строка этой таблицы содержит признак нахождения виртуальной страницы в оперативной памяти и номер физической страницы, в которой находится информация виртуальной страницы.
Указанным выше образом образуется физический адрес для непосредственного обращения в оперативную память и происходит размещение найденной информации в строке “быстрой” таблицы аппаратной трансляции.
При большом количестве виртуальных сегментов, размер которых существенно меньше размеров страницы (для сегмента выделяется целая страница), указанная выше “внутренняя фрагментация” становится заметно отрицательным фактором.