Программа для ЭВМ это упорядоченная последовательность команд, подлежащая обработке
Скачать 1.98 Mb.
|
25.Страничная организация виртуальной памяти.Виртуальный адрес при страничной организации – это упорядоченная пара v = (p, d), где p – номер страницы, содержащей адрес v, а d – смещение адреса v относительно начала страницы p. Основная память разделяется на страничные кадры того же самого размера, что и виртуальные страницы. Поступающая в основную память страница может быть помещена в любой свободный страничный кадр. Динамическое преобразование адресов при страничной организации памяти предусматривает отображение номера виртуальной страницы p на номер страничного кадра основной памяти p’, т.е. номер каждой страницы виртуального пространства ставится в соответствие номеру страницы физического адресного пространства. Взаимосвязь между номерами страниц обоих типов устанавливается таблицейстраниц(рис. 35). При этом полная таблица страниц размещается в основной памяти. Прежде чем программа начинает выполняться, операционная система загружает физический адрес таблицы отображения страниц в регистр начального адреса этой таблицы. Этот базовый адрес a таблицы прибавляется к номеру страницы p, образуя адрес основной памяти a + p для строки страницы p в таблице. В этой строке указано, что виртуальной странице p соответствует страничный кадр p’. Затем к значению p’ пристыковывается (путем конкатенации) смещение d, так что образуется физический адрес r. Такой подход называется способомпрямогоотображения, так как таблица отображения страниц содержит отдельную строку для каждой страницы виртуальной памяти Рисунок 35 – Схема преобразования виртуального адреса в физический при страничной организации Так как таблица страниц ведется в основной памяти, то обращение к ней при преобразовании виртуального адреса в физический занимает относительно много времени. Для ускорения этой процедуры используется метод преобразования адресов страниц на основе ассоциативно-прямогоотображения(рис. 36). Суть этого метода состоит в использовании специального буфера – ассоциативной памяти, способной хранить небольшую часть полной таблицы отображения страниц. В этот буфер записываются номера наиболее часто используемых в данное время страниц и номера соответствующих им страничных кадров в основной памяти. В ходе преобразования адресов вначале проверяется ассоциативная память, и если в ней обнаруживаются сведения о необходимой странице, преобразование осуществляется без использования полной таблицы страниц в основной памяти в соответствии с рассмотренным выше механизмом. Такой буфер для высокоскоростного преобразования адресов называется буферомдинамическойтрансляцииили буферомассоциативнойтрансляцииадресов виртуальной памяти TLB – Translation Look aside Buffer. Рисунок 36 – Преобразование адресов страниц на основе ассоциативно-прямого отображения Расширение виртуального пространства влечет за собой увеличение таблицы страниц. Одним из способов решения этой проблемы является многоуровневоеразбиениенастраницы. Суть этого разбиения состоит в том, что одномерное виртуальное пространство подразделяется на два уровня – разделов и страниц, а преобразование виртуального адреса производится по двухуровневой таблице (рис. 37). На первом уровне находится таблица разделов, которая содержит ссылки на таблицы страниц разделов. На втором уровне находятся таблицы страниц разделов. Такой подход позволяет экономить объем памяти, выделяемый для информации отображения адресов, так как можно вести таблицы страниц не для всех разделов, в отличие от одноуровневого подхода, который требует хранения в основной памяти полной таблицы всех страниц виртуального пространства. Рисунок 37 – Преобразование адресов страниц на основе двухуровневой схемы 26.Сегментная организация виртуальной памяти. Комбинированная сегментно- страничная организация виртуальной памяти.В этом случае виртуальное пространство разбивается на блоки по логическим признакам, устанавливаемым программистом. Такое разбиение называется сегментацией, а блоки – сегментами. Сегменты используются для размещения логическихобъектов, например, программы (подпрограммы) или структуры данных и в отличие от страниц имеют переменную длину (размер). Каждый сегмент может иметь именно тот размер, который необходим для размещения логического объекта. Не обязательно, чтобы все сегменты выполняющейся программы одновременно находились в основной памяти или были в ней смежными. Программа может выполняться, если в основной памяти находится, как минимум, ее текущий сегмент. Виртуальный адрес при сегментной организации представляет собой упорядоченную пару v = (s, d), где s – номер сегмента, содержащего адрес v, а d – смещение адреса v относительно начала сегмента s. Динамическое преобразование адресов при сегментной организации памяти предусматривает отображение номера сегмента s на начальный (базовый) адрес сегмента As в основной памяти, т.е. номер каждого сегмента виртуального пространства ставится в соответствие положению сегмента в физическом адресном пространстве. Взаимосвязь между номерами сегментов и их базовыми адресами устанавливается таблицейсегментов. При этом полная таблица сегментов размещается в основной памяти. Преобразование адресов может выполняться практически точно так же, как и при страничной организации, за исключением того, что физический адрес получается в результате сложения базового адреса сегмента и смещения. Поскольку сегменты имеют переменную длину, смещение d необходимо контролировать, чтобы оно не выходило за пределы сегмента. Так как сегменты являются логическими объектами, можно организовать защиту информации и управление для коллективного использования сегментированной информации, что реализуется более естественным образом по сравнению со страничной организацией. Для этого выполняемым программам предоставляются различные сочетания прав доступа для чтения, записи и выполнения при обращении к различным сегментам. Комбинированная сегментно-страничная организация виртуальной памяти Виртуальный адрес представляет собой упорядоченную тройку v = (s, p, d), где s – сегмент, в котором находится виртуальный адрес v, p – страница в сегменте s, содержащая адрес v, d – смещение адреса v в странице p. Преобразование адресов осуществляется в два этапа:
Преобразование адреса при комбинированной сегментно-страничной организации подобно на преобразование адреса при двухуровневой страничной организации. Однако эти два способа организации виртуальной памяти принципиально отличаются друг от друга. В первом случае сегменты являются самостоятельными логическими объектами. Во втором случае разбиение страниц на разделы является условным и используется для уменьшения объема памяти, требуемой для хранения информации отображения адресов. Кроме комбинированной сегментно-страничной организации виртуальной памяти в современных микропроцессорах используется и совместное применение сегментной и страничной организаций памяти. В этом случае сегментный и страничный механизмы работают независимо, что позволяет в свою очередь независимо управлять памятью на логическом и физическом уровнях. С помощью сегментного механизма виртуальное пространство, состоящее из сегментов, преобразуется в линейное пространство, которое затем с помощью страничного механизма путем разбиения на страницы преобразуется в физическое пространство. |