Сегментно-страничная организация памяти
В соответствии с /1, 5, 6/, достоинства сегментной и страничной организации сочетает в себе сегментно-страничный способ распределения памяти, при котором память разбивается на сегменты, а сегменты, в свою очередь, разделены на страницы фиксированной длины. При этом размер сегмента выбирается не произвольно, а задаётся кратным размеру страницы. Сегмент может содержать произвольное, но обязательно целое число страниц, даже если одна из страниц заполнена частично. Для преобразования логических адресов в физические используются две таблицы соответствия. Каждый сегмент имеет отдельную таблицу страниц. В дескрипторной таблице сегментов перечисляются все сегменты с указанием начальных адресов страничных таблиц, относящихся к каждому сегменту. Каждая таблица страниц, в свою очередь, определяет положение каждой из страниц сегмента в памяти. Страницы сегмента могут располагаться не подряд – часть страниц может находиться в ОП, остальные – в ВЗУ. Схема вычисления физического адреса операнда при сегментно-страничной организации памяти представлена на рисунке 8.4 /6/. Виртуальный адрес операнда состоит из 3-х составляющих: номера сегмента, номера страницы в этом сегменте, смещения внутри данной страницы. Для получения физического адреса операнда сначала по номеру сегмента в таблице сегментов определяется начальный адрес соответствующей ему страничной таблицы, затем по номеру страницы в таблице страниц определяется начальный адрес конкретной страницы в ОП и, наконец, к базовому адресу страницы в ОП добавляется смещение внутри страницы.
Рисунок 8.4 – Вычисление физического адреса при сегментно-страничной организации памяти
В заключение следует отметить, что процессор только предоставляет аппаратные средства поддержки виртуальной памяти, а их реальное использование зависит от корректного построения ОС.