Сегментно-страничная организация виртуальной памяти

Организация такой памяти преследует цель освободиться от недостатков как сегментной, так и страничной виртуальной памяти (“внешней фрагментации” и отсутствия уникальной защиты объектов программы соответственно).

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

При “промахе” в поиске по таблице адресной трансляции происходит двухуровневый поиск по таблицам, подготовленным операционной системой в оперативной памяти. Вначале исследуется таблица виртуальных сегментов задачи. Найденная по виртуальному номеру сегмента строка этой таблицы содержит сведения об уникальной защите сегмента, содержащего объект программы, и ссылку на таблицу виртуальных страниц этого сегмента. Найденная по виртуальному номеру страницы строка этой таблицы содержит признак нахождения виртуальной страницы в оперативной памяти и номер физической страницы, в которой находится информация виртуальной страницы.

Указанным выше образом образуется физический адрес для непосредственного обращения в оперативную память и происходит размещение найденной информации в строке “быстрой” таблицы аппаратной трансляции.

При большом количестве виртуальных сегментов, размер которых существенно меньше размеров страницы (для сегмента выделяется целая страница), указанная выше “внутренняя фрагментация” становится заметно отрицательным фактором.


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



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