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

В более современных системах, чем MULTICS, также используется сегментно-страничная организация. Например, в системе Intel 386 используется сегментно-страничная организация памяти с двухуровневой схемойстраничной организации (см. рис. 6).

Сегментно-страничная организация памяти в системе Intel 386 - student2.ru

Рис. 6.Сегментно-страничная организация памяти в Intel 386.

Ключевые термины

Базовый регистр таблицы сегментов - segment-table base register (STBR)– регистр, содержащий адрес таблицы сегментов в памяти.

Логический адрес при сегментной организациипамяти - пара:

<segment-number, offset>,где segment-number – номер сегмента, offset – смещение в сегменте.

Признаки защиты –информация для защиты сегмента в элементе таблицы сегментов: validation-бит(признак корректности номера сегмента для процесса), биты защиты от записи, от чтенияи от исполнения.

Разделяемые (общие) сегменты– сегменты, общие для нескольких процессов и имеющие одинаковые логические номера в их таблицах сегментов.

Регистр длины таблицы сегментов - segment-table length register (STLR) –регистр, содержащий число сегментов, используемое программой.

Сегмент– логическая единица распределения памяти, предназначенная для размещения в памяти одного модуля программного кода или данных.

Сегментная организация памяти (segmentation) -схема распределения памяти в виде сегментов переменной длины, соответствующая пользовательской трактовке распределения памяти, т.е. логической структуре программ и данных.

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

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

Краткие итоги

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

При сегментной организации логический адрес имеет вид: (номер сегмента, смещение внутри сегмента). Организуется системная таблица сегментов, каждый элемент которой содержит базовый адрес сегмента, его длину и признаки защиты – validation-бит, определяющий корректность номера сегмента, биты защиты от записи, чтения и исполнения. Базовый регистр таблицы сегментов содержит начальный адрес таблицы сегментов, регистр длины таблицы сегментов содержит ее длину.

Перемещение при сегментной организации осуществляется динамически, во время выполнения программы.

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

Стратегии распределения памяти при сегментной организации – методы первого подходящего и наиболее подходящего. Возможна внешняя фрагментация.

При адресации по логическому адресу для сегментной организации смещение внутри сегмента сравнивается с длиной сегмента из элемента таблицы сетментов. В случае превышения – прерывание.

Для борьбы с фрагментацией в некоторых системах (MULTICS, "Эльбрус|", Intel 386) применяется смешанная, сегментно-страничная организация памяти, при которой для каждого сегмента организуется собственная таблица страниц.

Вопросы для самопроверки:

1. Что такое сегментная организация памяти?

2. Что такое сегмент?

3. Приведите примеры модулей кода и данных, память для которых распределяется в виде отдельных сегментов.

4. Какую структуру имеет логический адрес при сегментной организации памяти?

5. Что такое таблица сегментов?

6. Какая информация хранится в элементе таблицы сегментов?

7. Что такое регистр базы таблицы сегментов?

8. Что такое регистр длины таблицы сегментов?

9. На какой фазе (во время загрузки или исполнения) осуществляется перемещение при сегментной организации?

10. Какие стратегии распределения памяти применяются при сегментной организации?

11. Какие признаки защиты хранятся в элементе таблицы сегментов?

12. Какое условие для номера сегмента проверяется при адресации?

13. Что такое сегментно-страничная организация и для какой цели она используется?

Упражнения

1. Реализуйте представление логического адреса при сегментной организации памяти, модель таблицы сегментов и схемы адресации.

2. Реализуйте представление логического адреса при сегментно-страничной организации памяти, модель таблицы сегментов и схемы адресации.

Наши рекомендации