Данный метод представляет собой комбинацию страничного и сегментного распределения памяти и, вследствие этого, сочетает в себе достоинства обоих подходов. Виртуальное пространство процесса делится на сегменты, а каждый сегмент, в свою очередь, делится на виртуальные страницу. Виртуальные страницы нумеруются не в пределах всего адресного пространства процесса, а в пределах сегмента. Виртуальный адрес в этом случае выражается тройкой (номер сегмент, номер страницу, смещение в странице).
Загрузка процесса выполняется ОС постранично, при этом часть страниц размещается в ОП, а часть – на диске. Для каждого процесса создается собственная таблица сегментов, а для каждого сегмента – своя таблица страниц. Адрес таблицы сегментов загружается в специальный регистр процессора, когда активируется соответствующий процесс.
Таблица страниц содержит дескрипторы страниц. Таблица сегментов состоит из дескрипторов сегментов, которые содержат описание расположения таблиц страниц в физической памяти.
|
|
Схема преобразования виртуального адреса в физический для данного метода выглядит следующим образом:
1. По номеру сегмента, заданному в виртуальном адресе, из таблицы сегментов извлекается физический адрес соответствующей таблицы страниц.
2. По номеру виртуальной страницы, заданному в виртуальном адресе, из таблицы страниц извлекается дескриптор, в котором указан номер физической страницы.
3. К номеру физической страницы пристыковывается младшая часть виртуального адреса – смещение.