Сделай Сам Свою Работу на 5

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





 

Страничная виртуальная память состоит из блоков фиксированного размера, или страниц, которые служат единицами измерения объема памяти. Виртуальный адрес в страничной системе - это упорядоченная пара (p,d), где p - номер страницы в виртуальной памяти, а d - смещение в рамках страницы p, где размещается адресуемый элемент (рис.3.11). Для удобства в компьютерах с двоичной адресацией размер страницы обычно кратен степени двойки. Виртуальным адресом является одно число, в котором старшие биты определяют p, а младшие - d.

 

Рис. 3.11. Формат виртуального адреса в системе

со страничной организацией памяти

 

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

Поступающая страница может быть помещена в любой свободный страничный кадр. Отображение страниц в страничные кадры описывается таблицей отображения страниц. В этой таблице для каждой страницы имеется элемент, состоящий из двух полей. Первое из них содержит признак, указывающий, находится страница в оперативной памяти или на внешнем устройстве. Если страница находится в оперативной памяти, то второе поле (старшие биты адреса) задает номер соответствующей физической страницы. Если страницы нет в оперативной памяти, то второе поле содержит информацию, необходимую для определения ее положения во внешней памяти. Для каждого процесса имеется одна таблица отображения страниц, которая используется для преобразования адресов виртуальной памяти программы в соответствующие адреса реальной памяти. Процесс динамического преобразования адресов представлен на рис.3.12.



Выполняющийся процесс делает ссылку по виртуальному адресу v=(p,d). Прежде, чем процесс начнет выполняться, операционная система загружает адрес первичной памяти для таблицы отображения страниц в регистр начального адреса этой таблицы. Этот базовый адрес b таблицы прибавляется к номеру страницы p, образуя адрес первичной памяти b+p элемента таблицы для страницы p, к которой идет обращение. Затем операционная система проверяет признак в этом элементе. Если страницы нет в оперативной памяти, то говорят, что страница отсутствует. Тогда аппаратура генерирует прерывание, по которому вызывается программа подкачки страниц. Это управляющая программа, в функции которой входит, во-первых, считывание необходимой страницы в оперативную память и, во-вторых, переключение процессора с данного процесса на другой, который не находится в состоянии ожидания. Каждый раз при считывании страницы в элементе таблицы отображения страниц устанавливаются признак и адрес страничного кадра. Если же страница уже находится в оперативной памяти, то второе поле элемента определяет адрес страничного кадра f, в который загружена страница p. Затем к значению f приформировывается (путем конкатенации) смещение d, так что образуется реальный адрес r.



 

Рис. 3.12. Динамическое преобразование адреса страницы

 

Такой подход называется способом прямого отображения, потому что таблица отображения страниц содержит отдельную строку для каждой страницы виртуальной памяти данного процесса. Если процесс имеет в виртуальной памяти n страниц, то таблица при прямом отображении для этого процесса содержит последовательные строки для страницы 0, страницы 1, ..., страницы n-1.

Как преобразуемый виртуальный адрес, так и базовый ад­рес таблицы отображения страниц хранятся в высокоскоростных регистрах управляющего процессора, так что операции с их участием можно выполнять очень быстро внутри командного цикла. Однако таблица прямого отображения страниц, которая может быть довольно большой, обычно находится в первичной памяти. Следовательно, для обращения к этой таблице требуется один полный цикл выборки из первичной памяти. Поскольку время выборки из первичной памяти составляет, как правило, наибольшую долю цикла выполнения команды и поскольку нам требуется еще один цикл обращения к первичной памяти для выборки соответствующей строки таблицы, ­это означает, что использование метода прямого отображения для преобразования адресов страниц может вызвать снижение скорости вычислительной машины при выполнении программ почти вдв­ое. Это, естественно, недопустимо. Поэтому необходимы более высокоскоростные способы преобразования адресов. В то же время это­ не означает, что способ прямого отображения совершенно неприемл­ем. Некоторые операционные системы с успехом его реализуют, размещая целиком всю таблицу в сверхвысокоскоростной кэш-памяти.



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

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

Другой недостаток страничной организации связан с тем, что процессам произвольной длины отводится целое число страниц фиксированного размера. В результате часть страницы оказывается незаполненной, т.е. имеет место внутренняя фрагментация памяти. В среднем на каждый процесс незаполненность составляет половину страницы. Увеличение размера страницы с целью снижения внутренней фрагментации будет приводить к снижению коэффициента мультипрограммирования. С другой стороны, маленькие страницы требуют больше памяти под таблицы отображения страниц, при этом увеличивается вероятность отсутствия требуемой страницы.

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.