Сегментная организация памяти — схема распределения памяти в виде сегментов переменной длины, соответствующая логической структуре программ и данных. intuit.ru
Некоторые этапы работы сегментной организации памяти:
- Виртуальное адресное пространство процесса делится на сегменты. dit.isuct.ru Размер сегментов определяется программистом с учётом смыслового значения содержащейся в них информации. dit.isuct.ru Отдельный сегмент может представлять собой подпрограмму, массив данных и т. п.. dit.isuct.ru
- При загрузке процесса часть сегментов помещается в оперативную память, для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти. dit.isuct.ru Часть сегментов размещается в дисковой памяти. dit.isuct.ru Сегменты одной программы могут занимать в оперативной памяти несмежные участки. dit.isuct.ru
- Во время загрузки система создаёт таблицу сегментов процесса, в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация. dit.isuct.ru
- Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре. dit.isuct.ru
- При каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. dit.isuct.ru Кроме того, при обращении к памяти проверяется, разрешён ли доступ требуемого типа к данному сегменту. dit.isuct.ru
Логический адрес при сегментной организации памяти — пара: (segment-number, offset), где segment-number — номер сегмента, offset — смещение в сегменте. intuit.ru