Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
spo.doc
Скачиваний:
19
Добавлен:
09.12.2018
Размер:
432 Кб
Скачать
☆

Вопрос №№ 9,10 Сегментно-страничный способ организации виртуальной памяти и схема нахождения и формирования физического адреса

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

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

И

35000

S –сегмент Р – страница I - индекс

з таблицы сегментов Виртуальный адрес

15 10 600

Номер физической Число Права

страницы страниц доступа

15 36000 20

Таблица сегментов задачи

35015 35000

36010

Номер физиче- Права

ской страницы доступа

10 45000

Нужная команда

36000 Таблица страниц задачи 45000 страница № 45

45600

Схема преобразования виртуального адреса в физический адрес при сегментно-страничной организации памяти

Если в таблице дескрипторов сегментов указано, что таблица сегментов нашей задачи находится по адресу 35000, а в виртуальном адресе указан 15-й сегмент, то ОС по этим данным найдет запись, где будет адрес начала нашего сегмента (35000+15=35015). Поэтому адресу находим адрес начала таблицы страниц (допустим, 36000). Складывая его с № страницы виртуального адреса находим запись в таблице страниц, где указан адрес физической страницы. Складывая этот адрес с индексом виртуального адреса, находим физический адрес нашей исполняемой программы.

Этот способ организации виртуальной памяти требует больших накладных затрат при доступе к памяти, чем при страничной организации памяти. Необходимо сначала вычислить адрес дескриптора сегмента и прочитать его. Определив адрес начала таблицы, дескрипторов страниц сегмента и, сложив его с номером страницы виртуального адреса, находим дескриптор нужной страницы. Прочитав его, находим начальный адрес страницы. Нужный физический адрес определим сложением адреса начала страницы и индекса виртуального адреса.

К достоинствам сегментно-страничного способа организации памяти можно отнести то, что разбиение программы на сегменты позволяет размещать сегменты в память целиком. Сегменты разбиты на страницы и все страницы сегмента загружаются в память одновременно. Это позволяет уменьшить обращение к отсутствующим страницам, т.к. возможность выхода за пределы сегмента минимальна. Наличие сегментов позволяет легче реализовать разделение программных модулей между процессами. Выделение памяти страницами минимизирует фрагментацию.

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

Использование метода ограничено. Используется в малых супер-ЭВМ. В распространенных в России ЭВМ на базе процессора i80x86 аппаратная поддержка этого способа присутствует, но слабая, и из-за сложности программирования пока не используется (пока, т.к. при увеличении производительности вычислительных систем, его привлекательность повышается).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]