Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
виртуальная память.rtf
Скачиваний:
2
Добавлен:
14.11.2019
Размер:
166.02 Кб
Скачать

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

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

Механизм преобразования сегментно-страничного виртуального адресе, представленного триадой (s, p, i), показан на рис.4.3. Здесь s –номер сегмента, p –номер страницы в сегменте и I – смещение в странице. Механизм содержит таблицы сегментов и таблицы страниц. Содержимое строки в таблице сегментов, в отличие от строки, при обычной сегментации ссылается не на физический адрес сегмента, а на физический адрес соответствующей таблицы страниц. Таблица страниц содержит номера виртуальных страниц и соответствующие им адреса физических страниц, а также различные признаки.

Преобразования виртуального адреса происходит следующим образом. Начальный физический адрес и длина таблицы сегментов предварительно загружаются в РНТС. По номеру сегмента s, который содержится в виртуальном адресе, производится выборка соответствующей таблицы сегментов. По номеру страницы p в виртуальном адресе определяется физический адрес страницы в ОП. Он представляет старшие разряды реального адреса. В качестве младших разрядов реального адреса используется смещение i, определяющее относительный адрес слова в физической странице.

Сегментно-страничная организация добавляет еще один уровень в структуре адресного пространства программы. Теперь при ширине выборки, равной байту, пространство дробится на сегменты, сегменты – на страницы, страницы – на байты. Формирование сегментно-страничной структуры выполняется автоматически с помощью операционной системы.

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

  • пусть (в качестве примера) регистр начала таблицы сегментов содержит начальный адрес таблицы сегментов выполняемой программы 28000 ;

  • номер сегмента в относительном адресе используется как индекс для обращения к записи таблицы сегментов. Эта запись идентифицирует начало таблицы страницы (реальный адрес) 30000; номер страницы в относительном адресе используется как индекс для обращения к записи таблицы страниц. Эта запись идентифицирует начало страничного блока, содержащего эту страницу — 128000;

  • смещение в относительном адресе и местоположение страничного блока объединяются вместе, формируя абсолютный адрес 129564. В реальной системе адрес страничного блока и смещение связываются, т.е. соединяются вместе для образования абсолютного адреса.

Все преимущества динамического перемещения с использованием (сегментации и страничной организации достигаются благодаря аппаратуре и программному обеспечению, а не пользователям системы. Специальные программы во время загрузки разбивают адресное пространство программы на сегменты и страницы, строят таблицы сегментов и страниц. Средства ДТА автоматически транслируют адрес в процессе выполнения программы.