Сегментная организация виртуальной памяти
В системе с сегментной организацией памяти снимается ограничение на фиксированный размер блока и выполняется соответствующее произвольное разбиение АП процесса на сегменты.
Сегмент
- это единица логического разбиения программ (процедура, модуль, область данных), имеющая переменный размер и имя. Напомним, что страница - это физическая единица памяти.
Сегментная организация обеспечивает простое и естественное разделение общих сегментов между несколькими пользователями и защиту сегментов посредством связывания с ним прав доступа, подразделяющихся на:
-
выполнение E;
- чтение R;
- запись W;
- расширение A
и их различных комбинаций.
Для сегментной организации в таблице отображения сегментов с каждым сегментом связан дескриптор, который содержит адрес размещения сегмента в ОП, его длину
и права доступа (ERWA), признак обращения к сегменту за последний интервал времени, а также признак присутствия в РОП. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре.
В сегментной организации все сегменты имеют различный размер и могут размещаться в несмежных участках РОП.
Достоинства сегментной организации:
1.Уменьшение временной фрагментации, так как естественно учитывается свойство локальности программ.
2.Легко совмещается с использованием общих процессов, поскольку данные и программа целиком находятся в одном блоке.
3.Возможность обеспечить четкое управление доступом к сегменту со стороны общих процессов и их полную защиту.
Недостатки:
1.Более сложное управление и защита ОП. Здесь уже не достаточно пары граничных регистров, а необходимы ключи защиты индивидуальных сегментов памяти.
2.Может возникнуть временная фрагментация для больших размеров процедур и данных.