logo
Методичка

4.3.5 Многосегментная модель памяти

(для 16-битных приложений)

При использовании многосегментной модели памяти для каждой программы выделяется собственная таблица сегментных дескрипторов, которая называется таблицей локальных дескрипторов (Local Descriptor Table, или LDT). При этом появляется возможность для каждого процесса создать собственный набор сегментов, которые никак не пересекаются с сегментами других процессов, даже если значения их дескрипторов, находящиеся в сегментных регистрах, совпадают.

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

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

На практике используется комбинированная модель памяти, когда 32-разрядные приложения регистрируются в глобальной таблице дескрипторов, а 16-разрядные приложения – в локальных. При этом адреса локальных таблиц дескрипторов хранятся в глобальной таблице дескрипторов.

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

  1. Какова основная режимы работы процессоров IA-32?

  2. Для чего используется реальный режим адресации микропроцессоров?

  3. Какой основной режим работы процессоров IA-32?

  4. В чём заключается отличие логического и линейного адреса при защищённом режиме работы?

  5. В каких регистрах хранится селектор сегмента?

  6. Какую информацию хранит дескриптор сегмента?

  7. Для чего служат дескрипторные таблицы?

  8. Какие поля содержит дескриптор сегмента?

  9. В чём заключается отличие линейного и физического адреса при защищённом режиме работы?

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

  11. Дл чего служит флаг гранулярности в дескрипторе сегмента?

  12. Какие бывают типы сегментов?

  13. Для чего используется бит номера привилегий в дескрипторе сегмента?

  14. В каких случаях используется многосегментная модель памяти?