Сегментная организация Оперативной памяти.
Память делится на блоки разного размера, при этом появляется возможность
1) Установить права доступа к сегменту, например режим только чтение
2) Каждый сегмент предназначается для хранения определённого типа данных, например сегмент данных, сегмент кода и т.д.
Минусом такой организации является то, что на преобразование адресов из виртуальных в физические требуется несколько больше ресурсов.
Виртуальное
адресное Физическая память
пространство А Таблица Сегментов А
Сегмент 0 |
Сегмент 1 |
Сегмент 2 |
Сегмент 3 |
Виртуальное
адресное
пространство Б Таблица сегментов Б
Сегмент 0 |
Сегмент 1 |
Сегмент 2 |
Т.е Возможно совместное использование памяти несколькими процессами.
Недостаток в том, что при нехватке физической памяти необходимо выгружать весь сегмент.
Странично-сегментная организация памяти.
Суть в том, что внутри сегментов памяти происходит деление на страницы, в итоге мы получаем преимущество сегментной организации и преимущество страничной организации в одном флаконе.
Схема:
Есть некий виртуальный адрес, он состоит из трёх компонентов, а именно Номер сегмента G, номер страницы P и смещение S
В этом случае на первом этапе берётся номер сегмента и по таблице сегментов определяется необходимая таблица страниц сегмента. И уже внутри этой таблицы по номеру страницы P определяется номер физической страницы памяти, к нему прибавляется смещение и в итоге мы получаем адрес ячейки памяти.
Недостаток данной организации в медленной (относительно) скорости преобразования адресов.
Практическая реализация в современных микропроцессорах.
Поддержка всех трёх способов организации виртуальной памяти в процессах фирмы INTEL существуют начиная с 386 процессоров (1995 год)
В требованиях к Windows 95 было написано, что она должна работать под управлением процессора не хуже Intel 80386 _
Механизм виртуальной памяти это не только аппаратная поддержка, но и программное обеспечение.
32-разрядные процессоры Intel могут отрисовать не больше 4 гигабайт памяти.